2. The best GUI frameworks for Windows
applications is Win forms and WPF
together with .NET Framework. The
best programming language to work
with the .NET Framework and it's APIs
is C#. Java is not an alternative for
this. And C++ is an older language
without automatic memory
management.
C# App
3. It can be used for pretty much
everything now...websites, desktop
apps, etc. Virtually everything that I
write from scratch is in C#
now...though of course, depending
on the client, they will have legacy
code that they want to maintain in
whatever language/platform it was
originally written in.
4. Things have paid to do in C#:
• Simple command line utilities. Input stuff. Convert stuff. Output stuff.
• Desktop applications. You can create a decent Forms based (or WPF based) GUI app
fairly quickly in C#.
• Windows service. GUI-less code that runs as a service that gets stuff as input,
converts stuff and outputs stuff. I've written a zillion of those, for all sorts of different
'stuff'.
• Web site code behind. I like the ASP.NET model for writing web pages. Much cleaner
than PHP or JSP, IMHO.
• Web services. Exposing a web service API using C# is straight forward. And web
services are a convenient way to communicate between different processes,
especially if they are running on different machines/operating systems.
• Data access layer. C# is a good language for providing the 'shim' between application
code and the database.
C# is a great language simply because you can use it for so many different tasks. And
you can accomplish very sophisticated tasks in a reasonably small number of lines of
code.