Getting Started with C#, Part 1

Find out how to write your first C# program in this book excerpt from Learning C#. This is the first of two excerpts on getting started with C#.

You can use C# to create three different types of programs:

Web applications

Windows applications

Console applications

The .NET platform is web-centric. The C# language was developed to allow .NET programmers to create very large,
powerful, high-quality web applications quickly and easily. The .NET technology for creating web applications is
called ASP.NET.

ASP.NET, the next generation from ASP (Active Server Pages), is composed of two Microsoft development technologies:
Web Forms and Web Services. While the development of fully realized web applications using these technologies is beyond
the scope of this book, learning the basics of the C# language will certainly get you started in the right direction.
C# is generally acknowledged to be the language of choice for ASP.NET development.

Typically, you'll create an ASP.NET application when you want your program to be available to end users on any
platform (e.g., Windows, Mac, Unix). By serving your application over the Web, end users can access your program
with any browser.

When you want the richness and power of a native application running directly on the Windows platform, alternatively
you might create a desktop-bound Windows application. The .NET tools for building Windows applications are called Windows
Forms; a detailed analysis of this technology is also beyond the scope of this book.

However, if you don't need a Graphical User Interface (GUI) and just want to write a simple application that talks
to a console window (i.e., what we used to call a DOS box), you might consider creating a console application. This book
makes extensive use of console applications to illustrate the basics of the C# language.

Web, Windows, and console applications are described and illustrated in the following pages.

Console applications are very helpful when learning a language because they strip away
the distraction of the Graphical User Interface. Rather than spending your time creating complex windowing applications,
you can focus on the details of the language constructs, such as how you create classes and methods, how you branch
based on runtime conditions, and how you loop. All these topics will be covered in detail in coming chapters.

Windows applications

A Windows application runs on a PC's desktop. You are already familiar with Windows applications such as Microsoft
Word or Excel. Windows applications are much more complex than console applications and can take advantage of the full
suite of menus, controls, and other widgets you've come to expect in a modern desktop application.
Figure 2-2 shows the output of a simple windows application.

Figure 2-2.A Windows application

ASP.NET applications

An ASP.NET application runs on a web server and delivers its functionality through a browser, typically over the Web.
ASP.NET technology facilitates developing web applications quickly and easily. Figure 2-3 shows
a message from a simple ASP.NET application.

Figure 2-3.An ASP.NET application

Although most commercial applications will be either Windows or ASP.NET programs, console applications have a
tremendous advantage in a C# primer. Windows and ASP.NET applications bring a lot more overhead; there is great
complexity in managing the window and all the events associated with the window. (Events are covered in Chapter 19.)
Console applications keep things simple--allowing you to focus on the features of the language.

TIP: This book does not go into all the myriad details of building robust Windows and ASP.NET applications.
For complete coverage of these topics, please see Programming ASP.NET
and Programming .NET Windows Applications, both by Jesse Liberty and Dan Hurwitz (O'Reilly).