I just came across this update to the .NET 3.5 Enhancements Training Kit from Jonathan Carter. If you’ve seen my ASP.NET 3.5 Extensions Preview webcast and are looking for the code, then you will want to download the kit. I used the kit as the starting point for my demos. I do a few things differently here and there, but most of it is because I didn’t have time to show everything in 90 minutes. As far as I can tell, everything that was in the extensions preview is in 3.5 SP1 except ASP.NET MVC which will be shipped separately. The training kit offers a great way to get your hands dirty with the new stuff in 3.5 SP1. Go get it! Oh yea, I have also updated the deck from my webcast to reflect the changes. I have also added a couple slides about what’s new in WPF & WCF. You can download my new 3.5 SP1 deck here.
Tag Archives: .NET Framework 3.5
VS2008 / NETFX 3.5 SP1 Beta
If you keep up with multiple Microsoft technology bloggers, today is one of those days where you’ll see everyone posting similar posts:(. Such is the nature of blogging. I get to say what I want, but sometimes that means everyone else is saying the same thing. Visual Studio 2008 and the .NET Framework 3.5 Service Pack 1 Beta are out! Here are some links to learn "what’s what" about SP1:
Scott Guthrie’s comprehensive post:
WPF-specific:
Brad Abrams’ has lots of screenshots of various features:
Standalone Validation Block
As I mentioned here, I have been digging into what’s out there for WPF LOB applications. It’s been a long time since I’ve kept up with the work the patterns & practices group has produced. One of the things I’ve seen a webcast/blog post or two about is the Validation Application Block. They have put together a nice approach that allows you to define validation once on your business entities. In addition, the block includes adapters that allow you to surface the validation in ASP.NET, Windows Forms, and the Windows Communications Framework (WCF). In theory, the block can be used with WPF as well, but an adapter hasn’t been built. I came across two solutions. The first one, Validation Application Block, meet WPF, I found on Tom Hollander’s blog. The other, came from one of the EntLib Contrib projects on CodePlex. The project is called Standalone Validation Block. It’s two gems in one! First, it allows you to use the core validation framework without having to take a dependency on the full Enterprise Library. Second, it has a solution for surfacing the validation in your WPF UI. Go check it out!
WPF for Line of Business applications
I’m a big believer that WPF is a great UI technology for LOB applications. Yes, there are some shortcomings in the designer experience if you compare the WPF designer to the Windows Forms designer in Visual Studio 2008. Yes, WPF is missing some controls that people expect like a DataGrid and DatePicker, but there are solutions. For example:
- Xceed has a free DataGrid for WPF. There is even a live demo that is a WPF XBAP application
- Kevin’s WPF Bag-o-Tricks has a DatePicker and a slew of other helpful controls
- There are a number of third party controls you can find in the Control Gallery over at http://windowsclient.net.
- Scott Guthrie announced the .NET 3.5 Client Product Roadmap in February. Among other things, he mentions that "Later this year we are also planning to release a number of new controls for WPF. Included in the list we are working on are DataGrid, Ribbon, and Calendar/DatePicker controls."
I’ve updated my WPF Resources list with these links and more.
Personally, I think the benefits of the WPF programming model outweigh the shortcomings of the WPF designer in Visual Studio 2008. Some of the customers I have worked with have told me that once they get over the initial "shock" around the designer (compared to Windows Forms) and the lack of certain controls, they quickly find that they are more productive overall because they are using WPF. This will get better as the Cider team continues to improve the WPF Designer in Visual Studio. Remember that the Windows Forms designer has been around since the release of .NET 1.0! They’ve had a little more time to get all those feature in:).
One of the things I have been chatting about with some of my teammates is that there aren’t enough good samples demonstrating the use of WPF for LOB apps. I’ve been doing some research to see what’s out there. One example is the WPF sample that ships with the CSLA framework from Rockford Lhotka. I used CSLA back in the days of my life as a VB6 developer. Over the years, Rocky has evolved his framework as the .NET Framework has evolved. CSLA is primarily a Business Object framework, but it ships with example user interfaces (including Windows Forms, ASP.NET, and now WPF). The latest version has a WPF sample LOB app. I also came across Karl Shifflet. Karl’s blog has a ton of great info in it about WPF LOB apps including an 11 part series he’s started on the topic:
I’ve yet to see a sample app that does everything Karl is planning on doing plus show online/offline capability using:
- Client Application Services for Authentication / Authorization (which supports offline scenarios)
- Data Access via a local SQL Compact Edition database using LINQ to SQL or LINQ to Entities
- ADO.NET Sync Services communicating across the wire using WCF to synchronizes with the server database
- Caches lookup data and a necessary subset of the server database relative to the user in the local SQLCE database
- Allows the user to continue working offline, syncing/reconciling changes when they reconnect
I have a bunch of samples that show many of these scenarios, but I have yet to come across a complete solution bringing all of this together in a single app. Have you seen such an example? Are you aware of any other work like Karl & Rocky’s for building LOB WPF apps? Please let me know in the comments section. Thanks!
WEBCAST FOLLOW UP: Overview of the Microsoft ASP.NET 3.5 Extensions Preview
Thanks to everyone who attended! Sorry about the demo hiccups / going over. As I mentioned in the beginning, I had a hard time trying to get everything I wanted to cover into 90 minutes. As you can see, there’s quite a bit in the ASP.NET 3.5 Extensions. Normally, I make all of my code demos available for download. However, I used a newer build for my demos that’s not publicly available. Once we release the new bits, I will make my code available. For now, you can download my ASP.NET 3.5 Extensions deck here.
UPDATE: I just created a list of links on my Windows Live Space called ASP.NET 3.5 Extensions. This list has links to all the relevant landing pages & forums for the various technologies covered today. Newer versions of MVC, Dynamic Data, and the Silverlight Controls have been released since the December 2007 release of the ASP.NET 3.5 Extension Preview. Make sure you read the release notes of each newer package to understand how to get the newer bits working on top of the December 2007 preview. The ADO.NET Entity Framework and ADO.NET Data Services in the December 2007 release of the ASP.NET 3.5 Extension Preview are the latest releases as of today (04/30/2008). Stay tuned for a newer release that will reflect the updates you saw today.
WEBCAST: Overview of the Microsoft ASP.NET 3.5 Extensions Preview
The ASP.NET 3.5 Extensions Preview is a new release that provides new functionality being added to ASP.NET 3.5 and ADO.NET in 2008. This release delivers a set of new features that target:
- Enabling High Productivity Data Scenarios – including MVC, Entity Framework, ADO.NET Data Services and Dynamic Data
- Supporting Test Driven Development – including a powerful and extensible MVC framework
- Creating the best server for Rich Clients – including Ajax history support and Silverlight controls for ASP.NET
We will take a lap around all the great capabilities packed into this upcoming release including ASP.NET MVC, ASP.NET Dynamic Data, ASP.NET AJAX, ADO.NET Entity Framework, ADO.NET Data Services, and Silverlight Controls for ASP.NET.
When
Wednesday, April 30, 2008
2:00P-3:30P EST (11:00A-12:30P PST)
Register at this link:
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032373610&Culture=en-US
SCREENCAST: Hosting a Workflow in a Local Executable using Workflow Services Part I
When the Windows Workflow Foundation (WF) was first introduced in the .NET Framework 3.0, the only way to host a workflow in a client application was to use the WorkflowRuntime class programmatically, start the runtime, and create/start an instance of a workflow. Furthermore, if you wanted to communicate between the client code and the workflow logic, you needed to use a ExternalDataExchangeService. This required a fair amount coding effort to get even the simplest of workflows up and running. The .NET Framework 3.5 introduced Workflow Services which are Windows Communication Foundation (WCF) Services authored as workflows. Workflow Services give you a new way to accomplish this scenario using a much simpler, cleaner, and arguably more elegant approach. In this three part screencast, I show you how to improve on the more manual hosting + ExternalDataExchangeServices approach by hosting a workflow in a client executable using Workflow Service.
Part I – Reviewing the SimpleExpenseReport application from the Create a Sequential Workflow tutorial so we can compare the two approaches. The application explicitly hosts the WorkflowRuntime & uses ExternalDataExchangeService
Part II – Walking through the fundamentals of creating a Workflow Service and hosting the Workflow Service locally
Part III – Walking through my rewrite of the SimpleExpenseReport application using Workflow Services.
Source code for the Workflow Services version of SimpleExpenseReport is available at http://cid-1f72da7294089597.skydrive.live.com/self.aspx/Public/WCF_WF/SimpleExpenseReportWorkflowServices.zip.
SCREENCAST: Exposing/Consuming RSS/ATOM using WCF 3.5 & Silverlight 2
In this screencast, I show you how easy it is to expose RSS and Atom feeds using the new Web Programming Model (REST) features, classes in the new System.ServiceModel.Syndication namespace, and LINQ to SQL in the .NET Framework 3.5. Then, you will see how you can use classes from the System.ServiceModel.Syndication namespace to consume RSS and Atom feeds using Silverlight 2.
Screencast: Exposing/Consuming RSS/ATOM using WCF 3.5 & Silverlight 2
Source code: WcfSyndicationLinqToSqlSilverlight2.zip
Service Factory Modeling Edition for Visual Studio 2008
During the recent Public Sector Developer Conference in Washington, DC, I was asked about tools support, beyond the class designer, for modeling WCF services. My answer was to use the Service Factory Modeling Edition for Visual Studio 2008 from the patterns & practices team. Here’s a quick screenshot of what the design surface looks like:
You will also want to check out the community site at http://www.codeplex.com/servicefactory. The community site contains hands-on labs for both using and extending the Service Factory, discussions with customers and field, known issues, and roadmap information. In the near future the site will include presentations, demonstration videos, and community contributions.
WEBCAST FOLLOW UP: Microsoft Synchronization Services for ADO.NET
UPDATE: I have added a recording link for this webcast to My Recorded Webcasts list.
Thanks to everyone who attended. Sorry about the Live Meeting slide animation issue. Hopefully the webcast was still valuable even with the difficulties. Here are the links to the deck & demo code:
Sync Services 101 / Going N Tier Demo (first two demos)
Applying Additional Server Logic
Conflict Resolution (from synguru.com)
The demos require Visual Studio 2008 and depend on a SQL Server 2005 database. I made the database available for download as well. You’ll have to attach it to your SQL/SQL Express instance and make sure the connection strings in the project are correct.
The conflict handling demo is a direct link to the demo from http://syncguru.com. Remember there are some great advanced samples and demos there as well. There is also some good information about the next version too.
Lastly, I didn’t really call this out in the webcast, but Sync Services is a piece a much larger puzzle called the Microsoft Sync Framework. You can learn more about the future of sync at http://www.syncguru.com/projects/SyncServicesDemoConflictHandling.aspx.