I have a very shallow idea of .NET and C#/C++.NET. I've used it a few times to create some simple, stand-alone apps. From my simplistic viewpoint, I look at it as another "framework", eg. layer, on top of the OS that can be used to write apps for. Can someone shed some more light on what its limitations are and when it is most useful?
In terms of limitations, can you, for example, write a..
- keylogger (requires hook?)
- MIDI keyboard input transcriber (eg. takes MIDI keyboard input and transcribes it into sheet music - requires interfacing with the MIDI device driver?)
- a bot for a FPS (bunch of complicated stuff, I imagine)
- a plugin for an audio player (eg. Winamp. The API is probably in C++)
- a video player (eg. Windows Media Player)
using just .NET and C# (or C++.NET, if necessary)? Even if it were technically possible, would there be any advantages to using .NET over Win32 API?
In terms of usefulness, when is .NET most useful? I realize that .NET can be OS-independent, has a bunch of classes (so that you don't have to re-invent the wheel), can be used in mobile development, etc, but as far as writing apps for Windows goes, what you can do with .NET is just a subset of what you can do with Win32 API. Is using .NET mostly about convenience, ease, more abstraction and such then?