- Shopping Bag ( 0 items )
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# 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.
|3||Operators and control flow||77|
|4||Methods and parameters||139|
|13||Delegates and events||465|
|14||Reflection and attributes||509|
|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|
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.
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.
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.
With the emergence of C# 2.0, some of the most prominent enhancements are:
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.
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.
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.
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.
Depending on your level of experience, special code blocks and notes will help you navigate through the text.
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.
HelloWorldprogram, 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.
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.
Posted November 20, 2006
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 NoThank you for your feedback. Report this reviewThank you, this review has been flagged.
Posted August 2, 2006
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 NoThank you for your feedback. Report this reviewThank you, this review has been flagged.