skip to main content
Skip header Section
Programming C#May 2003
Publisher:
  • O'Reilly & Associates, Inc.
  • 103A Morris St. Sebastopol, CA
  • United States
ISBN:978-0-596-00489-7
Published:01 May 2003
Pages:
710
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

From the Publisher:

C# was 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#, 2nd Edition teaches this new language in a way that experienced programmers will 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 Inheritance and polymorphism Operator overloading Structs and interfaces Arrays, indexers, and collections String objects and regular expressions Exceptions and bug handling Delegates and events Part two of Programming C#, 2nd Edition focuses on development of desktop and Internet applications, including Windows Forms, ADO.NET and ASP.NET. ASP.NET includes Web Forms, for rapid development of web applications, and Web Services for creating objects without user interfaces, to provide services over the Internet. Part three gets to the heart of the .NET Framework, focusing on attributes and reflection, remoting, threads and synchronization, and streams. Part three also illustrates how to interoperate with COM objects. 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#, 2nd Edition allows you to become productive quickly with C# and to rely on it as a powerful addition to your family of mastered programming languages.

Contributors

Recommendations

Reviews

William A Fahle

I have never understood the purpose of books like this on programming languages, and the authors offer little help in this area. Their claim is that it will serve both the experienced programmer trying to learn the language, and someone new to programming who can read it cover-to-cover. The problem is that it really can't. The condescending tone of the first few chapters, which detail all of the basics that we've seen in at least three other languages before, is enough to put the experienced programmer off of the rest of the book, even though he or she is only supposed to skim it. The beginner, on the other hand, will be lost after the first three chapters without some foundation in programming techniques, which is not offered here. For the experienced programmer, far more helpful than the beginning chapters would be a small chapter, perhaps an appendix, listing the differences between .NET the C, C++, and the Java family of languages. The authors do helpfully mark the in-line sections that show a few of these differences with a special symbol; another is used to mark warnings. All of these are then indexed together in the back for somewhat easy reference. The book is actually split into three parts. The first covers the language, the second covers writing C# programs for various application domains, and the third covers working within the .NET framework with assemblies, reflection, and so on. The first part is, in my view, the weakest. In addition to the problems mentioned above, there are places where confusing terminology is used, and there are also outright errors, such as a document error message appearing in the middle of a sentence on page 64. The C# language itself is really a big improvement over Java in many respects; some key features of C++ that are missing from Java have returned, such as enumerated types (structs are even back from C), but so have some annoying ones, such as preprocessor directives. Some new features, like properties, and constraints, like overrides, are also welcome additions. In the second section, many practical examples and real-world problem domains-Web forms, Active Server Pages .NET (ASP .NET)-based dynamic Web pages, and ADO .NET database communications-are discussed. In both this section and the next, much space is devoted to application programming interface (API) references for the .NET framework. This is helpful, but not really in keeping with the title of the book. However, C# is, lets face it, a .NET-specific language, and so learning these details, along with the .NET Visual Studio integrated development environment, is a necessity for programming in C#. This section is very good, and information about the details of many useful classes is provided. The professional programmer who does not know the .NET framework will benefit here. Section 3 addresses a lot of the housekeeping that goes along with creating a professional project. This would be of little use to a student, but a working professional will learn a lot about the use of assemblies, reflection, third party software, serialization, and some of the details about component object model (COM), simple object access protocol (SOAP), threading, and so on. The book also includes a useful appendix, which serves as a sort of glossary of C# keywords. Following that is a large index, which unfortunately falls down when it comes to the C# language itself. Many of the keywords in the index refer simply to the appendix definition, and not to the part of the text that discusses that keyword in context. For example, the entry for "do" refers to the "do" in the keyword appendix, but the entry for "do...while" refers to the actual language construct, and is unfortunately separated from the "do" entry by a new column. Also, the beginning of the index before "a" is ordered lexically by certain symbols, such as "//," but then the triple slash, which also has special meaning, appears way back under "t," for "triple-slash." As a language reference, the index is hard to use, but for virtually anything else it is quite complete. If one's goal is to learn .NET and its associated technologies, the latter parts of this book seem quite adequate, but there has got to be a better language reference out there somewhere. At 682 pages, surely the professional can save some time with a couple of CodeNotes books [1,2]. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.