Unveiling .Net Framework 3.5

Earlier this week, on November 19th to be precise, the Developer Division group at Microsoft announced the RTM of the fourth major installment of .Net Framework (for anyone counting we have had .Net Fx 1.0, 2.0 and 3.0 and though 1.1 is not counted the same way it brought a lot of necessary features to the fore such as CAS). The release has gone through numerous technology previews and 2 significant betas so I am hoping a lot of you reading this are already evaluating the light up features in this release. For those who have not gotten there yet, I am hoping this write-up will excite you to take the next step and get up, close and personal with .Net Fx 3.5 and Visual Studio 2008.

One of the core concepts to understand with .Net 3.5 and its predecessor .Net 3.0 is the additive nature of features/components thus minimizing compatibility impacts and requiring lesser effort to move to the 3.5 platform compared to the move from 1.1 to 2.0. The idea here is the distinction in the bits shipping divided into red-bits and green-bits. Red-bits are the once that shipped with .Net 2.0 and these have been minimally modified to account for bug fixes and accommodate certain features but looking broadly have been left pristine, thus reducing the possibility of incompatibilities (these bits are equivalent to .Net 2.0 SP1). The green-bits represent the new features shipping in Orcas and are installed under 3.5 folder in windows system directory.

Looking at the features, the first one that catches the eye is ‘LINQ’ or Language Integrated Query. As the name suggests this new programming model integrates data access and query support within the language. The query could spawn object collections, xml , entities, or even relational data. Not only does LINQ ship with a set of standard query operators but also provides an extensibility model that can be used to build and replace custom operators as needed. As the enhancements are part of the ,Net languages (C# and VB.Net), you reap the benefits of compile-time checking, Intellisense in Visual Studio and a consistent way of querying data across different types of data sources as described earlier. A simple example of LINQ working against a relational database follows


In the Services realm, .Net 3.5 adds some very exciting features to the Windows Communication Foundation stack. The first one is an HTTP programming model via AJAX-enabled WCF services. Also, WCF features an improved RSS and ATOM syndication support with 3.5.Thirdly, moving forward WCF services will support running in partial trust. Last but not the least 3.5 provides for greater integration between Workflow Foundation and WCF which implies WF can expose WCF end-points to receive or transmit messages in a state-machine or sequential workflow. Finally, there are numerous improvements in the Visual Studio designer to improve the service development workflow – to name a few – adding a service reference support, an integrated WF designer, project templates, item templates for services and a test client is also included.

For web applications, benefits abound with the integrated support for ASP.Net AJAX. ASP.Net AJAX 1.0 which was released earlier this year in January as a standalone release on top of .Net Fx 2.0 provides a framework for building RIAs, with a great cross-browser and cross-platform story, built for developer productivity and efficiency with extensive Visual Studio integration and bringing the goodness of many of the server based ASP.Net services to the AJAX world. There is also improved support for JavaScript intellisense and debugging within the designer. Also included in this release are new data controls such as ListView, DataPager, and LinqDataSource. The ListView enables enhanced layout and template control for governing the look and feel of your data representation. The control is described in much detail in one of my blog post here. The DataPager control enables various pager visualizations, providing full extensibility support for the layout by the use of templates. The LinqDataSource control enables declarative binding of ASP.Net data bound controls to data models using LINQ to SQL.

The .Net Framework 3.5 also includes specific enhancements around building office applications and the compact framework for building Mobile applications. I will cover these enhancements in a subsequent post. Hope this got you thinking of enhancements that you could leverage in your products. If you do have any questions, please contact your GISV technical counterpart for more details.