As you have seen, numerous programming languages exist today. Even though you can use most languages to create any computer program you want, many languages have been designed to accommodate for a more or less specific range of problems.
Currently, C# and .NET are only working on top of the Windows operating system, but they provide the programmer with powerful means to program this operating system. Consequently, this short section will revolve around Windows-related technologies. It is important to understand that C# is a multi-purpose language and can be used, within the Windows platform, to create many kinds of weird and wonderful programs.
The following is a brief list of just a few of the numerous programming categories where C# will get powerful support from .NET and make the C# programmer productive.
Console applications A console application utilizes one simple window to communicate with the user. There are no fancy graphics or animations; the communication is character based, reducing the complexity of the application, usually encountered in graphical rich applications. Even though you are not likely to find many (if any at all) modern commercial console-based applications, it is a great place to start when learning to program. It allows you to focus on the language constructs and quickly bring you the understanding needed to create more complex graphical programs.
However, programming for the console window is not restricted to novice programmers; professional programmers often use the console window to test applications and components.
Notice that even though console applications generally require the least support (of the four categories previously mentioned) from .NET, the programmer still has access to a wide array of useful components in the BCL.
Later in this chapter, I introduce you to console-based programming, which is used in many parts of the book.
Windows applications with WinForms If you have ever worked with a computer, you have probably experienced a windows-based application. In contrast to a console application, it contains a graphics-rich user interface (GUI) where commands are given with a mouse by clicking on icons and buttons and interaction is through various text and list boxes.
If you had to write a windows-based application from scratch without being able to reuse any prewritten components, you would have to add months and years to your development time, in fact you might not finish before a new and better technology arrives.
The .NET Framework class library contains a comprehensive set of components called WinForms for creating advanced windows-based applications. WinForms gives the C# programmer easy access to the underlying windows services of the Windows operating system.
ASP.NET applications ASP.NET (Active Server Pages.NET) covers an array of components that facilitate the creation of browser-based applications.
A browser is an application that allows the user to examine documents, encoded with formats such as Hypertext Markup Language (HTML), in a form suitable for display. Browsers are widely used to display information found on the Internet.
Web Services Web Services is an important new technology that promises to change the way we use the Internet and our perception of how we program and use computer applications.
Web Services are simply components or applications delivered to your computer via the Internet. Web Services residing on different computers, all linked to the Internet, can be pieced together to form new Web Services. This opens up new exciting avenues for computer programmers.
It lets the developer assemble a component or application not only by using the components from the .NET Framework class libraries and his or her own source code but also from Web Services found on the Internet.
It allows individual developers or software companies to build Web Services and make them available on the Internet perhaps by charging a fee.
C# is an exciting, feature-packed language with powerful support from the .NET platform, so let's roll our sleeves up and get ready for some real C# programming.