So now that I have been playing around for a while with WPF I have finally started to wrap my head around the shift in the Design/Development flow. I have actually found the easiest way to describe how WPF works, is to view it as a very similar paradigm for desktop apps, as ASP.Net is for web apps. With ASP.Net we have a page that controls the UI, which is the .aspx page which gets rendered as HTML for the end user. For all the logic that reacts to the users interaction on the page, we have the .aspx.cs (or aspx.vb if you are using Visual Basic) which holds all the code, also known as the code behind page. WPF gives us a very similar experience for our Desktop apps. We have the XAML file which describes the UI in a very declarative way very similar to working with HTML or XML, and then we have the code behind page the XAML.cs that holds the actual logic. Very similar to asp.net this allows me to very clearly and efficiently separate my presentation from my logic. As long as I use a common naming convention in my UI, I can change the look and feel all I want without having to affect the back end logic.
Where WPF further draws comparison to ASP.Net is in the ability to apply themes and styles to my application UI. I can define styles inline or in separate files in a manner similar to how I do it for web applications. Though in WPF I am not using CSS or .skin files, the overall system is very similar. Where WPF really shows it's power however is in the ability to describe the UI not only using controls, but also by using the built in Drawing functionality and classes. In the past to truly customize your UI in desktop applications you ended up doing a lot of GDI work and for the most part re-writing the render behavior for your controls. WPF gives us the ability to use declarative markup to describe the appearance and behavior of our controls. Once you get familiar with the Drawing APIs and Objects in WPF, you will find it much easier to work with than GDI ever was. And if you still don't want to do even that much work, you have tools like Expression Blend that will allow you to draw your UI and apply animations etc... in a very designer familiar environment, and it will output all the XAML for you. While these tools do save time, I highly recommend doing some work directly in XAML to get the hang of it. This will definitely help when you are looking for a very specific affect or outcome and having a hard time trying to get some of the tools to do it for you.
Having spent some time working strictly in XAML lately to force myself to get used to it and avoid using any of the tools that will generate it for me has really helped a lot. For those of you who are interested I will start posting some simple step by step tutorials soon focusing on using XAML to create basic UI elements and effects. Till next time...
So now that I am back from Texas (well technically I am now in Nashville Tennessee doing some SharePoint work with one of our clients.) I am immersing myself WPF and Silverlight. I am currently in the middle of Adam Nathans book: "WPF Unleashed" It is a great read so far. Gives me a lot to play with on the road. My current traveling setup is a Lenovo T61p (Intel Core 2 Duo T7500 @ 2.20GHz, 4GB RAM, Windows Ultimate 64bit.), I am running the Expression Suite 2, as well as Visual Studio Team System 2008. So plenty of toys to play with. I am working on getting up to speed on Expression Design 2 so that I can create my own graphics for my UI's and games. I am definitely enjoying the expression suite so far. I have always loved slick user interfaces and figure if I am going to learn WPF and Silverlight I might as well get good with all the tools. Eventually outside of working on making some games, I am going to start working on some Silverlight SharePoint controls; I want to bring the Sexy to SharePoint! Especially now that I have gone through Andrew Connells course on WCM in MOSS, and have gone through his book on the same subject (Andrew's Book) I am really interested in seeing how I can leverage Silverlight to enhance the publishing controls in MOSS.
I have also been spending a lot of time over on Silverlight.net and WindowsClient.net and there are a ton of good videos and tutorials, starter kits, etc... on there. I have downloaded about 6 gigs of videos and slapped them onto my Zune so that I can watch them on the plane. Really good stuff. Something I hadn't really paid much attention to but seems really great is the Silverlight streaming service. This allows you to have your Silverlight applications hosted remotely so that you can use them within your web apps or even just in plane web sites. Very nice, right now it is a free service that gives you 10GBs of storage and I believe 5TB of aggregated bandwidth per account, per month. CRAZY! I just signed up myself and hope to start using it soon. If you want to find out more check the following links:
Everything is going good so far. There is a lot of great content out there on Silverlight and WPF. I can't wait to start building something exciting. Talk to you later...
I just realized that the SharePoint extensions for VS2008 have shipped. The official name is Windows SharePoint Services 3.0 Tools: Visual Studio 2008 Extensions, Version 1.2 Not sure how I missed this! You can find them HERE. The user guide is the same as the 1.1 toolset and can be found HERE. The package includes everything from the last toolset including project types for both C# and VB.NET. This package is still for the 32 bit version of VS 2008. I will keep my fingers crossed for a native 64 bit version in the future. Currently you can still develop on 32 bit and test/deploy on 64 bit environments as needed. There are plenty of places on line to find out more on the ins and outs of developing for MOSS 64 bit with the 32 bit toolset. Some of the features for this release are:
Visual Studio 2008 Project Templates
Visual Studio 2008 Item Templates (items that can be added into an existing project)
SharePoint Solution Generator
So go grab it, get your feet wet and let me know what you think...
This week I will be attending some training with Andrew Connell digging into the WCM (Web Content Management) aspects of MOSS. Though I spend the majority of my time troubleshooting and supporting MOSS with our clients, I have yet to really get to go deep on the WCM portions of the product. This will be a nice chance to take a step back from the daily fire fighting and enjoy some time getting to dig into one of the pieces that I haven't really gotten to play with yet. I am looking forward to an excellent week in Texas and will post about my expereince over this next week as well.
For more info on the WCM offerings that Andrew Delivers with Ted Pattison group:
Office SharePoint Server 2007 Web Content Management Developer Training
SharePoint Education for Users, Administrators and Developers
Anyway, Off to a week of fun in Texas...