Applied Microsoft .NET Framework Programming (edit)

The .NET Framework Class Library

XML Web services Methods that can be accessed over the Internet very easily. XML Web services are, of course, the main thrust of Microsoft’s .NET initiative.

Web Forms HTML-based applications (Web sites). Typically, Web Forms applications will make database queries and Web service calls, combine and filter the returned information, and then present that information in a browser using a rich HTML-based user interface. Web Forms provides a Visual Basic 6 and Visual InterDev style development environment for Web applications written in any CLR language.

Windows Forms Rich Windows GUI applications. Instead of using a Web Forms page to create your application’s UI, you can use the more powerful, higher performance functionality offered by the Windows desktop. Windows Forms applications can take advantage of controls, menus, and mouse and keyboard events, and they can talk directly to the underlying operating system. Like Web Forms applications, Windows Forms applications also make database queries and call XML Web services. Windows Forms provides a Visual Basic 6Ðlike development environment for GUI applications written in any CLR language.

Windows console applications For applications with very simple UI demands, a console application provides a quick and easy way to build an application. Compilers, utilities, and tools are typically implemented as console applications.

Windows services Yes, it is possible to build service applications controllable vi a the Windows Service Control Manager (SCM) using the .NET Framework.

Component library The .NET Framework allows you to build stand-alone components (types) that can be easily incorporated into any of the previously mentioned application types.

OOP in CSharp Example

using System;
internal class Test { // Constructor public Test() { } // Destructor ~Test() { } // Operator overload public static Boolean operator ==(Test t1, Test t2) { return true; } public static Boolean operator !=(Test t1, Test t2) { return false; } // An operator overload public static Test operator +(Test t1, Test t2) { return null; } // A property public String AProperty { get { return null; } set { } } // An indexer public String this[Int32 x] { get { return null; } set { } } // An event private event EventHandler AnEvent; }

Building Types into a Module

public class App
{
    static public void Main(System.String[] args)
    {
        System.Console.WriteLine("Hi");
    }
}

Build

csc.exe /out:App.exe /t:exe App.cs
csc.exe App.cs

Reflection

using System.Reflection;

ProductName: System.Reflection.AssemblyProductAttribute
ProductVersion: System.Reflection.AssemblyInformationalVersionAttribute

FileDescription: System.Reflection.AssemblyTitleAttribute
FileVersion: System.Reflection.AssemblyVersionAttribute

System.Resources.ResourceManager
System.Reflection.AssemblyCultureAttribute

The System.Reflection.AssemblyName class is a helper class that makes it easy for you to build an assembly name and to obtain the various parts of an assembly’s name. The class offers several public instance properties, such as CultureInfo, FullName, KeyPair, Name, and Version. The class also offers a few public instance methods, such as GetPublicKey, GetPublicKeyToken, SetPublicKey, and SetPublicKeyToken

You know the Strong Name Utility, SN.exe, that ships with the .NET Framework SDK and Visual Studio .NET

You know the Global Assembly Cache Utility, GacUtil.exe