When WPF was released over three years ago I was expecting it to become the dominant desktop technology by now. This has not been the case, which is lucky for me because it has taken until now for me to complete the original set of components I wanted to create for Krypton.
But I do think that given enough time it will gradually take over because of the extra power and flexibility it provides. Silverlight 3 now makes it possible to build desktop quality applications for the web which has the potential to really drive the adoption of XAML and WPF.
So to make sure I don’t completely miss the boat I need to start playing around with Silverlight/WPF and coming up with ideas for components. Given that Silverlight/WPF will be around for at least a decade it makes sense to create some controls or components that have a long potential lifetime of use. Write once and sell for a decade feels like a good business model. It also makes sense to start with components that can be used as building blocks for creating bigger and better components in the future.
The first result of my experimenting is an animating panel that this pluggable. This MetaPanel control is intended to solve two related problems. First is the problem of changing panel layouts. If you want to alter the layout of children between a WrapPanel to a StackPanel you need to create the StackPanel, move all the children across and then remove the old WrapPanel. Not difficult but a painful process.
The MetaPanel control instead has a pluggable layout algorithm so that you can switch the layout without having to create a new control. This is a much easier process to manage and also makes it easy for the developer to create custom pluggable layout algorithms for specialized scenarios.
The second problem is one of animation. As panel children are moved to new locations it would be nice to have some form of animation in order to give the user visual feedback. If you are moving all the children from one panel control to another this becomes very difficult to achieve. But as our children are always children of our single MetaPanel it becomes very easy. Whenever the layout is changed we animate the children to new positions. In fact the animation algorithm is also pluggable allowing maximum flexibility in specifying different animation requirements. With the layout and animation being pluggable you can see why I named it MetaPanel.
Use this MetaPanel TestPage link to see a simple Silverlight application that allows you to play around with the control. You should see something like the following…

Use the top row to add and remove child items.
Use the second row to change the layout algorithm.
Use the third row to alter layout specific values.
Use the last row to alter animation settings.
September 21st, 2009 at 8:03 pm
spelling mistake “controol”, winforms will last for a very long time.
September 21st, 2009 at 8:04 pm
and the control is very cool
September 21st, 2009 at 8:09 pm
silverlight does indeed have a chance of staying as it brings the power of winforms to the web. it’s a new technology that will be useful for developers and with 3rd party controls it will definitely be very popular.
as for winforms … they’ll never disappear or at least for the next years to come and will not be replaced by wpf because it’s a slow technology.
September 21st, 2009 at 8:35 pm
David: Spelling mistake removed.
I agree that WinForms will be around for a long time as it is ‘good enough’ or most business purposes and people already know it.
September 21st, 2009 at 9:22 pm
Hi,
Does this mean you have finished the Krypton (Windows Form) development? And you are now just supporting bug fixes.
I am guessing implementing most of the krypton components as WPF or silverlight would be a starting point.
I cannot see Windows Forms being drop for a good few years as most companies don’t have the time/money to re-train staff to use and develop in WPF, and from what i have seen of WPF, it is almost like the software devloper needs to become more of a graphics designer.
Xplosiv
September 21st, 2009 at 9:40 pm
I will still be spending most of my time on Krypton and adding more free controls to the Toolkit and commerical add-ons. My next task is to add the Wndows 7 palette and update the ribbon to work like the Office 2010 version.
September 21st, 2009 at 9:45 pm
Hi,
I would not spend to much time providing free controls, at the end of the day they don’t make you any money, but i guess they work as a good advertising tool.
One thing to think about adding is the WPF colour schemes (i have seen around) as adding more colour palettes IMO would be a big bonus as currently there are not that many and making your own is very time consuming.
Maybe even add your own Krypton colour schemes in as well.
Xplsoiv
September 21st, 2009 at 10:13 pm
i don’t think that win forms are a ‘good enough’ solution. i think it’s the best solution for desktop apps.
if you start coding in wpf you need to be a designer as xplosiv said and beside this the apps are slower. i think the clients want a nice looking app … but not a slow one and at this chapter the wpf solution for desktop apps fails. for the web silverlight is really great but that’s another story.
September 21st, 2009 at 11:26 pm
Hi,
“i don’t think that win forms are a ‘good enough’ solution.”
I think they are for desktop applications (i.e anything not internet orientated), especially with Krypton. Without Krypton i agree win forms are not very good. This is why Phil should add MORE PALETTES to the krypton suite.
WPF and silverlight seem a great solution for the web, but i cannot comment on there performance for Win-forms as i have not the time or the knowledge to play around with them.
Although anything that add’s to design time cannot be a good thing, the drop-and-drag Win forms is slow enough without writing the UI out as pages of XML.
Xplosiv
September 22nd, 2009 at 2:57 am
I was a bit stressed when I read that you have “finished” the development of winforms Krypton. Indeed it still misses quite a few free/paid components (powerful grid, progressbar,…). But I am happy to see in your comments that you continue the development of winforms !
Speaking about the next version, I can’t wait the new “2010″ version of the ribbon but I REALLY hope we can still choose the “2007″ version of the ribbon (just a “simple” property between both ;) )
Reverting back to WPF. I tried demos from other competitors and I should admit that I’m not convinced yet (and I like nice, animating things which should correspond to wpf). The only application I know and which is really great is the Twitter client Blu. Maybe it will change with VS2010….
For silverlight it is web oriented but it also can be run as a single application… A bit strange especially when there is already WPF !
At the moment I really think winforms are still the best.
September 22nd, 2009 at 5:52 am
It’s interesting to witness the panic that some people are displaying. It’s is worth looking at Infragistics/Component One etc. release cycles as they have continued to develop windows forms, but at a far slower rate.
It’s now 4 years since Microsoft had anything to do with Windows Forms, and look what is still possible.
I’m not sure about 3rd party components at present, because VS2010 will contain the WPF toolkit that is already pretty packed and should provide 100% of what a typical LOB application would require
September 22nd, 2009 at 7:48 am
Hi ,
I would love to find the time to learn WPF, but as a Visual Basic programmer i feel left out as all the tutorials are for C#.
I don’t think the migration from VB to C# would be very difficult for me as i spend 80% of my time writting C/C++ firmware for 8,16 and 32Bit microprocessors. But i like VB as the intell-sense works alot better (from what i have seen).
I there a big shift in that microsoft would like to see everybody move over to C# or is this just me?
Anyway i absolutly love the krypton toolkit and agree there are still some components missing and to mention it again the need for more PALETTES.
“I’m not sure about 3rd party components at present, because VS2010 will contain the WPF toolkit that is already pretty packed and should provide 100% of what a typical LOB application would require”
There is always room for custom components IMO
Xplosiv
September 23rd, 2009 at 7:17 am
Xplosiv, I develop in both VB and C# interchangeably and I find C# to be more productive. VB reads more like spoken language and has some interesting features (like With blocks) but C# is more strict and gives me a better grounding in what my code is doing. As for intellisense, the only thing that I’ve seen VB do better is interpret typing with a bit more intelligence. For instance, if I type a boolean variable, =, the intellisense gives me True/False/values that might be booleans. For Enums it limits the options to that particular enum. This is nice but can be limiting as I might not want an actual enum, but a method that returns an enum. C# will figure out what you want but you need to know what you want first. I find this trade off to be valuable and prefer the C# approach.