Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question

closed as primarily opinion-based by gnat, Bart van Ingen Schenau, amon, MichaelT, Jim G. May 5 at 3:18

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

6  
I think Visual Studio and Paint.NET are two mainstream programs that are written in .NET. –  Jonas Nov 11 '11 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 '11 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 '11 at 1:13

8 Answers 8

up vote 2 down vote accepted

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.

share|improve this answer

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.

share|improve this answer
    
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 '12 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 '12 at 9:03

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

share|improve this answer
    
Please explain the downvote? –  MattDavey Sep 18 '12 at 8:57

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.

share|improve this answer

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.

share|improve this answer
    
+1 for "C# is wonderful". Its really a wonderful language –  AnimalsAreNotOursToEat Oct 10 '13 at 14:48

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.

share|improve this answer
3  
I think the number of tags on StackOverflow is more representative than TIOBE search ranking. –  Jonas Nov 11 '11 at 14:28
3  
Nah, that's just because C coders are Real Programmers, and Real Programmers don't ask for help. –  Gustav Bertram Nov 11 '11 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. –  Adam Crossland Nov 11 '11 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 '11 at 1:09

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.

share|improve this answer
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 '11 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. –  BlueRaja - Danny Pflughoeft Nov 11 '11 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 '11 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 '11 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 '11 at 9:43

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.

share|improve this answer

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