So what can C# do?
I get this question over and over. I wanted to see what is your take on this? So what can C# really do for you?
Know the answer? Post it — somebody with the same question will find it here.
Sign in to answer this question
It is the same account you read, post and publish with — and you will come straight back to this page.
Sam HobbsPosted Aug 1, 2011, 2:09 AM
Mahesh ChandPosted Aug 1, 2011, 12:47 AM
C# can do:
- build Windows client applications (Windows Forms, WPF)
- build custom controls
- build Web applications (ASP.NET, Silverlight)
- build Web services (WCF)
- build Windows Services (Windows Forms)
C# can't do:- build device drivers
EtcSam HobbsPosted Jul 30, 2011, 10:48 PM
I am still learning but there are some things that seem to be missing. One big one I think is that it seems difficult to execute managed code within a client browser window. So one symptom of that is that ASP programs usually use JavaScript to do something in the client. Another symptom is that an Internet Explorer context menu item (as described in Creating Add-ons for Internet Explorer: Customizing Menus) cannot be developed in managed code.
Anything that needs a regular DLL cannot be done using manged code; manged code is incapable of existing as a regular DLL. A regular DLL can use managed code, but it must start out as unmanaged. I think the primary limitation is the Windows loader lock problem (as described in LoaderLock) that prevents any DLL's dllmain from doing anything that would load another DLL. So I assume it is not possible to write a system-wide hook handler (such as what SetWindowsHookEx installs) using managed code. I also assume that it is not possible to inject a DLL into another process using CreateRemoteThread since that is something else that requires a regular DLL.
I think that for most developers, the fact that C# cannot execute client-side (like JavaScript and like Java normally does) is the most significant limitation.
VulpesPosted Jul 30, 2011, 6:08 PM
Other than that the sky's the limit. It's even possible to write an operating system in C# - see http://en.wikipedia.org/wiki/Cosmos_(operating_system).