Archive for 2008

If you’re looking for Kryptonized controls for date and time entry then take a look at VisualHint.com that have recently added KryptonPalette support. Also offered are a property grid control and other input controls that might interest you.

As many of you will already know I am going to be adding some Kryptonized date and calendar controls to the Toolkit for the next major release. I am doubtful that the Toolkit versions will have the same level of customization as the commercial version from VisualHint.

Update: Here is a link you should check out.

This maintenance release has several major bug fixes and a bonus control added to the Toolkit.

Download Link for 3.0.6

Major Bug Fixes
- Locking/Unlocking computer causes text to disappear.
- Text not drawing at all for some Visual Studio projects.
- ComboBox drop down not working on some computers.
- Cannot edit Image properties with KryptonContextMenu.
- Design time change of Ribbon.MinimizedMode crashes.
- Removing all Ribbon tabs still draws last tab shown.

Feature Changes
- KryptonDomainUpDown added to the Toolkit.
- KryptonBreadCrumb now has overflow button feature.

If you have a valid subscription to one of the commercial products the you should already have received an email notification with download details. You do not need new serial keys, existing 3.0 keys will work just fine. Also remember to uninstall your current version before installing the new one.

Is it my imagination or is Microsoft releasing technologies faster and faster than ever before? When I was a young developer using Visual C++ it seemed that you could easily know all the technologies at any one time. All you had to learn was a language, a framework and a library (C++, MFC and STL).

Fast forward to today and there would seem to be inflation in the number of product releases from Microsoft. From the release of Vista onwards we have the following client side technologies…

  WPF   WCF   WF   LINQ

Each of these covers a large area that would require many months to really understand well. In fact WPF alone is going to take you a year of full time use before you can say you’re truly proficient in it. If you want to include the server side then add the following into the mix…

  ASP.NET AJAX  
  ASP.NET MVC
  ASP.NET Dynamic Data
  ADO.NET Entity Framework
  Silverlight

I think I know why this rapid increase has happened and it’s all the fault of the .NET Framework. When I switched from developing applications with MFC/ATL to WinForms I noticed my productivity increased several fold. Maybe as much as a 5 fold increase in output once I was up to speed with using all the .NET goodness. Now you apply this same productivity increase to all the cubicles at the mothership and you have the above technology tsunami.

When I started as a Windows developer the only real distinction between us was the language that you used (C++ or VB). With the rise of the Internet the community split into server side and client side specialists. It was very hard to master both areas because of the sheer amount of knowledge needed although the better programmers could probably just about manage it.

Now I see the community is splitting again into even smaller groupings. Do you use WinForms or WPF? Do you use classic ASP.NET or the MVC Framework? Over time I expect to see this kind of fracturing into smaller and smaller groups to continue. Or at least that’s what I was expecting to happen. Maybe Microsoft has seen this trend and decided to try and reverse it. Is the use of XAML with WPF and Silverlight an attempt to unify your client and web developers back into one happy community again? Time will tell.

A worrying trend for Microsoft is that your average programmer is not even bothering to try and learn all the latest goodness. How many developers in your outfit actually use generics beyond List<T>? Generics have been around forever, at least compared to the above technologies, and still most developers are hardly using it. I heard a podcast where an interviewer for a .NET position found that only around 20% of the candidates actually used generics at all. Yikes.

Actually this is not really surprising as the majority of developers spend all day working on business applications that are going to generate revenue. When do you have the time to learn WPF/WCF/LINQ/etc when learning them is almost a full time job in itself? It is all very well for Scott Guthrie or Scott Hanselman to tell the world how great the new stuff is but real developers just don’t have the schedule to stop and learn for six months.

For me this is the biggest problem that Microsoft is facing. They have some great technologies but the challenge is how to get the bulk of developers, the average developer, to move forward and learn them. I expect the upcoming PDC2008 will release even more new tech but I wonder what they are going to do that makes it easier or more compelling for businesses to move forward and actually use them.

Did you realise that Microsoft are releasing a new operating system in just four weeks that is currently being called Windows Cloud? No, me neither. Steve Ballmer made the announcement at a conference in London on Wednesday. Luckily ‘Cloud’ is just the project name as it gets a snazzier name at release.

It seems that if you are building on .NET then they want to make it real easy to just push a button and have that application deployed into the ‘cloud’ so that it just works. Taking away the headache of finding a hosting provider, installing and configuring software such as SQL Server would certainly appeal to many. I suspect that the operating system is really just some extensions on top of Windows Server 2008. Just like Small Business Server is not really a different operating system but just Windows with some packaging for businesses placed on top.

Amazon are also extending some love to .NET developers by adding support for Windows Server and SQL Server within their EC2 (Elastic Compute Cloud) service. Currently in private beta testing this addition will help Windows developers that need to scale their web service without needing to handle all the scaling issues themselves. You pay only for the compute time used.

If we look into the future a little way we can image what Microsoft would like to achieve. They want .NET developers working on web applications to be able to sign up for a ‘cloud’ account and then just press a button within Visual Studio to have it deployed as a live system. With Microsoft, Amazon, Network Solutions and so on being providers of the actual hardware and providing a scalable system for you. Then you pay only for the amount of CPU/Disk used and need never worry about where the server is located. Add in Hyper-V and it becomes much easy for a provider to give every account their own isolated operating system that can then be moved around to different servers as needed.

Another new technology from Microsoft called Live Mesh is going to be presented at the PDC later this month and may well integrate into this story. It seems that the mothership has well and truely embraced ‘cloud computing’. But whatever you do don’t use that term with Larry Ellison from Oracle. When someone asked Larry what ‘cloud computing’ meant he said…

“The interesting thing about cloud computing is that we’ve redefined cloud computing to include everything that we already do. I can’t think of anything that isn’t cloud computing with all of these announcements. The computer industry is the only industry that is more fashion-driven than women’s fashion. Maybe I’m an idiot, but I have no idea what anyone is talking about. What is it? It’s complete gibberish. It’s insane. When is this idiocy going to stop?

We’ll make cloud computing announcements. I’m not going to fight this thing. But I don’t understand what we would do differently in the light of cloud computing other than change the wording of some of our ads. That’s my view.”

My recent blog post about the WPF adoption caused a couple a few people to ask about the future of Krypton. In particular they wanted to know if I would switch to creating WPF components or stick exclusively with WinForms. Here I hope to clarify my current roadmap.

Krypton Roadmap
The immediate future for the Krypton Toolkit is to add some date/time related controls. In particular a standalone calendar control and a standalone datetimepicker plus a calendar element that can be used inside the KryptonContextMenu. A docking system will also be added that is provided as a commerical add-on and become part of the Krypton Suite product. I expect all this to be wrapped up as version 3.5 and to be delivered at the end of the year or not long after.

Further out will be version 4.0 and include more Toolkit controls such as a progress bar, track bar and scroll bars. Included will be improvements to the docking and workspace components. The initial release of the workspace and docking windows have a minimal feature set and so this release will build on those and add extra features. For example the Workspace needs a persistence mechanism as well as a maximized mode so users can concentrate on a single cell for a period of time. The due date for this would be around 3 or 4 months after version 4.0.

Release 4.0+ is not currently determined so I am open to feedback for deciding on the direction to take. I will be asking for feedback nearer the time and decide then if I should create a data grid, gauge controls etc. Maybe at this point we will see a Beta version of the next Office and Windows revisions and so that might throw up some requests.

Longer term I expect to keep improving and adding to the Krypton set of components, including the free Toolkit, for as long as there is demand for WinForms components. I expect this to be quite a few years into the future as many companies have invested heavily in WinForm applications and have no big need to switch over to something else. As a small company I can live on the niche position of being an active WinForm developer when other vendors have had to switch away because they have large teams to pay.

WPF Roadmap
There are two factors driving my WPF strategy. First is the current slow adoption of WPF for new projects and the second is the potential redundancy of any new controls that are created. The slow uptake means there is no panic to quickly create something just because your sales have disappeared. In fact my sales have steadily improved right from the first release. This means I can take a more measured approach and watch how the market shapes up before deciding on how to structure any offering.

How long will the WPF market last should it become the de facto standard for client applications? I would estimate that 10-15 years is not unreasonable as GDI has lasted much longer than that. To get the most bang for your buck you want to create components/controls that will be valuable and useful for that entire 10-15 years. Now if you look at all the vendors that have rushed out WPF Ribbon controls you can see that the effort was of little long term value. Microsoft have stated that they are creating a WPF Ribbon that should be released by the end of this year. Now unless the Microsoft version is really bad I imagine most developers would use the Microsoft version rather than pay for one. Given WPF is now the main focus for client apps at the Microsoft it means they will doubtless add additional controls over time.

My current thinking is that I will wait until around the middle of next year before starting any serious coding of WPF components. At that point I will concentrate on components that  provide long lasting value and minimize the chances of them becoming obsolete because of Microsoft. That might sound a hard proposition but I have several ideas for initial components that I think would be very handy for developers and are unlikely to ever come from Microsoft themselves.

Summary
I will be continuing development of Krypton for as long as there is demand for the WinForms components, which I anticipate being several years. Around the middle of next year I will start spending some of my time working on WPF but note that I will still be working on Krypton as well.

Obviously any strategy is subject to change depending on market conditions but this is my current thinking. I would be interesting in hearing your feedback. If you have any better ideas or see fundamental problems with this then don’t be afraid to speak up!