Jeremy Bytes

byte-sized chunks of .NET

Skip Navigation Links
 

Here are some of the books on my bookshelf. I'll be expanding this section periodically, so please be sure to check back. If you have any recommendations, be sure to drop me a note and let me know. Note: The Amazon links are only for convenience; I'm not getting any type of kick-back.

Categories

Object-Oriented Technology

Object Technology: A Manager's Guide
David A. Taylor, Ph.D.
Addison-Wesley
ISBN: 0-201-3044-7
This is a brief, non-technical overview of object-oriented design concepts. As the title implies, this is designed for folks needing a overview without necessarily getting into the implementation details. I recommend this to my non-technical colleagues (such as project managers and business analysts) as well as programmers who are brand new to object-oriented concepts.
Object Thinking
David West
Microsoft Press
ISBN: 0-7356-1965-4
David West covers object-oriented design by examining different approaches and presenting a case for his particular one. He has an interesting approach in explaining the differences as cultural rather than technical. It helped me understand why programmers with different backgrounds approach things the way they do. West's approach to designing object hierarchies is to base them on their behavior, not their data. I highly recommend this to any developers serious about object-oriented design.
Expert C# 2008 Business Objects
Rockford Lhotka
Apress
ISBN: 978-1-4302-1019-1
This is the instruction book for CSLA (for more information on CSLA, visit http://www.lhotka.net). CSLA is a business object framework that I have been using for several years with much success. There are three primary sections: first, a description of the base business classes available in the framework; next, a detailed look into the inner workings of the base classes; and finally, an example implementation of a business library with WPF and WCF interfaces. For folks who are interested in using CSLA in their applications, I recommend the first and final sections. The middle section is for the people who want to peek under the hood.

Specific .NET Technologies

Programming Razor
Jess Chadwick
O'Reilly
ISBN: 978-1-449-30676-2
This is a short book (99 pages) that describes the Razor templating syntax that can be used with ASP.NET MVC and WebMatrix. This provided the information I was looking for on how to use the Razor syntax, but unfortunately, the sample code was inconsistent and provided some difficulties. If you can get a discounted copy, I would recommend it. But it's difficult to recommend at the cover price based on the quality of the samples. I have a more complete review available here: Book Review: Programming Razor.
Pro ASP.NET MVC 2 Framework
Steven Sanderson
Apress
ISBN: 978-1-4302-2886-8
This is a great book on ASP.NET MVC. It is more than an introduction or overview; it also goes into details of the framework and even how to extend it yourself. I have a more complete review available here: Book Review: Pro ASP.NET MVC 2 Framework.
C# 4.0 in a Nutshell: The Definitive Reference
Joseph Albahari & Ben Albahari
O'Reilly
ISBN: 987-0-596-80095-6
This is an excellent resource -- although the authors do have an interesting definition of "nutshell" since the book tops out at over 1,000 pages. This is recommended for intermediate C# programmers or for experienced programmers who are new to C#. I have a more complete review available here: Book Review: C# 4.0 in a Nutshell.
Pro Silverlight 3 in C#
Matthew MacDonald
Apress
ISBN: 978-1-4302-2381-8
Pro Silverlight 3 is an excellent resource for all things Silverlight. The majority of the features are covered at a good level of detail. The writing is very clear, and the examples are relevant. I have also read Pro Silverlight 2 in C# 2008. The Silverlight 3 version added several hundred pages. The Silverlight 4 version will be out shortly and appears to have added quite a bit more information. Highly recommended as a general Silverlight reference. There is also a VB version available if that is your language of choice.
Data-Driven Services with Silverlight 2
John Papa
O'Reilly
ISBN: 978-0-596-52309-1
I really want an update to this excellent book. This is a fairly short book that covers the majority of the data access options available in Silverlight 2, from WCF Services to Entity Framwork to Web Services and lots of things in between. It covers the issues of cross-site permissions and how to code to accommodate them. This is still an excellent book for getting started with data-driven Silverlight apps. I'd love to see an update that includes RIA Services and other recent options. John Papa has since moved to Microsoft and seems to be concentrating on the MVVM world, so unfortunately, I don't think I'll get my wish. I have a more complete review on my blog: Book Review - Data-Driven Services with Silverlight 2
Learning WCF
Michele Leroux Bustamante
O'Reilly
ISBN: 978-0-596-10162-6
Michele Leroux Bustamante takes you step by step through using WCF. This book is filled to the brim with labs and samples. My copy is quite dog-eared, and I've gone through all of the labs. This is an excellent hands-on resource for learning WCF (using .NET 3.5 SP1). Rumors are that there is an updated version coming out soon.
Pro WPF in C# 2008
Matthew MacDonald
Apress
ISBN: 1-59059-955-1
Matthew MacDonald provides a comprehensive resource for WPF. This book spans 1,000 pages and includes lots of samples and practical references. Highly recommended for anyone interested in using WPF. A new version for 2010 has recently been released, and there is also a VB version available.
ASP.NET MVC Framework Unleashed
Stephen Walther
Sams
ISBN: 0-672-32998-0
I was rather disappointed with this book. You can read a review on my blog here: Book Review: ASP.NET MVC Framework Unleashed. Give this book a pass. I'm looking for a good MVC reference, but I'm waiting for the MVC 2 books to come out.

General Programming / Best Practices

Code: The Hidden Language of Computer Hardware and Software
Charles Petzold
Microsoft Press
ISBN: 978-0-7356-1131-3
This is not really a programming book; it is a description of how computers work. Designed for the layman, it starts off with the basics of codes (Morse Code, Braille, binary codes) and then moves on to how to communicate those codes using electro-mechanical relays (such as telegraph relays). From there, it talks about how these relays can be combined in various ways to create logical operations and built up to a simple adder -- the basic building block of computer hardware. The components are pieced together from the earliest computers to modern machines (well, almost modern -- the book was written in 1999). As a non-CS major, I found this book to be very approachable and it gave me a good understanding of how software can be turned into instructions for the hardware.
Effective C#: 50 Specific Ways to Improve Your C# (2nd Edition)
Bill Wagner
Addison-Wesley
ISBN: 978-0-321-65870-8
This is a great set of tips and best practices for intermediate/advanced developers. You can check out a full review on my blog here: Book Review: Effective C# - Second Edition
The Passionate Programmer: Creating a Remarkable Career in Software Development
Chad Fowler
Pragmatic Life
ISBN: 1-934356-34-4
This is an excellent guide to improving yourself and your career as a programmer. 53 short sections give practical advice to improve your chances for success. As an example, one section is titled "Be the Worst". This sounds counter-intuitive, but the idea is that you don't want to be the smartest programmer in the room; this can cause your performance to stagnate. If you surround yourself with people who are better than you, you will start to perform at the higher level.
The Pragmatic Programmer: From Journeyman to Master
Andrew Hunt & David Thomas
Addison-Wesley
ISBN: 0-201-61622-X
This book covers many different topics on how to improve your programming with 70 tips and a set of checklists. This has a similar feel to the Passionate Programmer (above), but is more technical in nature. The concepts are language agnostic and are of general applicability. Highly recommended for anyone looking to take the next step in improving the quality of his code.
Coders at Work: Reflections on the Craft of Programming
Peter Seibel
Apress
ISBN: 978-1-4302-1948-4
This is a series of interviews with the pillars of the development community. I'm still working my way through this one, so I don't have any specific recommendations yet. So far, I'm finding a lot of different insights (and not necessarily consensus). More to come.
Agile Principles, Patterns, and Practices in C#
Robert C. Martin & Micah Martin
Prentice Hall
ISBN: 0-13-185725-8
This book covers the concepts of Agile methodologies quite thoroughly. "Uncle Bob" has been developing software since 1970, so he has quite a bit of insight in the matter. Overall, this book is a good read and has a lot of good principles, such as only creating an abstraction when necessary. There are a few places where the book is not consistent with itself (principles promoted in one section are ignored in another). But critical reading will overcome this difficiency. This book covers a number of different topics such as test-driven development, design patterns, a smattering of UML, and the SOLID principles. Robert Martin is a C++ guru; Micah (his son) handles all of the C# examples for this book.
The Art of Unit Testing with Examples in .NET
Roy Osherove
Manning
ISBN: 1-933988-27-4
This is a fairly short book that covers examples of test-driven development (TDD). This book is not designed to sway you into the TDD camp; it's for folks who have already made up their minds. I found it an interesting read. I'm not currently sold on TDD, and a few of the examples in the book show its shortcomings (which are good to know so that you can work around them).

Design Patterns

Head First Design Patterns
Eric Freeman & Elisabeth Freeman
O'Reilly
ISBN: 0-596-00712-4
The Head First book series is designed to be extremely approachable. As such, I recommend Head First Design Patterns to junior programmers or programmers who are brand new to design patterns. The examples are very easy to understand, and the writing style keeps you interested and thinking throughout the book. The one disadvantage is that the actual code samples are in Java, but the syntax and concepts are close enough that C# developers would have no problems following along.
Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Addison-Wesley
ISBN: 0-201-63361-2
This is the legendary "Gang of Four" (or GoF) book -- the book that everyone who talks about design patterns will refer to. This is not for the faint of heart. The descriptions and examples are quite technical and take a lot of concentration to follow. When I first purchased this book, it ended up sitting on my shelf for several years until my programming skills and understanding matured. This is an excellent read, just not for the beginner.
Patterns of Enterprise Application Architecture
Martin Fowler
Addison-Wesley
ISBN: 0-321-12742-0
Once you get through the Gang of Four book, Martin Fowler is the next step. This particular book covers patterns you may use when thinking about Enterprise-level applications (with the definition of "Enterprise-level" meaning applications that span an entire business across the various departments). A high recommendation for advanced-level programmers.
Microsoft .NET: Architecting Applications for the Enterprise
Dino Esposito & Andrea Saltarello
Microsoft Press
ISBN: 0-7356-2609-X
Architecting Applications for the Enterprise is in the same vein as the Martin Fowler book. The focus here is more on the top to bottom design (from the data storage layer all the way through to the UI layer) rather than on specific "design patterns", but there are plenty of patterns scattered throughout. The focus of the techniques are around Domain-Driven Design (also known as Entity-based design) which I've seen quite a lot lately. This differs from Object-Oriented Design in that it is focused around interacting with data entities that do not generally have their own behavior. I found this to be a good read, although not applicable to the type of development that I do on a regular basis.
Agile Principles, Patterns, and Practices in C#
Robert C. Martin & Micah Martin
Prentice Hall
ISBN: 0-13-185725-8
This book covers the concepts of Agile methodologies quite thoroughly. "Uncle Bob" has been developing software since 1970, so he has quite a bit of insight in the matter. Overall, this book is a good read and has a lot of good principles, such as only creating an abstraction when necessary. There are a few places where the book is not consistent with itself (principles promoted in one section are ignored in another). But critical reading will overcome this difficiency. This book covers a number of different topics such as test-driven development, design patterns, a smattering of UML, and the SOLID principles. Robert Martin is a C++ guru; Micah (his son) handles all of the C# examples for this book.

In the Queue

These are the books on my bookshelf waiting to be read (in no particular order).

Beautiful Testing: Leading Professionals Reveal How They Improve Software
Edited by Tim Riley & Adam Goucher
O'Reilly
ISBN: 978-0-596-15981-8
Just started this one.
Touch of Class: Learning to Program Well with Objects and Contracts
Bertrand Meyer
Springer
ISBN: 978-3-540-92144-8
This is a pretty good book.
About Face 3: The Essentials of Interaction Design
Alan Cooper, Robert Reimann, and David Cronin
Wiley Publishing, Inc.
ISBN: 978-0-470-08411-3
Waiting to be read.
Pro WPF in C# 2010: Windows Presentation Foundation in .NET 4
Matthew MacDonald
Apress
ISBN: 987-1-4302-7205-2
Waiting to be read.
Universal Principles of Design
William Lidwell, Kritina Holden, Jill Butler
Rockport Publishers, Inc.
ISBN: 978-1-59253-587-3
Waiting to be read.

I'm always picking up new books, so there will be more to come!