17 of 18 people found the following review helpful
Gilbert M. Vanegas
- Published on Amazon.com
Book review - "Pro C# 2010 and the .NET 4 Platform", by Andrew Troelsen ISBN: 978-1-4302-2549-2 - Published 2010 by Apress
Hello, this is my book review for "Pro C# 2010 and the .NET 4 Platform.
Over the years, I have programmed in a wide variety of languages including C, C++,C#, VB.NET, Visual Basic, Java, Cobol, Pascal, Assembler etc.. For those of us programmers who use Microsoft .NET framework, it has been increasingly apparent to me that C# is positioned to be the dominant language in the .NET framework, at least for the foreseeable future. With that in mind, I think C# is the way to go at this point of time, if you program with Microsoft .NET framework technologies. This is readily apparent because most of the latest documentation and samples I have seen are written in C#, In some cases, you will see both languages (C# and VB.NET) with samples provided, but if only one language sample is provided, usually it is in C#.
I have always believed that computer programming is not "memorizing language syntax", because new languages and compilers are always on the horizon. It is more important to understand computer programming principles like object oriented programming and design, how variable scoping works, deployment issues etc., how to effectively analyze, test and debug solutions to given problems, algorithms etc... In general, knowing all the features of a given framework (whether it be .net framework, PHP or java based or what have you) is most important, because then you know about the feature and can implement a solution to solve your problem).
That being said, it is always important to read programming language documentation so you can get a solid understanding of the available features of a given language. This is where a book like "Pro C# 2010 and the .NET 4 platform" becomes invaluable.
This book is jam-packed full of information and totals about 1,700 pages!
The 1st part of the book deals with specific details about C# and shows concise, to the point examples of what the author is describing in the C# programming language. From the basics such as data types, variable scoping, iterators, language syntax, methods, constructors, the use of the static keyword to object oriented concepts (inheritance, polymorphism, encapsulation). C# topics related to the .net framework such as garbage collection, exception handling, interfaces, generics, delegates, lambda expressions, events, anonymous methods,operator overloading are covered later on in the book as well. There are well over 500 pages that go into great detail about the programming language features built into C#. After that nice detailed look at the C# programming language, we get into more .net specific ideas that are necessary for the programmer to effectively make use of C# along with .NET FRAMEWORK version 4.0.
Concepts like .net assemblies (compiled units of work, similar in concept to a DLL, but with some major differences) and more advanced topics related to .net assemblies are detailed in its own chapter.
Reflection is covered also, which is a way of determining the attributes (including method names etc.) of your programming code at runtime.
.NET framework concepts such as the CLR (common language runtime, threading, parallel programming, asynchronous calls) are also covered in a nice level of detail.
Later sections of the book go into more specific ways of how to solve common programming problems with the C# language. For example, how to deal with I/O (streams, serialization) , how to connect to databases with ADO.NET, using newer technologies such as LINQ (language integrated query, a way of querying collections of data in a standard language constructs).
It then goes on to deal with WCF (soa architecture concepts), WF (windows workflow foundation), WPF (rich user desktop interfaces (check out the Zune software, which is WPF)).
Later chapters deal with the venerable ASP.NET platform, which is widely used for building websites such as e-commerce sites or business websites.
CONCLUSION: I do like this book immensely, it is a great addition to any programmers library, what I most like about the book is its treatment of the C# language itself, which is mostly what I was after in this book, I wanted to read more about all the nuts and bolts of the C# language, which evolves as each new version of the .net framework is released to production. While I have studied many C# programming books in the past, this is the first one I have gotten that deals with the new .net framework 4.0 (released around June 2010 timeframe). This could easily be a textbook in a C#/object oriented programming class, which is a compliment to its versatility and level of detail. No book can cover all the topics completely, for example, while the coverage of asp.net is quite extensive, I have read asp.net books that cover well into 1,000 pages alone. It does a good job like I said with those wanting to just become more proficient at learning the C# programming language in general.
One notable omission is the lack of much content about Silverlight, which is related to WPF, but more targeted to web based interfaces. I thought, why all this stuff about WPF, without hardly any content about Silverlight? However, with the book 1,700 pages + long, I can certainly understand that not everything under the sun is covered. Really, the title of the book is "Pro C# 2010 and the .NET 4 Platform" and it does cover just about everything about C# and using .NET FRAMEWORK 4.0, that an advanced programmer would need to know.
I do recommend this book and respect the enormous amount of work and time that the author put into creating it.