Thursday, June 14, 2007

Blending in a little WPF

The product I’m most impressed with so far this quarter is Microsoft Expressions Blend. Most importantly, the product is shipping and I don’t have to wait until 2008 to take advantage of the tooling. A developer who is familiar with Photoshop/GIMP/PaintShopPro and Winform/Web development will find this tool pretty useful. To test this out I’ll dogfood this internally in IS. We have a bundle of internal IS applications called Dradis, built on ASP.NET 2.0, AJAX, and SQL Server 2005. At first I was wondering if I could take this web application and move it forward into a Silverlight platform. Then I realized that we all use IE here at work and I really don’t have any cross-browser concerns and I wonder what would happen if I went back to one of my earliest .NET application architectures, but this time try it out with WPF.

Back I the days of .NET 1.0, I proposed a LOB application for IBM Global Services using a Flash front end and web services in the background to do the heavy lifting for the application. I was laughed out of the room and we wound up with a very functional .NET 1.1 auto-deployed WinForm application. I saw this as a real take away from the application. We had a young group of users who were expecting dynamic interfaces and new sorts of collaboration techniques that it was hard to bake into the .NET WinForm without spending most of our development time on writing GDI+ code, or making extensive use of third party control libraries.

Fast-forward to present day. My mission, turn Dradis as a WPF pilot application. Ideally I would break the existing web application into two parts, code and presentation in preparation for the migration, but since these are internal web pages, and they have grown up over the last six months organically. I may just do a port. (Maybe I’ll start with one page at a time.)

FYI, if I ever use organic growth it really means that someone added a feature, followed by a different developer adding a different feature, until we arrive at a place where the code is pretty innovative, but doesn’t necessarily conform to any sort of enterprise standard.

So why would I want to pilot a WPF application? I believe that there is an opportunity for a new class of application that is easily deployed using click-once and has a much richer user interface than we can achieve with a web technology. A major obstacle in building dynamic web applications is that the end-users expect rich application functionality at the client and it costs a lot of resources to code your business logic a few times. One of the major policies we have at our organizations is a push to deliver web based applications. When you drill into the reason why the policy exists, it really has to do with the complexities of deploying Win32 applications in our organization. This problem is significantly reduced with the introduction of Prism for packaged MSI deployments and click-once deployment technologies.

In fact, I would argue that given our current setup, the simplest application to deploy would be a traditional client server application. Our desktop and database deployment processes are solid, repeatable and very testable. We should probably question whether or not that’s the way it should be, but that’s a different post altogether…

Stay tuned to see how this thing pans out.

1 comment:

God said...

Hey, John. Did you used to go to St. Anthony Village High?