Writing .NET CF 2.0 Designtime Code – I: An Overview…

Hi Folks...

I am back and it’d have been sooner if not for ELDS :( Never mind that. As many of you have already noted, with Visual Studio 2005 there have been radical changes in the way designtime code is written for .NET Desktop/CF 2.0. These changes in the .NET CF Designtime architecture do break backward compatibility: .NET CF 1.0 Designtime code will refuse to even compile as .NET CF 2.0 Designtime code. But at the same time we believe these changes will:

  1. Improve the experience of the designtime developer. Now you can have designtime and runtime code separated and modularized and your runtime code doesn’t need to have designtime code sprinkled all over it under #ifs.
  2. Better extensibility story. Writing designtime code for Visual Studio 2003/.NET CF 1.0 was a highly complicated and advanced scenario. It was targeted at ISVs to develop designers for the controls they shipped. With the current technology, if someone can write a control, s/he can, with less than or equal effort, write its designer.
  3. Enable better consistency between runtime and designtime. Controls at designtime will look much closer to what they actually look on the device at runtime.
  4. Provide a robust and powerful underlying designtime architecture/framework for you to build great designtime experience for your customers.

Also some of you have asked whether there are any plans for a v1.0 Designtime to v2.0 Designtime upgrade story. There is definitely something up in the air – we have started thinking about it! As of now I do not know exactly how/when it will shape up. But before we release it and so that you are able to take better advantage of the power you wield with .NET 2.0 Designtime, I highly recommend that you take a very detailed pass through Extending Design-Time Support. This is a thorough documentation of .NET 2.0 Designtime, complete with a variety of walkthroughs, samples and lot of other resources. Understanding this is the key to understanding .NET CF 2.0 Designtime. Believe me when I say that the .NET CF 2.0 Designtime is simply built on the .NET 2.0 Designtime. We do nothing special and neither do we get anything special from the .NET Framework Designtime team, just because they happen to sit next door to us :)

There seems to be a little bit of confusion all around on how folks ought to author designtime code for .NET CF 2.0. To help clear this confusion, I am going to temporarily suspend my currently running blog thread on .NET Framework Designtime. I will resume it once I am done laying out some information on how to tackle the .NET CF 2.0 Designtime and the VSD WinForms designer.

I am planning to make divide this series into 3 more posts. Next post will be on designtime assemblies (XMTA/AsmMeta) and why they are critical to the .NET CF 2.0 Designtime. In the post after I am going to build a .NET CF custom control and its designer. And in the last post, I will provide tips on debugging .NET CF 2.0 Designtime code. Let me know if you need me to cover other topics.

See you soon...