There are a bunch of videos at https://channel9.msdn.com/Showforum.aspx?forumid=14&tagid=329 digging in to what’s new for WPF in the .NET Framework 3.5 SP1.
Tag Archives: WPF
Free training on .NET 3.5 SP1
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.
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!
Silverlight 2, Accessibility, Section 508, etc.
During my recent Silverlight 2 talks, I have had a handful of questions around building Section 508 compliant applications with Silverlight 2. I’ve mentioned that the accessibility features are not in the current beta, but they are coming. If you are interested in learning a little bit about what is coming, then check out the video at http://visitmix.com/blogs/Joshua/Silverlight-2-Accessibility-with-Mark-Rideout/ for details. As the video mentions, if you want to get a head start, you just need to look into UI Automation from WPF since Silverlight will use the same approach.
DC Launch Follow Up
Thanks to everyone who stuck around for my "Defy Occasionally-Connected Challenges With Smart Client Applications" session at the DC Launch. The deck and demo files are available here:
Sync Services for ADO.NET Demo
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. You’ll notice that I didn’t include a download for the WPF demo. That’s because the UI in the Sync demo is the exact same UI from the WPF demo.
I mentioned recorded/upcoming webcasts a few times during the presentation. You can find a list of all my recorded webcasts at http://devkeydet.com. Here are the recorded webcasts related to the topics I covered:
Introduction to Windows Communication Foundation ***
Introduction to Windows Workflow Foundation ***
Introduction to Windows Presentation Foundation ***
Smart Clients: What’s New in Visual Studio 2008?
Introduction to LINQ + LINQ to SQL
What’s New in the WCF and WF in Visual Studio 2008 & the .NET Framework 3.5
Building Workflow Services (WF+WCF) with Visual Studio 2008
Building WPF Applications in Visual Studio 2008 and Expression Blend
*** These webcasts are fairly old. They are based on .NET 3.0 / VS 2005. The core concepts obviously apply, but the developer experience for all of these technologies has greatly improved in Visual Studio 2008.
I also mentioned my webcast on Thursday. I’ll be presenting a deeper dive into the Microsoft Synchronization Services for ADO.NET. Details are here.
What level of MSDN subscription does Expression Blend come in?
During my Building WPF Applications in Visual Studio 2008 and Expression Blend webcast on Wednesday I mentioned that Expression Blend is part of your MSDN subscription. There was some confusion in the Q&A around what level. According to http://msdn2.microsoft.com/en-us/subscriptions/aa718657.aspx, Expression Blend & Web show up in Visual Studio 2008 Professional with MSDN Premium and above.
WEBCAST FOLLOW UP: Building WPF Applications in Visual Studio 2008 and Expression Blend
Thanks to everyone who attended! You can download the deck here and the demo code here. As always, if you missed it, you should be able to view a recording within 24 hours by following the original registration link. I have also add the recording link to my list of recorded webcasts here.
WEBCAST: Building WPF Applications in Visual Studio 2008 and Expression Blend
NOTE: Even thought this is a WPF session, the focus is on tooling (i.e. VS2008 & Blend). Silverlight 2 developers who want to understand the future tooling experience for Silverlight should attend this session. In fact, the UI I created during the session is the EXACT SAME UI I will be using for my upcoming Silverlight 2 talks.
Join us to learn how to build Windows Presentation Foundation (WPF) applications with the help of the new WPF designer in Microsoft Visual Studio 2008. In this session, we focus on the construction of a real-world application demonstrating how to get the best out of the designer’s capabilities. Learn the basics of building WPF applications in the Visual Studio 2008 WPF designer, have a clear view on when you should work in XAML code and on the Visual Studio design surface to build your WPF application, and see how you can use Microsoft Expression Blend in conjunction with Visual Studio 2008 WPF designer. This session has a heavy focus on Visual Studio 2008, with a light focus on Expression Blend. The target audience for this session is developers.
When
Friday, March 14, 2008
2:30P-4:00P EST (11:30A-1:00P PST)
Register at this link:
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032369774&Culture=en-US
Want a sneak peek at Silverlight 2 before MIX?
Scott Guthrie posted an update on Silverlight 2 plus an eight part walkthrough of building a Silverlight 2 application. In the final part, he turns the Silverlight 2 application into a WPF application reusing the Silverlight 2 xaml and code. Check it out here!