We are currently migrating our Visual Basic 6.0 program to .NET. The target audience are just normal desktop users at home. Discussing this, we realized that we cannot come up with mainstream programs that seem to be written in .NET. Are we mistaken? Is there a good reason for this?
|
|
Depending on the definition of "main stream programs", there don't seem to be many of them to be written in VB6 either. Of course, C# and VB.NET now has taken almost the place where VB6 was ~10 years ago. At least 98% is individual software you cannot buy in your local software store. But that does not mean there are no .NET programs out there. There are a lot - but you will have to search for them at the right places. |
|||
|
|
|
Your customer don't care if your program is written in .NET or not. Therefore, if you can ensure that the vast majority of your target audience can install and run your software without problems, you are good. It's very difficult to find accurate information about .NET Framework penetration, so you shouldn't rely on any. Why not targeting .NET Client Profile and ensure that it is installed along with your binaries? It's easy, simple and effective.
I see another big advantage of porting your VB6 code to .NET: the ability to create version of your software that runs on Linux and OSX using Mono. Notable example of desktop applications written in .NET and cross platforms are available here. |
|||||||||||||
|
|
Decide if there are features your market wants that you can only or more easily create in .NET. Consider that hiring new developers is another market to consider. You may or may not find more VB.NET devs that are suitable to your needs (level of experience, knowledge of domain, etc.). Do your current developers really want to make the switch? I don't know about the home user market, but the business market is pretty heavy in .net apps. |
|||
|
|
|
Actually, according to TIOBE, C# (a .NET language) is now the fourth most popular language in the world. Also, I agree with another poster that clients do not care what language your app is written in, as long as it works. |
|||||||||||||||
|
|
There is a nice overview here: http://www.lextrait.com/Vincent/implementations.html which shows which programming languages are used to write some popular software. |
|||||
|
|
My personal experience is that .NET is dominant in in-house, enterprise-level development. Most of these applications are not build for public consumption and so are not a part of our everyday vocabulary. Still, there is a very compelling reason that so many large companies have adopted these technologies: programmer productivity and happiness. C# is a wonderful, productive programming language and the .NET ecosystem is rich with existing libraries to keep us having having to reinvent wheels. Also, WCF, while astoundingly complicated at times, is a very powerful framework for building communications between different systems. In regard to your specific circumstance, I would only undertake the porting of your application if you will be doing lots of enhancements and changes to it in the future. If it is stable and in maintenance mode, you will regret any decision besides leaving it as-is. |
|||
|
|
I'm pretty sure the ATI Catalyst graphics card control panel is written in .NET - so that's basically every PC which has an ATI graphics card. Big numbers of normal desktop users... Another good example is Samsung Kies - which most people who have Samsung phones have installed.. |
||||
|
|
|
VB6 is no longer supported by MS any more (ref: http://blogs.technet.com/b/lifecycle/archive/2008/04/16/end-of-support-for-visual-basic-6-0.aspx). So if you have issues from a development standpoint, you will not get support from the source. VB.NET, on the other hand, is still actively developed and supported. The similarity between the .NET Framework and the Java JRE as well as the similarities between C# and Java itself has grown the C#/.NET developer community extremely quickly. The supply of VB6 developers is going to dwindle while the VB.NET/C# ones are likely to increase and can keep your product moving forward. |
|||
|
|
|
I suppose it doesn't matter - what might matter more is what will the majority of programs be written in, in the future. Now MS are focussing on Win8 apps, you'd possibly be better off worrying about the adoption of HTML5+js and WinRT rather than legacy .NET. Last thing you want to do is port everything to .NET and then have to do a lot more rework to make it work well with Windows 8. |
|||||
|
