11

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?

3
  • 6
    I think Visual Studio and Paint.NET are two mainstream programs that are written in .NET.
    – Jonas
    Nov 11, 2011 at 13:53
  • 1
    Can you add code to your current product that reports back what .NET libraries the current users have?
    – user1249
    Nov 11, 2011 at 14:02
  • @ThorbjørnRavnAndersen: yes, you can - Richard Grimes did just that when Vista came out, so you can use his techniques to see what binaries are built with the CLR loader for the apps you have installed. grimes.demon.co.uk/dotnet/vistaAndDotnet.htm (download at the bottom)
    – gbjbaanb
    Nov 12, 2011 at 1:13

8 Answers 8

3

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.

18

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.

The .NET Framework 4 Client Profile is a subset of the .NET Framework 4 that is optimized for client applications. It provides functionality for most client applications, including Windows Presentation Foundation (WPF), Windows Forms, Windows Communication Foundation (WCF), and ClickOnce features. This enables faster deployment and a smaller install package for applications that target the .NET Framework 4 Client Profile.

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.

5
  • 11
    right on the important point: customers don't care about the platform as long as it runs on their systems. but not-so-right on the final paragraph: mono does work and is an impressive achievement; but it's a nightmare to have installed on end users. the 'crossplatform' promise of .NET is dead on water.
    – Javier
    Nov 11, 2011 at 13:58
  • @Javier: Well, except for Windows, Windows Phone, and XBox 360. But the appeal of a bytecode-language dominating Windows was never, for me, cross-platform code; rather, it's that Windows is no longer tied to a particular architecture (x86 is a mess). The next version of Windows will also run on ARM. Also, it's nice that software can now take advantage of setup-specific features; basically, it's all the advantages of the Linux approach (compiling software on every new system), without any of the hassle. Nov 11, 2011 at 17:31
  • @BlueRaja-DannyPflughoeft: right, .net (CLR, really) does deliver as a "cross-windows-platforms" platform. Nothing to sneeze to, in fact
    – Javier
    Nov 11, 2011 at 18:39
  • @BlueRaja: you forget that the stuff that was shown running on ARM was.. Microsoft's C++ code. Things like printer drivers and Office. They aren't .NET applications, so the argument that .NET is necessary is completely false.
    – gbjbaanb
    Nov 12, 2011 at 1:07
  • @Javier: Is mono that bad at the installation? I installed a mono app (Banshee) on my Mac OSx and did not encounter any problem. For windows, mono is not required to be installed. As a developer planning to do mono app, I would be really happy if you could provide me with articles or any reference that demonstrate what your say.
    – user2567
    Nov 12, 2011 at 9:43
8

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.

1
  • 2
    +1 for "C# is wonderful". Its really a wonderful language
    – shashwat
    Oct 10, 2013 at 14:48
2

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.

4
  • 3
    I think the number of tags on StackOverflow is more representative than TIOBE search ranking.
    – Jonas
    Nov 11, 2011 at 14:28
  • 4
    Nah, that's just because C coders are Real Programmers, and Real Programmers don't ask for help. Nov 11, 2011 at 14:32
  • 2
    Reading goat entrails is probably more accurate than TIOBE. By the way, I in no way advocate the sue of goat entrails for anything other than processing substances eaten by a goat. Nov 11, 2011 at 15:23
  • @Gustav: yes, the number of tags on C# on SO just shows that it is a difficult language that more people need help with :)
    – gbjbaanb
    Nov 12, 2011 at 1:09
1

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.

0

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.

0

we cannot come up with main stream programs that seem to be written in .Net.

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..

1
  • Please explain the downvote?
    – MattDavey
    Sep 18, 2012 at 8:57
-1

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.

2
  • ha! the truth hurts :) WinPhone8 actually shows this to be the case though, no more XNA, if you want fancy 3d graphics, you need the native SDK.
    – gbjbaanb
    Sep 17, 2012 at 17:43
  • I don't see the correlation between XNA support on WinPhone 8 and .NET Framework support on Windows 8? (btw I wasn't the one that downvoted you, but calling .NET 'legacy' was kinda asking for it)
    – MattDavey
    Sep 18, 2012 at 9:03

Not the answer you're looking for? Browse other questions tagged or ask your own question.