Saturday, March 05, 2011

How many ways to make a humble form by using Microsoft technologies?


More and more :) And still not enough!
Case in point: "Lightswitch"

Microsoft Visual Studio LightSwitch - The Official Site for Visual Studio LightSwitch

Silverlight is a really nice technology for making both web (plugins) based applications, as well as desktop applications. It is created to compete with Adobe Flash, but in the process become something much more: a fertile platform for,
web, windows desktop, and mobile (windows phone 7) apps.

For those who remember original Visual Basic, this is still not "good enough". Too complex. To remedy situation, here comes "Lightswitch", and new integrated environment for typical business "CRUD" applications...

Microsoft is apparently approaching market as a large and good business, think GM during its best days. Market segmentation, customizing product for specific markets and domains.

For a enterprise developer, the choice could be overwhelming.
To make a simple forms app for a few database tables,
here are some of Microsoft provided choices...

[Windows Desktop]
[ IT ]
1) Access, part of Office (pro)
2) InfoPath, part of "premium" Office
[ Dev ]
3) WinForms (C#, VB...)
4) WPF (C#, VB)
5) MFC (C++)

[Web + Windows]
[ Dev ]
6) Silverlight (C#, VB)
-- Visual Studio
-- Blend
[ IT ]
7) LightSwitch (C#, VB)

[Web]
[ Dev, select VB.net or C# language ]
8) Asp.net WebForms (C#, VB),
9) Asp.net MVC (C#, VB)
[ IT ]
10) WebMatrix
11) SharePoint

Each of the tools/platforms/frameworks gets new version every 2-3 years or sooner, and there are many more important, and typically hard to change choices, such as programming language, database access library, "view engine" library etc...

Here is a key point: there is NO WAY, at least no easy or obvious, to convert from any of mentioned choices to any other! Not to mention that there is no "generic" description of application logic.

It can be done, by making .NET based DLLs, and calling them from various "frameworks"... When data are stored in a relational database, most of mentioned tools could crate default forms and navigation for basic "CRUD" operation...

Is this a problem, an opportunity, or both?

One can start a journey in a small Chevrolet car, later switch to sporty Camaro, then to a family Buick, luxury Cadillac, or even Toyota or Ford, transfer the same luggage, use same or similar driving skills, and just continue journey...

Is it too much to expect similar from computer applications?