Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
C# essentials
Merrill B., Drayton P., Albahari B., O’Reilly & Associates, Inc., Sebastopol, CA, 2002. 216 pp. Type: Book (9780596003159)
Date Reviewed: Jul 8 2002

This is a very dense and concise book about C#, Microsoft’s new programming language of choice for its vision of the future of the Internet and the future of distributed systems development. The authors don’t make any apologies about cramming a lot of information about the C# language, the framework class libraries (FCL), and the common language framework into a short book. The book will be a useful introduction for professionals who are already familiar with C++ or Java (preferably both), and should be able to bring them up to speed with C# very quickly. The book has only five chapters and six useful appendices. The sizes of the chapters vary from three pages to more than 70.

Chapter 1 is a short introduction to the C# language, the common language framework, and the FCL. It also illustrates a first C# program and explains some basic and unique concepts of the environment and the framework.

Chapter 2 is a detailed reference for the C# language, with meaningful examples. It explains the syntax of the language and language constructs such as identifiers, types and the unified type system, variables, expressions, operations, statements, namespaces, inheritance, polymorphism, classes, structs, methods, interfaces, documentation, and other necessary concepts. This is the longest chapter in the book, and readily covers all aspects of the C# language.

Chapter 3 is about programming in the .NET framework. It goes into the details of how to use the FCL and common language runtime (CLR). It starts from the class object and common interfaces, and explains math functions, strings, regular expressions, collections, input-output, networking, threading, assemblies, packaging, deployment, versioning, security, reflection, custom attributes, memory management, inter-language operation, marshalling, and other important aspects of the .NET framework. This chapter is quite long, and contains examples in addition to information.

Chapter 4 is a rather short overview of the FCL, and its purpose is to allow the reader to quickly identify which required function is likely to be in which part of the library. Important categories are given one-paragraph explanations with references to the previous two chapters, which contain examples related to the classes included in the library. Considering that anyone who intends to deal with the FCL at any detailed level would require access to a number of thick reference manuals, or extensive online documentation, I found this chapter adequate as an introduction and a quick locator. Chapter 5 is the shortest chapter in the book. It mentions the tools that are available with the .NET framework. Each tool is named and explained in three or four lines.

In addition to these chapters, which total about 160 pages, the book also has six appendices of helpful reference material. Appendix A lists the C# keywords, and Appendix B details the regular expression grammar and syntax. Appendix C lists format specifiers, while Appendix D explains the marshalling procedure. Appendix E explains a ssemblies, and Appendix F talks about namespace-assembly relationships. The book also has a 12-page index, which adequately covers the content.

This book addresses enhancements to the C# language and the .NET framework. Perhaps another edition will be due when .NET evolves into its more mature form.

I have no hesitation in recommending this book to any experienced programmer who would like to learn about C#. This book would make a great first C# book or a handy book to keep around while you are familiarizing yourself with the language and the environment. One of the highlights of the book is its discussion of reflection, which was built into the framework right from the start, unlike the case with many other popular languages and frameworks. Although a two-edged sword, this may be an eye-opener for programmers without much background in reflection. The book contains many other short explanations on topics that have often been expanded into their own books. None of these sections of the book will provide sufficient information to learn these subjects if you don’t already have the relevant background.

My opinion of the C# language is not that high, although it is higher than my opinion of Java, and much higher than my opinion of C++. I see C# as an interim measure, aimed at snatching experienced C++ and Java programmers to program for the .NET framework. To fully exploit this new Microsoft architecture would require better languages, more suited toward developing new systems from scratch, not a language that takes its strengths from a powerful runtime library, but carries a lot of the legacy and syntax of C. It is unfortunate that many future systems will probably be coded using the same terse syntax elements and keywords that were popularized by C, and which are now there purely for historical reasons.

Other efforts to applaud in this area are Eiffel and SmallScript. Still, I see a need to have other dialects of Smalltalk and languages such as Self, which have the purity of a clean object-oriented approach, to support the .NET architecture.

Reviewer:  Tansel Ersavas Review #: CR126246 (0209-0487)
Bookmark and Share
 
C# (D.3.2 ... )
 
Would you recommend this review?
yes
no
Other reviews under "C#": Date
Programming C#
Liberty J., O’Reilly & Associates, Inc., Sebastopol, CA, 2001.  680, Type: Book (9780596001179)
Jun 12 2002
C# primer: a practical approach
Lippman S., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2002.  394, Type: Book (9780201729559)
Jun 5 2002
Guide to C# and object orientation
Hunt J., Springer-Verlag New York, Inc., Secaucus, NJ, 2002.  400, Type: Book (9781852335816)
Mar 27 2003
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy