OReilly MediaSafari Books Online
Search

Table of Contents
Browse by Category
 
 
Hide Left Column
C# in a Nutshell
BOOK: C# in a Nutshell
by Ben Albahari, Peter Drayton, Ted Neward

Publisher: O'Reilly
Pub Date: March 2002
More recent edition of this book available.
ISBN: 0-596-00181-9
Pages: 856
Slots: 1.0
Start Reading
Overview

C# in a Nutshell aims to become the de-facto standard for this young programming language. A reference to be used daily, this book also includes essential background information to become productive quickly. Not a "how-to" book or a rehash of Microsoft's documentation, this book goes to the source of the language and APIs to present content in a way that professional programmers will value above all other books.

 
Editorial Reviews
Amazon.com
C# in a Nutshell was inevitable, much like the dawn or your liability for income tax. As the C# language has gathered speed--it's one of the languages that Microsoft encourages you to use for .NET development--its users have anticipated the release of an authoritative reference for the language and its key APIs. That's what this book is: a reference, meant to give you a few chapters on basic structure and syntax before launching into categorized and alphabetized listings of classes and their members. It's sufficiently well written and organized that, given experience with other distributed application environments and some knowledge of .NET, you could learn the language from this book alone. However, this is not a tutorial for people new to Microsoft programming, or new to network computing.

The syntax guide is clear and concise, with brief statements of what operators, data structures, and syntax elements are for. There also are examples (both generic and with illustrative data) in this section. The API reference is organized by namespace (System, System.Collections, System.Reflection, System.Xml, and so on), with each section containing an alphabetical list of members. Each listing includes syntax guides to the element's constructors, methods, and properties, as well as a hierarchy statement and lists of other classes from which instances of the current member is returned and to which it is passed. Don't look for examples in the API reference, but the author's prose statements of what classes are for should help you along the way to a working application. --David Wall

Topics covered: The key System namespaces of the C# programming language and their most important members, covered in API reference format. Sections deal with (among others) System, System.Collections, System.Net, System.Net.Sockets, System.Runtime.Interopservices, and System.Xml. There's also a syntax guide and references to regular expressions and data marshaling in the C# language.

Book Description
C# in a Nutshell provides everything programmers need to know about the C# language in one concise and accessible volume. Designed as a primary reference for daily use, it also includes all the essential background information to become productive quickly. Not a "how-to" book or a rehash of Microsoft's documentation, this book goes to the source of the C# language and the APIs of the .NET Framework to present the content in a way that professional programmers will value above all other books.

Brief introductions to the language and .NET runtime provide the needed preparation for programming with the C# language, whose keywords and syntax are then detailed in subsequent chapters. Next, C# in a Nutshell presents key namespaces and types of the .NET Framework base class library which provides much of the functionality and power of the language. Using C# examples, the .NET Framework covers each core area, including:

  • Strings
  • Collections
  • XML
  • Networking
  • Input/Output
  • Serialization
  • Assemblies
  • Reflection
  • Custom Attributes
  • Memory Management
  • Threading
  • Integrating with Native DLLs
  • Integrating with COM Components
  • Diagnostics

Determined to provide even more value, C# in a Nutshell moves into a comprehensive language reference, plus syntax, XML documentation tags, naming and coding conventions, and the various C# development tools--the kind of reference material programmers will use every day.

Next, an extensive and quick reference to the API is presented, featuring the System namespace. Particularly useful are the many figures and tables that present the main features of the namespace. For those looking create alternatives to Microsoft's implementation of the C# Programming Language and the Common Language Infrastructure as submitted to ECMA (an international standards organization), each element included in the ECMA submission is clearly labeled. Finally, the entire reference is based on Version 1 of the .NET Framework and generated by tools written in the C# language itself.

Every once in a while, a book becomes the de-facto standard for a technology, operating system, or programming language--which is exactly what C# in a Nutshell aims to do in a single straightforward and easy to use volume.

 
Other Readers Also Read
Top Sellers in This Category
Browse Similar Topics
Programming C#, 4th Edition
by Jesse Liberty
C# Cookbook
by Jay Hilyard, Stephen Teilhet
ADO.NET in a Nutshell
by Bill Hamilton, Matthew MacDonald
ASP.NET in a Nutshell, 2nd Edition
by G. Andrew Duthie, Matthew MacDonald
C# Language Pocket Reference
by Ben Albahari, Peter Drayton, Ted Neward
   
Reader Reviews From Amazon (Ranked by 'Helpfulness')
Average Customer Rating: based on 13 reviews.
A better quick reference than MSDN online., 2005-02-03
Reviewer rating:
I bought this book because, after using the JDK javadocs for Java for years, I found MSDN's .net online documentation unfriendly in comparison. For the past year, I've been using this book as my first reference, before checking anywhere else. I've found I can usually get what I am looking for the quickest in this reference.

The one problem I have with it is that it doesn't list the exceptions thrown by methods.
Very good reference text., 2004-05-03
Reviewer rating:
This book is not a "teach yourself C#"; it is only a reference text. If you are experienced in another programming language, however, you can use this reference to easily find the syntax required by C#. The book is a quick reference useful for programmers who like to have a paper copy reference on their desktops. By the publisher's own admission, it is not an exhausted reference.

I like having a hard copy reference when I'm programming, so this book suits me fine. There are numerous example code snippets throughout the book to help you learn C#. In addition, the second edition also adds a CD that allows you to incorporate the book's Quick Reference directly into the help files of Visual Studio .NET. This gives you, the programmer, more options when you need help. It is also handy when you have left the book at home.

I'm an intermediate Java programmer who needed to make the conversion to C# for a particular project. "C# in a Nutshell" has assisted me in this aim, and as a result, I would recommend this book to anyone as a useful reference text.

C# in a Nutshell - Supports my day-to-day efforts, 2003-12-16
Reviewer rating:
In my opinion O'reilly continually puts out the best technical books and "C# in a Nutshell" further supports their excellent reputation. As usual with O'reilly's other offerings in their "in a Nutshell" series they leave out the fluff and provide just the facts. This approach makes "C# in a Nutshell" easy to recommend if you've already gotten your feet wet in C#. On the other hand if you're still green you're better off with books that offer a traditional tutorial approach and then come back when you're ready to get into some advanced topics or need a reference to the namespaces and C# implementation.

Understanding this book is not a tutorial for the beginner will help acclimate yourself to what to expect. Even though the subtitle reads "A Desktop Reference" ample content exists to introduce beginning topics that lay the ground work for its reference sections.

The first nineteen chapters, approximately two hundred and nineteen pages, cover beginning topics such as .NET Framework and C# basics to advanced subjects including reflection, XML serialization, and threading. The remaining chapters are devoted to a quick reference to classes in the namespaces. Several topics that I'm interested in, including GDI+ were mentioned only briefly and then referred to related namespaces. I'm hoping that GDI+ and other UI related material are covered in more depth in O'reilly's ".NET Windows Forms in a Nutshell" offering or the next edition of "C# in a Nutshell".

Code examples in the book were sufficient to reinforce my understanding of each topic and the `animal tracks' notes were a nice touch and more than mere filler. Other niceties include UML diagrams detailing the namespace structures, DLL / namespace associations, and the C# API Quick Reference encapsulated in a Visual Studio.NET plug-in supplied on the included CD.

"C# in a Nutshell" has already helped me in a VB to C# conversion project. I'm already looking forward to the next edition that may address some of the missing namespaces, otherwise it's a very important tool that supports my day to day efforts.

Just what I wanted, 2003-11-11
Reviewer rating:
When I need to learn a language, the last thing I want is a book that tries to teach it to me. Their teaching jut gets in the way of my learning.

This book serves my needs ideally. It is a reference, not a tutorial. It covers the whole language and most or all of the standard API, in a book of modest length. Of course, that sacrifices detail. Fine. When I need information, I'll look here to find out what system facility does my job, then use the system help for details. This book really is the index that the help system lacks.

This goes on the shelf next to Flanagan's "Java in a Nutshell." I have no higher praise for a language book.

C# in a Nutshell, 2003-04-16
Reviewer rating:
The Nutshell series published by the O'Reilly group has become so ubiquitous in the IT world that it needs very little introduction. As the preface of C# in a Nutshell states, the aim of the series is to become the desktop reference for whatever technology is covered by each book. In this case, O'Reilly aims to make this book the must-have reference for all C# programmers. This review will focus on the points that any good reference book should address, namely: brevity, completeness, correctness, and usefulness. Unfortunately, my own personal knowledge of C# is restricted to what was discussed in .NET Essentials (another O'Reilly publication), so I won't be able to be as critical of the correctness as I would like. My conclusions are thus based on short tests that I ran to check the validity of the claims made in the book.

C# in a Nutshell scores high marks in both the brevity and correctness categories. Humorous as it might be to label an 830-page book as brief, it actually qualifies as such. The main discussion of the language is kept to the first 270 pages, with an average of about 20 pages devoted to each subject. Only the essentials are discussed, and that will usually be enough when you need to quickly look up how to do something. The remaining 560 pages are devoted to a Quick Reference of the .NET framework classes. While reading the text, I never came across any glaring inconsistencies, such as conflicting descriptions of how to accomplish a task, which leads me to suspect that the text is mostly correct. The few actual tests I ran worked as expected. On a superficial level, I found the content credible.

When it came to completeness, I wasn't as impressed. As a reader, I have somewhat of a personal bias: I'm pretty familiar with both C++ and Java. I also suspect that this knowledge is shared by a large percentage of this book's audience. As a consequence, I found myself wishing that the advanced features particular to this language had been covered more thoroughly, and that the description of features shared by C++, Java, or both, had been trimmed down a bit. I found the sections on Custom Attributes, Serialization and Threading to be especially light, given that they are all core features of the C# language. I also found the two sections dealing with integration of legacy components (DLLs and COM) to be somewhat inadequate for professionals who actually need to deal with these issues. However, I do understand the balancing act that has to be done to keep this book brief. I would have wanted more emphasis on the unique features and considerations associated with this new language, and less on the basics. On the other hand, the authors should be commended for the range of topics they manage to touch on in such a small number of pages. Certain topics, such as Diagnostics and Command-line tools, are fully described and could easily have been forgotten.

My real beef with the completeness of this book is related to the 500+ page SDK Quick Reference. Let's start with the good: The descriptions of the classes and their uses are verbose, and useful. The Quick Reference is logically divided up according to the .NET package divisions, and each description includes a very good UML diagram showing you where each class fits into the grand scheme of things. Now the bad: Though the class interfaces are fully detailed, there is no description whatsoever of the actual method parameters, and how they will be used internally. From a programmer's perspective, this is extremely annoying. Here's an example of what I mean: The class System.Timers.Timer has a property called interval that can be set through the constructor, or through property accessors. Without a proper description, one might imagine that this property relates to the interval at which the Timer does what it does (in this case, throws an Event.) However, we have no idea what units the interval property is using. Do we specify the units in seconds? In milliseconds? In nanoseconds, even? We have no idea, and we can only figure it out by trying it ourselves. You can imagine how frustrating this would be for properties where the answer is not so easily discovered.

The second major issue I have with this book is the unadvertised omission of the System.Windows.Forms and System.Web namespaces in the Quick Reference. It seems as if these GUI-related namespaces have been saved for Programming C#, but I found their omission in this book to be questionable, at the very least. I wouldn't complain if the namespaces were at least described briefly in the Quick Reference, but they aren't even mentioned once. This choice renders the book practically useless on its own for anyone who wishes to add a visual interface to his or her program, which, unless you're writing server code, is nearly everyone. I think that if the goal of this book is for it to be the only desktop reference you'll need, then in this respect it has failed. Similar to the Java in a Nutshell / JFC in a Nutshell combo, you'll probably need both this book and Programming C# for a complete reference from O'Reilly.

All in all, it is hard not to recommend this book for anyone who plans to work with C#. Its description of the language basics is thorough, the advanced features are at least brought up and discussed, and the reference, for all its flaws, will be considered useful by most. In particular, I appreciated the UML diagrams included in the book, placing it one step ahead of the Microsoft documentation. However, the book is somewhat incomplete, and you will most likely want to get Programming C# (convenient, isn't it?) and keep that bookmark to Microsoft's online documentation, at least to look up what the function parameters actually do.

 
Some information above was provided using data from Amazon.com. View at Amazon >
C# in a Nutshell
BOOK: C# in a Nutshell
by Ben Albahari, Peter Drayton, Ted Neward

Publisher: O'Reilly
Pub Date: March 2002
More recent edition of this book available.
ISBN: 0-596-00181-9
Pages: 856
Slots: 1.0
Start Reading
About Safari | Terms of Service | Privacy Policy | Contact Us | Help | 508 Compliance
Copyright © 2006 Safari Books Online. All rights reserved.