Tuesday, May 13, 2008

This was announced at MIX 08 and the product team has put its first BETA out already! 

Windows Presentation Foundation (WPF), the superset of Silverlight used for building rich desktop experiences, has its third major update.   The .NET Framework team today released the .NET Framework 3.5 SP1 and Visual Studio 2008 SP1, both as BETA and downloadable for free - offering a ton of features in ASP.NET, AJAX, Visual Studio, VB.NET and C#. 

Scott covers it all in his marathon post here and Tim Sneath does a detailed write-up of the WPF features here. I thought I will highlight the key things that excited me (and had been waiting to talk about!):

Graphics Enhancements in WPF

Hardware accelerated Shadow and Blur effects: Pixel Shader effects that allow designers/developers on WPF to just add a line of code to get shadow and blur effects.  The best part is that these automatically run hardware-accelerated. Best part: The effects model is designed in a way that developers can create their own re-usable effects.  A detailed write-up of the effects model and a tutorial on creating your own effects is available here.

Improvements in Text Rendering, Animations, 2D Graphics and Startup:  A whole lot of performance enhancements have been made, specially around text rendering in 3D scenes and with regular 2D animations.  Performance has also been significantly enhanced for the cold startup time (when you load a WPF application for the first time).

HLSL and DirectX integration: DirectX developers can use HLSL and Direct3D integration in WPF, allowing for DirectX scenes to be rendered on WPF controls!  This is huge for companies and developers that already have existing investments in DirectX and want to port any of it to WPF.

New Controls:  WPF will have three new controls that are bound to be popular with developers instantaneously.  A really rich DataGrid control that provides the most often used tabular data view, a WebBrowser control that will let you host browser-based applications in a WPF window and (hold your breath) the Office Ribbon control with full adherence to the Ribbon-UI guidelines!!  That will enable developers to just build Ribbon-menu based applications with the least effort!

Deployment

OK, now the bigger part!  One of the bane of WPF applications was the necessity of a huge .NET Framework installed on the system.  The .NET Framework 3.5 redistributable is 197MB making it very hard to bootstrap to a WPF application that is being installed. 

Introducing the .NET Framework Client Profile.  This is a much smaller version of the runtime (expected to be only around 26MB!!!) that does not contain several of the server components (for example: ASP.NET) and only includes the assemblies required for client applications, namely - the .NET Framework core, WPF, WCF and Windows Forms.   This also comes with a bootstrapper (~200KB) which can be included into your client applications.  The bootstrapper will check for .NET Framework availability and then download the .NET Framework Client Profile setup package if it found that .NET Framework is not installed already.    The bootstrapper is also smartly written to look at only incremental components - for instance, if you already had .NET 3.0 and your application required .NET 3.5, it would only download the incremental components, hence reducing the download size much further.  Note that you will have to explicitly configure your application to require only the client runtime components while building the application.

Remember that since most Windows XP systems already have .NET 2.0 or higher, this should significantly reduce the download size for .NET Framework.  This is probably the best update for WPF since its first release!!!

BETA 1 Notes

Much as I want to try all the great stuff immediately, remember that there are some incompatibilities of Visual Studio SP1 with the Silverlight 2 BETA Tools for Visual Studio.  This will cause your Visual Studio Silverlight development experience to break.  A new version of the Silverlight Tools will be released soon (see Scott's blog for more information).

Also remember that this is the BETA and not all features mentioned above (like Ribbon UI) are immediately available.  See Scott's blog for details.   But hey, we've made the announcements.  And Scott's team has been pretty kick-ass in shipping stuff really fast!

posted on Tuesday, May 13, 2008 12:57:58 AM (India Standard Time, UTC+05:30)  #    Comments [3] Trackback
 Thursday, February 21, 2008

I presented a webcast today as part of our ongoing series of precursor webcasts to the Windows Server 2008, Visual Studio 2008 and SQL Server 2008 Launch.  If you have not heard of the launch, you should head right away to www.heroeshappenhere.co.in and register yourself in one of the several hundred cities that we are taking this launch to in India.

I had a good audience and also felt that there was a lot of genuine interest in Smart Client Development.  That is not so much of a surprise given that more and more applications have a hybrid software+services approach to leverage best of both worlds - desktop and web.

My session focused on 4 different buckets of Smart Client Development:

image

Smart Client Applications do not have a single definition.  My view of these applications are that they are primarily desktop applications, that can have a few other "smart" features, such as:

  • Rich presentation providing users with a very good experience
  • Flexible UI that can be modified and keep improving over time (pretty much like web applications do)
  • Local data caching for master data, offline transactional data, etc.
  • Protection of some sort for the local data - both from security and from data corruption
  • Synchronization of data when "online" with conflict resolution, if necessary
  • Seamless deployment features such as auto-updates making it also easy for the software publisher to publish new versions

Most of the above are a breeze with components and frameworks that are available today - and with Visual Studio 2008, development of most of these becomes even more easier.

The webcast showed how you can leverage the following technologies.  I am not going deep into the demos here, because there were many, many steps involved and I am sure it will be tedious for you to read as well as have a high chance of missing something.   I will point you to resources, including the recording of my webcast, to watch these instead.

The technologies I talked about today are:

Windows Presentation Foundation / Windows Forms

WPF is a great way of creating rich applications with vector graphic elements, 2D, 3D, document-oriented applications, etc.  Windows Forms, a technology that has been around longer, continues to be a great technology to build desktop applications that forms-oriented, task-oriented (like a taskbar app, control panel, etc.) and do not require all the richness of WPF. 

A more detailed discussion on which technology to use when is something I posted in this post a while ago. The best part is that the interoperability between these two is fantastic - both provide a "control" that can host the other into one of their "windows" - you can put a WPF control into a Windows Form or vice-versa.  This means even existing Windows Forms Applications can start using some WPF richness for new features that require data visualization of high interactivity.

Microsoft Expression Blend and Visual Studio 2008 combine to provide a rich, seamless designer-developer process for creating these applications.  Blend provides all the designer tools whereas VS 2008 provides all the developer power.

There are also new enhancements to WPF with .NET Framework 3.5 and you can find the entire list here. A video describing the features can also be found here.

Scott Guthrie also blogged about an update to WPF that we are planning to release later this year which will add more flexibility in deployment options and also provide performance boosts.

If you are a beginner on WPF, the community website is www.windowsclient.net and the best place to start is the WPF Video Gallery. 

SQL Server Compact Edition

Another cool piece of technology I discussed today was SQL Server Compact Edition (or SQL Server CE). 

SQL Server CE is the compact edition of the SQL database and was used in a prior version in the Windows Embedded/Mobile world because of the necessity of small footprint there.  That technology has evolved now to provide a common base technology called SQL Server CE that you can still use in that world, but can also use in building PC applications.  In here, you can actually embed a full database within your application and query data using ADO.NET with the same ease as you would if you were using SQL Server Express or higher versions SQL Server itself.

The neat thing about using SQL Server CE is that you do not need to have SQL Server (of any kind) installed on the client system.  So it is a true database engine embed that doesn't need any administrative privileges or huge local services to be running.

You can learn more and download SQL Server Compact Edition 3.5 today from http://www.microsoft.com/sql/compact

A video tutorial of using SQL Server CE with a slightly older version (3.1) is available here and should get you introduced to the basic concepts.

Microsoft Sync Framework

Probably the coolest demo (at least according to the presenter :)) was showing off the Microsoft Sync Framework CTP Refresh 1.

Microsoft Sync Framework is one of those frameworks that you have to use to believe!  It is unbelievably simple for the enormously huge tasks it accomplishes.  It can do any kind of synchronization - between PCs, between PC/mobile/device, between client and local server, between client and Internet server, between databases - anything.  Ask it to sync and it obeys!

With Visual Studio 2008, the integration is unbelievable. I did a whole demo of local client/server sync between a SQL CE database and a SQL Server database running on my system with part data locally cached, part directly accessed - all of it with just ONE LINE of code and in well under 15 minutes.

You might want to give it a spin yourself by downloading it from www.msdn.com/sync - you will need both the Microsoft Sync Framework and Microsoft Sync Services for ADO.NET v2.

Excellent video tutorials (albeit a bit lengthy) are available here, here and here.   I used a large part of the third video for my demo today.  The videos also contain customizations you can make to the Sync APIs that I did not have time to cover today.

ClickOnce

Finally we talked about ClickOnce APIs in .NET Framework for easy publishing and auto-update.  I have uploaded the code I used today along with the presentation (link below).   The simple demo I used today was based on this video that can walk you through the steps all over again.  

 

Presentation and Demos

You can download today's presentation and all code samples I did today (finished samples) from here.  (The presentation is in PPTX format - you might want to download a viewer here if you don't have Office 2007). I do encourage you to go through the video links I mentioned above as well to get more information - I was talking too many technologies in the 1.5 hour session - many more details are available in the videos that are dedicated to these topics.

The entire webcast on-demand recording is available here.  You will need to register to download this, if you haven't already attended the webcast.

 

So there!  My part of the promise to post all the links and the pptx/code is done.  So now there's nothing stopping you from building awesome Smart Client Applications!! 

Happy coding!

posted on Thursday, February 21, 2008 11:45:16 PM (India Standard Time, UTC+05:30)  #    Comments [2] Trackback
 Monday, January 28, 2008

Exciting time for us here!!!!   Here are some things to get you started with MIX fever! :)  Loads of great prizes and goodies to win - so go ahead and do some stuff!

clip_image001

Hear ye, hear ye!  MIX08 to debut the first ever MIX UX Track which is 3 days of solid content dedicated to creatives / designers.  Lou Carbone, David Armano, Dan Roam, Kim Lenox and others will speak.  In conjunction with Adaptive Path, the User Experience track is just one of the many great reasons for all types of designers and creative professionals to attend MIX this year.  http://visitmix.com/2008/mixux.aspx

clip_image002 

The deadline for this year’s CSS contest, RESTYLE, has been extended.  Folks can still clip_image003restyle the MIX08 Homepage and win a pass to MIX08, 3 nights at the Venetian, $$ and more, more, more! http://visitmix.com/2008/restyle/

clip_image004

Have you been listening to The Signal?  Each week a new episode debuts featuring a speaker or MIX crew member talking about some of the upcoming coolness happening at MIX08.  Listen to their interviews with Molly Holzschlag, Kip Kniskern, Jonathan Snook and others as we countdown to Vegas.  Got a question for the show?  Email signalm@microsoft.com or leave a voice-mail message at (425) 703-4650. http://visitmix.com/blogs/TheSignal/

clip_image006 

Perhaps you remembered last year’s MIX, in which we featured Flotzam, a WPF screensaver mash-up that showed MIX07 feeds from Facebook, Flickr, Twitter and blogs. Well, we are doing it again this year with a twist: we are running a contest and will feature community created skins of the application on the big screen and on the screensavers of the computers available to attendees at the show.  The best skin will win an XBOX 360.  Entering the contest is easy: everything you need to know can be found here http://www.visitmix.com/blogs/News/403/ including links to screencasts and instructions that show how easy it is to do the restyle.  

posted on Monday, January 28, 2008 8:21:26 PM (India Standard Time, UTC+05:30)  #    Comments [1] Trackback
 Wednesday, January 02, 2008

When I first saw the iPod, what I really liked was the form factor and display that made tons of music and videos really portable.   I don't quite use the iPod - it now serves as an external hard disk for some old data that I once put into it - mostly because I am not really somebody who has a music-player plugged into his ears all the time.

When I saw the iPod, the first thing that struck me was that it would be cool to have this device wirelessly connect to the Internet.  Zune solved that by providing a Wi-Fi capable device.  (I do not own a Zune - at least not yet!). 

The other thing that really would have made it a killer device for me, was ability to browse Wikipedia-like information repositories.  After all, there was a fantastic display with crisp resolution.  I did realize that it would be akin to having something that can connect to the Internet - either through Wi-Fi or through GPRS.

When I started using a Windows Mobile phone (first a Pocket PC, now a SmartPhone) - this wish was granted as well. Pocket IE is really damn good and gives a real close feeling to browsing on the PC.   I browse using my phone a lot!  Real lot!  And more often than not, I am browsing Wikipedia.

Coming back to the original idea - I still thought a portable reading device would be a fantastic idea.  The ideal portable reading device would be able to do the following:

  • Connect to the Internet wirelessly - not necessarily to the whole wide Internet, but to an online service akin to the Zune or iTunes music store
  • Help search/browse through articles, periodicals, journals, books, blogs and the like - basically online reading material.  Again, note that this is reading material - not like a browser that can do a hundred other things.  The focus remains on reading.
  • Pick an article or book to read and download that to an offline cache (could be DRM'ed)
  • Provide a fantastic reading experience - with ability to hold and read like a book, a screen that's not harmful to hours of gazing at it, provide hours of battery power and easy recharging, etc.
  • Support images and maybe a few limited formats of audio/video

Today, I came across Amazon Kindle, something that is a step in this direction.  It still has miles to go, but I think it is a great step.  Obviously there is way too much thought (and maybe multiple market players) to go into this before this becomes mainstream.

posted on Wednesday, January 02, 2008 7:23:59 PM (India Standard Time, UTC+05:30)  #    Comments [3] Trackback