C# can also be used to create console applications, text-only applications that run in a DOS window. You will probably use console applications when unit testing class libraries, and for creating UNIX or Linux daemon processes. More often, however, you will use C# to create applications that use many of the technologies associated with .NET. This section gives you an overview of the different types of applications that you can write in C#.
Creating ASP. NET Applications
However, ASP is not without its shortcomings. First, ASP pages sometimes render slowly because the server-side code is interpreted instead of compiled. Second, ASP files can be difficult to maintain because they are unstructured; the server-side ASP code and plain HTML are all jumbled up together. Third, ASP sometimes makes development difficult because there is little support for error handling and type checking. Specifically, if you are using VB Script and want to implement error handling in your pages, you must use the On Error Resume Next statement, and follow every component call with Error .Nor to make sure that the call has gone well.
ASP.NET is a complete revision of ASP that fixes many of its problems. It does not replace ASP, rather, ASP.NET pages can live side by side on the same server with legacy ASP applications. Of course, you can also program ASP.NET with C#.
Features of ASP. NET
First, and perhaps most important, ASP.NET pages are structured. That is, each page is effectively a class to inherits from the .NET System web UI. Page class and can override a set of methods that are evoked during the Page object’s lifetime. (You can think of these events as page-specific cousins of the Application-Start and OnSession_Start events that went in the global. asa files of plain old
. Because you can factor a page’s functionality into event handlers with explicit meanings, ASP.NET ages are easier to understand.
Another nice thing about ASP.NET pages is that you can create them in Visual Studio 2008, the same environment in which you create the business logic and data access components that those ASP.NET pages use. A Visual Studio 2008 project, or solution, contains all of the files associated with an application. Moreover, you can debug your classic ASP pages in the editor as well; in the old days of Visual InterDev, ‘as often a vexing challenge to configure InterDev and the project’s Web server to turn debugging on.
For maximum clarity, the ASP.NET code-behind feature lets you take the structured approach even , ASP.NET allows you to isolate the server-side functionality of a page to a class, compile that class
a DLL, and place that DLL into a directory below the HTML portion. A code-behind directive at top of the page associates the file with its DLL. When a browser requests the page, tile Web server
the events in the class in the page’s code-behind DLL.
Last, but not least, ASP.NET is remarkable for its increased performance. Whereas classic ASP pages are interpreted with each page request, the Web server caches ASP.NET pages after compilation. This means that subsequent requests of an ASP.NET page execute more quickly than the first.
ASP.NET also makes it easy to write pages that cause forms to be displayed by the browser, which you might use in an intranet environment. The traditional wisdom is that form-based applications offer a richer user interface but are harder to maintain because they run on so many different machines. For this reason, people have relied on form-based applications when rich user interfaces were a necessity and extensive support could be provided to the users.
To make Webpage construction even easier, Visual Studio 2008 supplies Web Forms. They allow you to build ASP.NET pages graphically in the same way that Visual Basic6 or C++ Builder windows are created; in other words, by dragging controls from a toolbox onto a form, then flipping over to the code . aspect of that form and writing event handlers for the controls. When you use C# to create a Web Form, you are creating a C# class that inherits from the Page base class and an ASP.NET page that designates that class as its code behind. Of course, you do not have to use ~# to create a Web Form; you can use Visual Basic2008 or another .NET-compliant language just as well.
Web Server Controls
The controls used to populate a Web Form are not controls in the same sense as ActiveX controls. Rather, they are XML tags in the ASP.NET namespace that the Web browser dynamically transforms into HTML and client-side script when a page is requested. Amazingly, the Web server is able to render the same server-side control in different ways, producing a transformation appropriate to the request are particular Web browser. This means that it is now easy to write fairly sophisticated user interfaces for Web pages, without worrying about how to ensure that your page will run on any of the available browsers – because Weo Forms will take care of that for you.
You can use C# or Visual Basic 2008 to expand the Web Form toolbox. Creating a new server-side control is simply a matter of implementing .NET’s System. Web.ur. WebControls. WebControl .class
XML Web Services
Today,HTML pages account for most of the traffic on the World Wide Web. With XML,however, computers have a device-independent format to use for communicating with each other on the Web. In the future, computers may use the Web and XML to communicate information rather than dedicated lines and proprietary formats such CJS Electronic Data Interchange (EDI).XML Web services are designed for a service-oriented Web, in which remote computers provide each other with “dynamic information that can be analyzed and reformatted, before final presentation to a user. An XML Web service is an easy way for a computer to expose reformation to other computers on the Web in the form of XML.
In technical terms, an XML Web service on .NET is an ASP.NET page that returns XML instead of HTML to requesting clients. Such pages have a code-behind DLL containing a class that derives from the Web Service class. The Visual Studio 2008 IDE provides an engine that facilitates Web service . development.
An organization might choose to use XML, Web services for two main reasons. The first reason is that they rely on HTTP; XML Web services can use existing networks (HTTP) as a medium for conveying information. The other is that because XML Web services use XML,the data format is self-describing, non-proprietary, and platform-independent.
Creating Windows Forms
Although C# and .NET are particularly suited to Web development, they still offer splendid support for so-called fat-client or thick-client apps – applications that· must be installed on the end user’s machine where most of the processing takes place. This support is from Windows Forms.
A Windows Form is the .NET answer to a Visual Basic 6 Form. To design a graphical window interface, you just drag controls from a toolbox onto a Windows Form. To determine the window’s behavior, you write event-handling routines for the form’s controls. A Windows Form project compiles to an executable that must be installed alongside the .NET runtime on the end user’s computer.
Using the Windows Presentation Foundation (WPF)
One of the newest technologies to hit the block is the Windows Presentation Foundation (WPF). WPF makes use of XAML in building applications. XAML stands for Extensible Application Markup Language. This new way of creating applications within a Microsoft environment is something that was introduced in 2006 and is part of the .NET Framework 3.0 and 3.5. This means that to run any WPF application, you need to make sure that the .NET Framework 3.0 or 3.5 is installed on the client machine. WPF applications are available for Windows Vista, Wmdows XP,’Windows Server 2003, and Windows Server 2008 (the only operating systems that allow for the installation of the .NET Framework 3.0 or 3.5).
XAML is the XML declaration that is used to create a form that represents all the visual aspects and behaviors of tile WPF application. Though it is possible towork with a WPF application
programmatically, WPF is a step in the direction of declarative programming, which the industry is moving to. Declarative programming means that instead of creating objects through programming in ‘” compiled language such as C#, VB, or Java, you declare everything through XML-type programming.
Although Web Forms and Windows Forms are developed in much the same way, you use different kinds of controls to populate them. Web Forms use Web server controls, and Windows Forms use Windows Controls.
A Windows Control is a lot like an ActiveX control. After a Windows Control is implemented, it compiles to a DLL that must be installed on the client’s machine. In fact, the .NET SDK provides a utility that
creates a wrapper for ActiveX controls, so that they can be placed on Windows Forms. As is the case with Controls, Windows Control creation involves deriving from a particular class, Syst. Windows _Forms. Control.
Windows Service (originally called an NT Service) is a program designed to run in the background in rows NT /2CXXJ/XP /2003/Vista (but not Windows 98). Services are useful when you want a program to running continuously and ready to respond to events without having been explicitly started by the user. example is the World Wide Web Service on Web servers, which listens for Web requests from clients.
Very easy to write services in C#..NET Framework base classes are available in the System service Process namespace that handles many of the boilerplate tasks associated with services. In. ‘on, VISual Studio .NET allows you to create a C# Wmdows Service project, which uses C# source code for a basic’Wlndows Service. Chapter 23, “Windows Services,” explores how to write C# Windows Services.
Windows Communlcatlon Foundatlon (WCF)
Looking at how you store data and services from one point to another using Microsoft based technologies, you will find that there are a lot of choices at your disposal. For instance, you can use ASP.NET Web services, .NETRemoting. Enterprise Services, and MSMQ for starters. that technology should you use? Well, it really comes down to what you are trying to achieve, because each technology is better used in particular situation.
With that in mind, Microsoft brought all of these technologies together, and with the release of the .NET Framework 3;0 as well as its inclusion in the .NET Framework 3.5, you now have a single way to move data – the Wind OJDS Communication Foundation (WCF).WCFprovides you with the ability to build your service one ‘tim~and then expose this service in a multitude of (under different protocols even) by just making changes within a configuration file. Youwill find that WCFis a powerful new way of connecting disparate systems.