Free Willy 3.5: Visual Studio Codename "Orcas" Preview
I attended Omar Khan's Visual Studio Codename "Orcas" Preview for AJAX Web Development this afternoon, and walked away very excited about getting my hands on it. Unlike the Silverlight alpha & beta previews, which will take nearly a complete paradigm shift by designers and developers to fully appreciate, Orcas appears to be ready to move development teams smoothly into the latest release of .NET 3.5. They've accomplished this by satisfying .NET developers wants, needs & more:
Needs
My #1 ASP.NET IDE complaint is history: Nested Master Pages now render correctly to the design window, instead of the previous IDE approach of "if at first you don't succeed, String.Empty". This will encourage more code reuse by allowing simple usages of multiple master pages for common content.
Comprehensive ASP.NET AJAX 1.0 support: A "huge investment in Javascript tooling for Orcas" is evident by the numerous AJAX Master Page, AJAX form and AJAX control items that are now available as file types you may add to your project. AJAX ojbects are now available within the Orcas toolbox.
This commitment also means that your days of debugging inane client script errors may soon be ending: Impressive context-sensitive Intellisense is now in place for Javascript, including smart discovery of object types (a var assigned to an integer gets numeric Intellisense options, etc). Even your external script libraries are available within Intellisene if linked into the page. And, if script library "A" references second library "B", you'll have Intellisense when editing the library "A" in the IDE; shared libraries are supported throughout a web project in this manner.
One of the coolest features I saw was the ability to comment your javascript and have the information parsed as Intellisense tags. Summary, description, parameter and return values can be specified in the Javascript functions, making client-side coding so much easier. Commenting a return type even explicitly sets the calling code's variable to the specified data type. (I worry this could be error-prone: would err later if function changed but comment didn't?)
SCRIPT DEBUGGING!!! I know that VS 2005 supports client-side debugging, but c'mon, are you really using it? Orcas makes debugging script much more intuitive: when a breakpoint is set on a file, the breakpoint is mapped to the file executing at the browser, giving the effect of direct breakpoint placement. Once you enable script debugging on the browser itself, you're off to the races... I can't WAIT for this one.
Wants
Multi-Targeting: This describes Orcas' complete support of previous .NET framework versions. Simply changes the target platform property, and the IDE configures itself to completely work within the desired version. Sounds simple, but it's a big deal: Target .NET 3.5 and projects reference the System.Core and System.Web.Expressions namespaces required by the latest technologies. Change to .NET 2.0 and the references are gone, the project type dialogs no longer contain > 2.0 project types, the compilers move to 2.0, config files are immediatley rewritten for compliance, etc. This is ideal for project teams that are currently supporting previous .NET projects in 1.1 or 2.0, but still want to move forward with development in 3.5. We can have the best of both worlds.
Linq To Sql File: .dbml file types can be used to create Linq data context objects, which allow direct querying of a SQL database. This gives you strongly-typed, object- relational data objects for direct data access. Admittedly, I am a newbie to LINQ, but I have some serious doubts about this type of tool... sounds great, but in these demos they rarely discuss the issues that tend to trip us up: Error handling, paging, caching, validation, saving back to database, etc.
Whoa, nice
Integrated CSS tools, including the ability to use split views (markup & design view); a CSS properties window which also identifies every element or class a particular object's current styling is deriving from (sweet); design view adjustment of margins & sizing; the ability to create new style classes within the IDE and drag/drop them immediately into your external, linked CSS files; the really handy ability to adjust margin, sizes, etc within the VS IDE design view, while your changes are applied directly to the current CSS file(s).
I'm sure the team at Clarity will be posting more and more about Orcas as we continue to explore all of the new features... for now, I'm considering it a "Krill-er App"... sorry, just couldn't resist that.