Updates
Latest Tweet
What's New?
Check out for latest innovation, a computer based training video collection
Like this Page
Maximizing ASP.NET: Real World, Object-Oriented Development Review by Eric W. Engler
How to build applications, not just pages using ASP.NET 2
This book attempts to teach developers how to use ASP.NET *correctly* to build applications, rather than pages. However, the author has tried to cover too much ground in a book of only 336 pages.
The first two chapters attempt to teach non-OOP programmers how to do OOP programming in both C# and VB.NET. The lack of detail and exhaustive examples make this nothing more than a review for experienced OOP programmers. Anyone seeking to learn OOP programming from these 34 pages will be disappointed.
The rest of the book comes closer to meeting his objective. His constant discussion of coding to interfaces and n-tier development are the high points of this book, and this alone would be reason for some developers to buy the book.
The author excels in giving a lot of insights into new coding techniques, and even declarative programming that are new in ASP.NET 2.0. Most of the book uses ASP.NET 2.0 examples, but beta 2 had not yet been released, so there may be some changes needed to some of his code examples when the final version of ASP.NET 2.0 is released. I couldn't find any errata online, but I hope they publish any changes that may be needed.
The book sometimes uses code samples from the author's free POP Forums application as a real-world case-study. He gives some small code snippets, and he explains his methodology. It's not bad from an architecture viewpoint: he has abstracted his data layer to such an extent that you only code to an interface. This is a good idea, and it lets you plug in a whole different low-level tier to replace SQL Server with Access, for example.
He explains the trade-offs involved in separating the data-access tier from the business object tier, and his discussion is both interesting and quite relevant to real-world programming.
He covers caching thoroughly with practical code examples that go well beyond the simple coverage you see in many books. He gives an excellent explanation of advanced concepts like HTTP Handlers, HTTP Modules, and server controls, but his coverage of web services seems to head off in an odd direction, and there is no mention of Service Oriented Architecture.
The membership and security features of ASP.NET 2.0 are well-explained and he even explains how to build your own membership provider! Likewise, when he covers Profiles, Themes, and Skins he also explains how to build your own profile provider.
There is no discussion of exception handling in a multi-tier web application, and I could not see any exception handling code in any of his examples. To be fair, this code might exist in the version of POP Forums source code you can download from his site, but it seems to me a book on Maximizing ASP.NET should probably discuss this important aspect of application architecture.
One of the poorly written areas is chapter 14. After spending most of the book discussing ASP.NET 2.0, chapter 14 mysteriously drops back to cover some simple configuration settings of Visual Studio 2003, and he doesn't even give us any insight on what settings we might want to change in either Visual Studio 2003 or Visual Studio 2005.
One of the best chapters in the book covers Test-Driven Development (TDD), using the freeware NUnit tool. This is only an introduction to NUnit, but it's an important tool that fits in well with modern agile software development methodologies.
His last chapter on advanced topics is a bit like flying over a city at 30,000 feet and having the stewardess point out interesting places below. Each of the advanced topics he covers should have been a separate chapter all by themselves: streams, networking, and threading.
On balance, this is an interesting book that would have great value in teaching new, but somewhat experienced, ASP.NET developers how to move up from coding simple applications to do things in a more Enterprise-friendly, scalable manner using many of the new features in ASP.NET 2.0.