Programming .NET 3.5: Building N-Tier Applications with WPF, AJAX, Silverlight, LINQ, WCF, and More
by Jesse Liberty and Alex Horovitz
Published by O’Reilly
http://oreilly.com/catalog/9780596527563/
Review by
Bill Coan
Some programming books suffer from the Three Little Bears syndrome: they’re too detailed or not detailed enough, too conceptual or not conceptual enough, too much of a tutorial or not enough of a tutorial, and so on. The authors of Programming .NET 3.5 solved this problem by establishing clear goals for their book and by combining the insights of a senior program manager at Microsoft (Jesse Liberty) with those of a chief technology officer at an application development firm (Alex Horovitz).
Programming .NET 3.5 takes an integrated approach to Windows Presentation Foundation for Windows applications, Silverlight for delivery of rich internet applications across platforms and browsers, Windows Communication Foundation for web services and service-oriented architectures, Windows Workflow Foundation, CardSpace for user-negotiated identities, and ASP.NET/AJAX for rich client applications. The book’s goal is to show how these elements can leverage Model-View-Controller, n-tier, and other long-celebrated architectural patterns while augmenting object-oriented programming with new declarative programming capabilities.
The book is divided into three parts: Presentation Options, Design Patterns (characterized as “an interlude”) and The Business Layer.
Presentation Options provides an excellent introduction to eXtensive Application Markup Language, the declarative syntax for desktop-based presentations. This part of the book shows how to build a rich desktop application and later a real-world web-based AJAX-enhanced application using tools that move fluidly between XAML and managed code. Additional topics include an introduction to the Microsoft AJAX library and to the rich interactivity of browser-deployed Silverlight applications.
The Interlude on Design Patterns examines how .NET 3.5 promotes the use of architectural patterns that have only been celebrated with lip service until now.
The Business Layer part of the book shows how to replace ADO.NET classes with Language Integrated Query (LINQ) and defines SOA and shows how to implement SOA with Windows Communication Foundation. Most important, this part of the book presents a complete example of a WCF application and a complete workflow application, and also shows how to apply CardSpace for establishing identity.
The book is intended for experienced .NET programmers who have written Windows applications and/or web applications for the Windows platform and who are comfortable with C# or VB.NET. Motivated Java-experienced readers should have little trouble, especially if they have previous experience with .NET.
Liberty and Horovitz should be commended for setting and then meeting the clearly spelled out goals for their book. The book is well organized and well written, and it follows the time-honored principle of moving from the simple to the complex. Assuming you’ve installed .NET Framework 3.5 and Visual Studio 2008, then this book just might be the very fastest way to bring yourself up to speed on Microsoft’s latest.