Programming C# by Jesse Liberty
C# is designed from the ground up for development on Microsoft's .NET framework. As such, it's a high-performance language that's simple, safe, object-oriented, and Internet-centric. Programming C# teaches this language in a way that experienced programmers should appreciate - by grounding its applications firmly in the context of Microsoft's .NET platform and the development of desktop and Internet applications. The first part of this book introduces C# fundamentals, then goes on to explain: classes and objects; structs and interfaces; collection classes provided by the Base Class Library; creating custom collection classes; string objects; exceptions and bug handling; and event handling. Part two of the text focuses on development of desktop and Internet applications, including WinForms and ASP.NET. ASP.NET includes WebForms, for rapid development of web applications, and WebServices for creating objects without UI, to provide services over the Internet. Part three gets to the heart of the Common Language Runtime (CLR), a data typing system that is enforced throughout the platform and is common to all languages developed for .NET. The CLR is responsible for memory management, reference counting of objects, and garbage collection. In much the way that you can see the features and personality of the parents and grandparents in young children, you can easily see the influence of Java, C++, Visual Basic, and other languages in C#. The level of information in Programming C# allows programmers to become productive quickly with C# and to rely on it as a powerful addition to their family of mastered programming languages.