Essential C# 2. 0

Paperback (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 96%)
Other sellers (Paperback)
  • All (23) from $1.99   
  • New (6) from $24.93   
  • Used (17) from $1.99   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$24.93
Seller since 2014

Feedback rating:

(476)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

New
2006 Paperback New

Ships from: san francisco, CA

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$41.26
Seller since 2008

Feedback rating:

(17564)

Condition: New
Brand New, Perfect Condition, Please allow 4-14 business days for delivery. 100% Money Back Guarantee, Over 1,000,000 customers served.

Ships from: Westminster, MD

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
$41.27
Seller since 2007

Feedback rating:

(23385)

Condition: New
BRAND NEW

Ships from: Avenel, NJ

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
$44.24
Seller since 2014

Feedback rating:

(0)

Condition: New
0321150775 Premium Publisher Direct Books are Like New or Brand New books direct from the publisher sometimes at a discount. Multiple copies are usually available. These books ... are not available for expedited shipping and may take up to 14 business days to receive. Read more Show Less

Ships from: Woodland Hills, CA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Express, 48 States
$69.68
Seller since 2014

Feedback rating:

(2)

Condition: New
New

Ships from: Idyllwild, CA

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$74.71
Seller since 2010

Feedback rating:

(7)

Condition: New
7-13-06 other 1 BRAND NEW! ONLY Expedited orders are shipped with tracking number! *WE DO NOT SHIP TO PO BOX* Please allow up to 14 days delivery for order with standard ... shipping. SHIPPED FROM MULTIPLE LOCATIONS. Read more Show Less

Ships from: San Jose, CA

Usually ships in 1-2 business days

  • Canadian
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Page 1 of 1
Showing All
Close
Sort by

Overview

A new edition of this title is available, ISBN-10: 0321533925 ISBN-13: 9780321533920

Essential C# 2.0 pulls off a very difficult task. The early chapters are comprehensible by beginning developers, while the later chapters pull no punches and provide the experienced developer with the detailed information they need to make the most of C# 2.0. Starting with the first chapter, Mark has successfully interwoven tidbits of information useful to even the most advanced developer while keeping the book approachable.”
–Chris Kinsman, chief architect, Vertafore, Microsoft Regional Director

“How refreshing! This book deals with C# thoroughly, rather than skimming over the whole .NET framework. It is valuable to newcomers and professionals alike.”
–Jon Skeet, C# MVP
Essential C# 2.0 is a one-stop shop for an experienced programmer looking to ramp up on one of the hottest languages around today. Mark delivers an intelligent and detailed tour of C#, providing newcomers to the language with a solid foundation of skill on which to build their next generation of applications.”
–Stephen Toub, technical editor, MSDN Magazine
“This book provides complete, up-to-date coverage of all the programming constructs in C#. Masterfully organized, it allows beginning programmers to get on board and leads more experienced programmers into the world of structured programming. Because of its unwavering focus on the essential programming constructs of C#–such as generics, delegates, and much more–this book is indispensable. For programmers who want to solve their day-to-day programming issues using the latest features this modern programming language has to offer, this book is indispensable.”
–Narendra Poflee, IT integration specialist, Itron Inc.
Essential C# 2.0 is an ideal book for all programmers interested in C#. If you are a beginner, you will quickly learn the basics of C# programming and become familiar with the concepts. The flow of the text is easy to follow and does a great job of not repeating concepts that have already been covered. For the experienced programmer, this book has priceless nuggets embedded within its pages, making it a great read for programmers who are already familiar with C#. This will be a book that I will keep next to my computer for years to come.”
–Michael Stokesbary, software engineer, Itron Inc.

Essential C# 2.0 is a clear, concise guide to C#–including the features new to C# 2.0. The book clearly presents material for beginners and experts and provides contrasts and comparisons between C# and other languages. The C# language is covered comprehensively and each important construct is illustrated with succinct code examples. Complete code examples are available online. Mark Michaelis has organized the material for quick access. Graphical “mind maps” at the beginning of each chapter show what material is covered and how each topic relates to the whole.

Following the C# introduction, readers will learn about

  • C# primitive data types, value types, reference types, type conversions, and arrays
  • Operators and control flow, loops, conditional logic, and sequential programming
  • Methods, parameters, exception handling, and structured programming
  • Classes, inheritance, structures, interfaces, and object-oriented programming
  • Well-formed types, operator overloading, namespaces, and garbage collection
  • Generics, collections, and iterators
  • Reflection, attributes, and declarative programming
  • Threading, synchronization, and multi-threaded patterns
  • Interoperability and unsafe code
  • The Common Language Infrastructure that underlies C#

C# 2.0 has a multitude of new features that make the language even more powerful, productive, and efficient. These new features are thoroughly covered in this book. A separate appendix on C# 2.0 topics helps readers quickly find new features of the language.

Whether you’re just starting out as a programmer, are an experienced developer looking to learn C#, or are a seasoned C# programmer interested in learning the new features of C# 2.0, Essential C# 2.0 gives you just what you need to quickly get up and running writing C# applications.

Read More Show Less

Product Details

  • ISBN-13: 9780321150776
  • Publisher: Addison-Wesley
  • Publication date: 7/21/2006
  • Series: Microsoft .NET Development Series
  • Edition description: Older Edition
  • Pages: 768
  • Product dimensions: 7.00 (w) x 9.24 (h) x 1.38 (d)

Meet the Author

Mark Michaelis is an enterprise architect and trainer at Itron Corporation and an IDesign architect specializing in Windows Communication Foundation (WCF) and Visual Studio Team System (VSTS). Since 1996, Mark has been recognized as a Microsoft MVP for areas such as C# and VSTS, and he serves on several Microsoft software design review teams, including C#, WCF, and VSTS. He holds an M.S. in computer science from the Illinois Institute of Technology, speaks at developer conferences both nationally and internationally, and has written several other books and articles.

Read More Show Less

Table of Contents

1 Introducing C# 1
2 Data types 29
3 Operators and control flow 77
4 Methods and parameters 139
5 Classes 185
6 Inheritance 237
7 Interfaces 273
8 Value types 297
9 Well-formed types 323
10 Exception handling 365
11 Generics 379
12 Collections 419
13 Delegates and events 465
14 Reflection and attributes 509
15 Multithreading 549
16 Multithreading patterns 591
17 Platform interoperability and unsafe code 615
18 The common language infrastructure 641
A Downloading and installing the C# compiler and the CLI platform 663
B Complete source code listings 667
C C# 2.0 topics 693
Read More Show Less

Preface

Throughout the history of software engineering, the methodology used to write computer programs has undergone several paradigm shifts, each building on the foundation of the former by increasing code organization and decreasing complexity. This book takes you through these same paradigm shifts.

The beginning chapters take you through sequential programming structure in which statements are written in the order in which they are executed. The problem with this model is that complexity increases exponentially as the requirements increase. To reduce this complexity, code blocks are moved into methods, which creates a structured programming model. This allows you to call the same code block from multiple locations within a program, without duplicating code. Even with this construct, however, programs quickly become unwieldy and require further abstraction. From this emerges object-oriented programming, which Chapter 5 discusses. In subsequent chapters, you continue to learn about additional methodologies, such as interface-based programming, and eventually rudimentary forms of declarative programming (in Chapter 14) via attributes.

This book has three main functions.

  • It provides comprehensive coverage of the C# language, going beyond a tutorial and offering a foundation upon which you can begin effective software development projects.
  • For readers already familiar with C#, this book provides insight into some of the more complex programming paradigms and provides in-depth coverage of the features introduced in the latest version of the language, C# 2.0.
  • It serves as a timeless reference, even after you gain proficiency with the language.

The key to successfully learning C# is to start coding as soon as possible. Don’t wait until you are an “expert” in theory; start writing software immediately. As a believer in iterative development, I hope this book enables even a novice programmer to begin writing basic C# code by the end of Chapter 2.

A number of topics are not covered in this book. You won’t find coverage of topics such as ASP.NET, ADO.NET, smart client development, distributed programming, and so on. Although these topics are relevant to the .NET framework, to do them justice requires books of their own. Fortunately, Addison-Wesley’s Microsoft .NET Development Series provides a wealth of writing on these topics. Reading this book will prepare you to focus on and develop expertise in any of these areas. It focuses on C# and the types within the Base Class Library.

Target Audience for This Book

My challenge with this book was how to keep advanced developers awake while not abandoning beginners by using words like “assembly,” “link,” “chain,” “thread,” and “fusion,” as if the topic was more appropriate for blacksmiths than for programmers. This book’s primary audience is experienced developers looking to add another language to their quiver. However, I have carefully assembled this book to provide significant value to developers at all levels.

  • Beginners: If you are new to programming, this book serves as a resource to help transition you from an entry-level programmer to a C# developer, comfortable with any C# programming task that’s thrown your way. This book not only teaches you syntax, but it also trains you in good programming practices that will serve you throughout your programming career.
  • Structured programmers: Just as it’s best to learn a foreign language through immersion, learning a computer language is most effective when you begin using it before you know all the intricacies. In this vein, the book begins with a tutorial that will be comfortable for those familiar with structured programming, and by the end of Chapter 4, developers in this category should feel at home writing basic control flow programs. However, the key to excellence for C# developers is not memorizing syntax. To transition from simple programs to enterprise development, the C# developer must think natively in terms of objects and their relationships. To this end, Chapter 5’s Beginner Topics introduce classes and object-oriented development. The role of historically structured programming languages such as C, COBOL, and FORTRAN is still significant but shrinking, so it behooves software engineers to become familiar with object-oriented development. C# is an ideal language for making this transition because it was designed with object-oriented development as one of its core tenets.
  • Object-based and object-oriented developers: C++ and Java programmers, and many experienced Visual Basic programmers, fall into this category. Many of you are already completely comfortable with semicolons and curly braces. A brief glance at the code in Chapter 1 reveals that at its core, C# is similar to the C and C++ style languages that you already know.
  • C# professionals: For those already versed in C#, this book provides a convenient reference for less frequently encountered syntax. Furthermore, it provides answers to language details and subtleties seldom addressed. Most importantly, it presents the guidelines and patterns for programming robust and maintainable code. This book also aids in the task of teaching C# to others.

    With the emergence of C# 2.0, some of the most prominent enhancements are:

    • Partial classes (see Chapter 5)
    • Global namespace qualifiers (see Chapter 9)
    • Different access modifiers on property getters and setters (see Chapter 5)
    • Anonymous methods (see Chapter 13)
    • Generics (see Chapter 11)
    • Iterator topics (see Chapter 12)

    These topics are covered in detail for those not already familiar with them. Also pertinent to advanced C# development is the subject of pointers, in Chapter 17. Even experienced C# developers often do not understand this topic well.

Features of This Book

Essential C# 2.0 is a language book that adheres to the core C# Language 2.0 Specification. To help you understand the various C# constructs, it provides numerous examples demonstrating each feature. Accompanying each concept are guidelines and best practices, ensuring that code compiles, avoids likely pitfalls, and achieves maximum maintainability. To improve readability, code is specially formatted and chapters are outlined using mind maps.

Code Samples

The code snippets in most of this text can run on any implementation of the Common Language Infrastructure (CLI), including the Mono, Rotor, and Microsoft .NET platforms. Platform- or vendor-specific libraries are seldom used, except when communicating important concepts relevant only to those platforms (appropriately handling the single-threaded user interface of Windows, for example). Any code that specifically requires C# 2.0 compliance is called out in Appendix C: C# 2.0 Topics.

Although it might have been convenient to provide full code samples that you could copy into your own programs, doing so would detract you from learning a particular topic. Therefore, you need to modify the code samples before you can incorporate them into your programs. The core omission is error checking, such as exception handling. Also, code samples do not explicitly include using System statements. You need to assume the statement throughout all samples.

You can find sample code at http://mark.michaelis.net and at www.awprofessional.com/title/0321150775.

Mind Maps

Each chapter’s introduction includes a mind map, which serves as an outline that provides at-a-glance reference to each chapter’s content.

The theme of each chapter appears in the mind map’s center. High-level topics spread out from the core. Mind maps allow you to absorb the flow from high-level to more detailed concepts easily, with less chance of encountering very specific knowledge that you might not be looking for.

Helpful Notes

Depending on your level of experience, special code blocks and notes will help you navigate through the text.

  • Beginner Topics provide definitions or explanations targeted specifically toward entry-level programmers.
  • Advanced Topics enable experienced developers to focus on the material that is most relevant to them.
  • Callout notes highlight key principles in callout boxes so that readers easily recognize their significance.
  • Language Contrast sidebars identify key differences between C# and its predecessors to aid those familiar with other languages.

How This Book Is Organized

At a high level, software engineering is about managing complexity, and it is toward this end that I have organized Essential C# 2.0. Chapters 1–4 introduce structured programming, which enable you to start writing simple functioning code immediately. Chapters 5–9 present the object-oriented constructs of C#. Novice readers should focus on fully understanding this section before they proceed to the more advanced topics found in the remainder of this book.

Chapters 11–13 introduce additional complexity-reducing constructs, handling common patterns needed by virtually all modern programs. This leads to dynamic programming with reflection and attributes, which is used extensively for threading and interoperability, the chapters that follow.

The book ends with a chapter on the Common Language Infrastructure, which describes C# within the context of the development platform in which it operates. This chapter appears at the end because it is not C# specific and it departs from the syntax and programming style in the rest of the book. However, this chapter is suitable for reading at any time, perhaps most appropriately immediately following Chapter 1.

Here is a description of each chapter.

  • Chapter 1—Introducing C#: After presenting the C# HelloWorld program, this chapter proceeds to dissect it. This should familiarize readers with the look and feel of a C# program and provide details on how to compile and debug their own programs. It also touches on the context of a C# program’s execution and its intermediate language.
  • Chapter 2—Data Types: Functioning programs manipulate data, and this chapter introduces the primitive data types of C#. This includes coverage of two type categories, value types and reference types, along with conversion between types and support for arrays.
  • Chapter 3—Operators and Control Flow: To take advantage of the iterative capabilities in a computer, you need to know how to include loops and conditional logic within your program. This chapter also covers the C# operators, data conversion, and preprocessor directives.
  • Chapter 4—Methods and Parameters: This chapter investigates the details of methods and their parameters. It includes passing by value, passing by reference, and returning data via a parameter. In C#, default parameters are not supported, and this chapter explains why and how to provide the same functionality.
  • Chapter 5—Classes: Given the basic building blocks of a class, this chapter combines these constructs together to form fully functional types. Classes form the core of object-oriented technology by defining the template for an object.
  • Chapter 6—Inheritance: Although inheritance is a programming fundamental to many developers, C# provides some unique constructs, such as the new modifier. This chapter discusses the details of the inheritance syntax, including overriding.
  • Chapter 7—Interfaces: This chapter demonstrates how interfaces are used to define the “versionable” interaction contract between classes. C# includes both explicit and implicit interface member implementation, enabling an additional encapsulation level not supported by most other languages.
  • Chapter 8—Value Types: Although not as prevalent as defining reference types, it is sometimes necessary to define value types that behave in a fashion similar to the primitive types built into C#. This chapter describes how to define structures, while exposing the idiosyncrasies they may introduce.
  • Chapter 9—Well-Formed Types: This chapter discusses more advanced type definition. It explains how to implement operators, such as + and cast, and describes how to encapsulate multiple classes into a single library. In addition, the chapter demonstrates defining namespaces and XML comments, and discusses how to design classes for garbage collection.
  • Chapter 10—Exception Handling: This chapter expands on the exception-handling introduction from Chapter 4 and describes how exceptions follow a hierarchy that enables creating custom exceptions. It also includes some best practices on exception handling.
  • Chapter 11—Generics: Generics is perhaps the core feature missing from C# 1.0. This chapter fully covers this new feature.
  • Chapter 12—Collections: Given generics, all the collection classes in .NET 1.1 can be replaced with their generic equivalents. This chapter reviews the collection classes, along with the interfaces that define their common behavior. With minimal impact on the underlying runtime, C# 2.0 provides syntax for easier collection creation with iterators. Iterators provide a clean syntax for specifying how to loop through data within a class.
  • Chapter 13—Delegates and Events: Delegates begin clearly distinguishing C# from its predecessors by defining patterns for handling events within code. This virtually eliminates the need for writing routines that poll. Encapsulated delegates, known as events, are a core construct of the Common Language Runtime. Anonymous methods, another C# 2.0 feature, are also presented here.
  • Chapter 14—Reflection and Attributes: Object-oriented programming formed the basis for a paradigm shift in program structure in the late 1980s. In a similar way, attributes facilitate declarative programming and embedded metadata, ushering in a new paradigm. This chapter looks at attributes and discusses how to retrieve them via reflection. It also covers file input and output via the serialization framework within the Base Class Library.
  • Chapter 15—Multithreading: Most modern programs require the use of threads to execute long-running tasks while ensuring active response to simultaneous events. As programs become more sophisticated, they must take additional precautions to protect data in these advanced environments. Programming multithreaded applications is complex. This chapter discusses how to work with threads and provides best practices to avoid the problems that plague multithreaded applications.
  • Chapter 16—Multithreading Patterns: Building on the last chapter, this one demonstrates some of the built-in threading pattern support that can simplify the explicit control of multithreaded code.
  • Chapter 17—Platform Interoperability and Unsafe Code: Given that C# is a relatively young language, far more code is written in other languages than in C#. To take advantage of this preexisting code, C# supports interoperability—the calling of unmanaged code—through P/Invoke. In addition, C# provides for the use of pointers and direct memory manipulation. Although code with pointers requires special privileges to run, it provides the power to interoperate fully with traditional C-based application programming interfaces.
  • Chapter 18—The Common Language Infrastructure: Fundamentally, C# is the syntax that was designed as the most effective programming language on top of the underlying Common Language Infrastructure. This chapter delves into how C# programs relate to the underlying runtime and its specifications.
  • Appendix A—Downloading and Installing the C# Compiler and the CLI Platform: This appendix provides instructions for setting up a C# compiler and the platform on which to run the code, Microsoft .NET or Mono.
  • Appendix B—Complete Source Code Listings: In several cases, a full source code listing within a chapter would have been too long. To make these listings still available to the reader, this appendix includes the full listing from Chapters 3, 11, 12, 14, and 17.
  • Appendix C—C# 2.0 Topics: This appendix provides a quick reference to any C# 2.0 content. It is specifically designed to help C# 1.0 programmers quickly get up to speed on the 2.0 features.

I hope you find this book to be a great resource in establishing your C# expertise and that you continue to reference it for the more obscure areas of C# and its inner workings.

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 2 Customer Reviews
  • Anonymous

    Posted November 20, 2006

    Essential C# 2.0

    This book is a bible for all C# programmers and .net developers.From people with no programming experience to people with a moderate experience can benefit from this book. It has covered all topics in C#2.0 start from fundamentals to advanced concepts. Starting from chapter 1, Introducing C# author Mark's presentation style is very different and very unique. He tried to touch all important aspects of the language that no other authored tried to do in their books. The book is very neatly organized in its presentation starting with introduction, data types, operators and methods and parameters. I recommend this book to professionals with various other programming lanugos experience too since each and every topic clearly explained the differences and advantages of coding in C#.Inheritance and Interfaces are very well explained altogether with Exception Hndling.Multithreading concept is very well explained with all its examples with the patterns and forms. I recommend this books to students to professionals.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted August 2, 2006

    easy migration from Java coding

    Michaelis presents a straightforward rendition of the most important ideas in C#. Readily understandable to anyone who has already programmed in C++ or Java. It will be a little harder if you have never coded in an object oriented language. If you do know both C++ and Java, what will be striking is how C# is so much closer to Java. Yes, some people really think the 2 languages are very different. But a lot of that sentiment seems to come out of the Microsoft versus linux arena. Several key characteristics of C# given in this book show the closeness of C# and Java. Notably the single inheritance of classes. A big change from C++. But given this single inheritance constraint, interfaces are then introduced, to permit a limited form of multiple inheritance. Exactly parallels Java's core structure. For extra runtime power, C# gives you reflection. Another idea earlier done in Java. The notations used in C# are also close to Java. Like 'using' instead of 'import' for importing external classes into a given class. What this all means is that if you want or need to transition from Java, the text gives a fairly painless migration.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing all of 2 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)