Visual Studio 'Orcas' Enters Beta 1; .NET Framework 3.5 Released
After two community technology previews whose purpose was to warm up developers to the new foundation-based programming models intended for use with Windows Vista (although Vista's release ended up coming first), the next edition of Microsoft Visual Studio, code-named "Orcas," officially entered Beta 1 today.
At last, developers concerned over what they saw as a reticence on Microsoft's part to support Windows Communication Foundation -- the next generation of Web services -- will be gratified to discover Orcas Beta 1 will indeed support WCF.
This has been a sticky subject, among other reasons, because WCF would move Web services away from a model dependent upon Internet Information Services. When WCF was first launched as a preliminary framework, code-named Indigo, its architects set about to create a standards-driven approach based on WS-* that would eventually supersede IIS.
Granted, IIS 7 remained the recipient of bad press mostly on account of having been an indirect successor of IIS 5, still widely viewed as one of the least secure servers in history. But while Microsoft had good reason to want to replace it, some enterprises had already made substantive investments in Web architectures based on IIS.
The need to cast off from IIS without giving existing customers the impression they were being cast off as well, may have led to some curious language in Orcas' overview documentation today, including this passage: "Beyond the secure, reliable and extensible infrastructure of IIS, developers can easily create Web applications with more interactive, more responsive and more efficient client-side execution using the seamless integration and familiar programming model of ASP.NET AJAX and other extensions and enhancements."
In fairness, IIS 7 is a tremendously more secure and principled platform than IIS 5, though Microsoft's engineers have clearly acknowledged that a more securable option for the future is to embrace what they still refer to as the Indigo philosophy. With Orcas, we should see Microsoft's first demonstrations to the everyday programmer about how to do so.
As promised, Visual Studio Tools for Office (VSTO) will be directly integrated into the suite - it's no longer an add-on. Microsoft believes in changing the definition of applications built around the Office platform to move beyond the realm of merely hosting VBA macros that perform small functions. The company wants to see more users developing so-called Office Business Applications (OBA), which are managed .NET applications that use original or amended front-end programs, but that continue to utilize the Office applications' engine.
Since moving away from the Component Object Model, Office applications are no longer tightly glued to their front ends, so businesses can conceivably devise and deploy custom document generators that have the new "RibbonUI" look and feel, but whose functions are principally geared for those businesses exclusively.
But also built into the new Orcas release is direct support for Microsoft's ambitious new Language Integrated Query (LINQ) model - ambitious because it would alter the syntax of Microsoft's languages Visual Basic and C# to include set logic. Anyone who works with relational databases is familiar with SQL. Up to now, procedural logic (the kind used by language interpreters and compilers) and set logic (the kind used by relational databases) have had to be kept separate from one another.
Microsoft had at one time created a programming system that did just that: Using the early ActiveX Data Objects (which a number of businesses still do), the database manager was addressed using strings that were themselves variables in memory assigned to variables. To have the DBMS process the database command, a "recordset" function was invoked with one of these strings as its arguments. That way, the DBMS could do its work on a separate track, while the main application went along as though it were concatenating a bunch of strings in memory.
Under LINQ, the concept of variables that represent sets such as tables or lists is embedded directly into the program code, as though they were principal types - because, now, they are. In C# with LINQ, variables that could represent objects can just as easily represent tables or sets. So a value in a variable that happens to represent a set can be extracted and assigned to another variable, using SQL-like terms that aren't all that unfamiliar, such as select and where.
In order to accommodate LINQ, Microsoft had announced the release Beta 1 of .NET Framework 3.5 today, one major addition to which was LINQ support. But at the time of this posting, the download link for .NET 3.5 Beta 1, which should appear on this page, had been removed. The new framework, which even Microsoft's own developers continue to call ".NET FX," also promises direct ASP.NET AJAX support, which will enable developers to generate front ends for Web, Office, and dedicated applications using Web development tools - of course, Microsoft recommends Expression.