The .NET Framework 3.5 build 3.5.20209 was released earlier this morning as part of the Visual Studio Orcas March 2007 CTP. Find the downloads here:
- Visual Studio Code Name “Orcas” March 2007 CTP (Self-extracting Install)
- Visual Studio Code Name “Orcas” March 2007 CTP Team Foundation Server (Self-extracting Install)
- Visual Studio Code Name “Orcas” March 2007 CTP (Virtual PC image)
If you download the Virtual PC image, you get an image with both Team Foundation Server and VS Orcas installed. Update:
Recommended. See this post.
The .NET FX 3.5.20209 contains a load of new assemblies and features. It’s amazing how big the leap forward is. Instead of repeating the list of all the new features (that you can find at any of the download locations above), I will give my first hour impressions on the new FX. Here we go. I have some BIG things to show you.
Workflow gets WCF support
The System.WorkflowServices assembly will make you drool. There are some new Activities for you to use in your workflow. These are called SendActivity and ReceiveActivity. These activities can be used inside a workflow to communicate to and from the workflow as a WCF service.
Also, a new WorkflowServiceHost (plus corresponding WorkflowServiceHostFactory) complements the existing ServiceHost class for hosting services. It has a read-only property for the WorkflowRuntime and adds a WorkflowRuntimeBehavior to the end points automatically. It is this behavior that hosts the workflow’s runtime.
The NetTcpContentBinding and WSHttpContextBinding are two new WCF bindings that derive from NetTcpBinding and WSHttpBinding respectively. They add the concept of contexts to the existing bindings. You will get two properties that you can set: ContextExchangeMechanism and ContextProtectionLevel. Both implementations use the ContextBindingElement class to bring
ChannelManagerService is a new runtime service that registers handlers for the lifetime events of a workflow in the hosted runtime. It will manage the cache of WCF channels that are opened and used for a particular workflow instance.
AJAX ASP.NET Extensions integrated
The ASP.NET 2.0 AJAX Extensions 1.0 are now integrated into the framework. They still exist in the System.Web.Extensions assembly and have been merged with the other stuff already there.
There are a whole bunch of new classes in the namespaces System.Web.ClientServices and System.Web.ClientServices.Providers. These classes seem to be intended in conjunction with Smart Client applications, that can have an off-line (network connection) state. The providers are used for authentication, profiles and roles, just like for the application services. Here they have created a separate interface for the service contracts (where this is not the case for Application services). Finally, there is the possibility to retrieve and/or store client settings.
Changes in System.Web.Extensions.dll
Quick recap: the extension to ASP.NET 2.0 already included the RolesService and LoginService classes, which are WCF services with operations to attempt to log a user in and retrieve their roles. It also already had a ListView control and a DataPager that combine to form a pageable list view. These come complete with designers. And, there is a new Web Event for errors in web services, called WebServiceErrorEvent, that you can leverage in your ASP.NET health monitoring.
Apart from the addition of the AJAX extensions and client services, there is now a third WCF service named ProfilesService, that can get profile properties from a user (possibly a member through Membership). Also, some minor renames in namespaces. The three WCF services are no longer under System.Web.Security, but System.Web.ApplicationServices.
Build provider for WCF
Last, but not least, a new build provider is introduced for ASP.NET web sites, that can build service proxies for you by importing service map files (.svcmap). These files are created when adding Service References to an ASP.NET Web site and contain all details of the referenced services, including their meta-data files such as XSD schemas.
More on .NET FX 3.5 and Visual Studio Orcas in later posts.