I have been curious to know what is the purpose of having a console window in .Net? I have not seen applications that are console window based. Is there such a thing as a console based application?
Actually people mostly use Console Applications for samples and trainings. But there should be some conditions where Console applications are really needed.
Command-line programs can be hooked together like scripts to do interesting things using the |, <, and > operators.
Yes, the C# compiler itself is a prime example, csc.exe.
While overall trend on Windows is to build GUI based apps, there are a lot command line tools out there, especially in the world of development (Compilers, Unit Testing Tools, Code Coverage Tools, Code Analysis Tools, etc).
Typically you won't see command line applications built for non technical users.
The advantage of simple command line tools is that they can be mixed and matched in ways that the original authors may have never anticipated so long as they understand a common medium of exchange, usually plain text. The *nix world has thrived on this principal, but as I mentioned above, this is partly due to the fact that until only in the last few years or so, usually only technical inclined people used those operating systems and were comfortable using command line tools.
GUI applications tend to be much more rigid in design, you're usually limited to only the functionality the author of the application anticipated. The flip side is they tend to be easier to understand and use intuitively.
Personally, at work I use small console-based applications in conjunction with Cygwin and shell scripts for better automation of the processes that those small tools need to perform. Like Joe Chung, I use pipes and redirection a lot, for example to save log files. Cygwin(/Linux) is much better at that sort of thing than Windows.
In Visual Studio, I sometimes use the console for "old-school" style debugging, like watching the flow of events when I do things in a Form. It can also be handy to watch when threads begin and end.
Consoles are great for outputting debug messages. I work on a GUI app that, for developers, outputs a lot of stuff to the console but for "real users" doesn't give them all the debugging info.
The entire .NET SDK is console based. Visual Studio is just value add ontop of it.
I think its most important to remember that console applications dont mean 'command line applications', they really are applications which have an interface that is based on stream I/O -
Console applications are very easy to interact with programatically since their interface is relatively simple.
Also, no windowed UI - means you can avoid alot more interaction with unmanged code.
So - there is certainly plenty of room for console apps in .NET