Foreword by Francesco Balena (Microsoft RD, MS Press author, and .Net2TheMax's founder)
The opportunity of writing a foreword is always a great honor, but if the author is someone I have worked elbow-to-elbow with, then it’s more than an honor: it’s a great pleasure!
I am sure you readers are eager to read the real stuff in following chapters and aren’t very interested in when and how I met Marco a few years ago, but I believe this story is worth telling.
In late ‘90s I started www.vb2themax.com, a Web site that become quickly popular among VB6 aficionados. After a few months Marco began to email me his articles, and it was soon clear to me that I had to do with a smart developer who also had the rare gift of being able to put his experience down in words.
After a couple of years, I decided to write a commercial VB6 add-in and asked Marco to give me a hand. Marco accepted and in a few months we could launch VBMaximizer, a product which was later voted among the best productivity tools by the readers of Visual Basic Programmer’s Journal (now Visual Studio Magazine). The noteworthy detail of this story is that Marco and I worked on this project exclusively via email, without even talking to each other on the phone. I never needed to explain him what I needed and, unbelievably, the code I got from him was virtually defect-free at the first attempt! At the time I didn’t know that Marco was only about 20, otherwise I would have been far more impressed!
I physically met Marco only a few years later and since then we have worked together on many other software projects. Nevertheless, I continue to be pleasingly surprised by the professionalism he puts in everything he does, be it a program, a conference session, an article, or an entire book. Marco is among the few people I know who doesn’t really care for how long it takes to complete a task, provided that the result is something he can be proud of. And the book you’re reading is surely something he can be proud of!
As the author explains in his own introduction, this book is different from most others you can find in bookstores. Most offerings in this area are mainly reference books that dissect every little detail of version 2.0 of ASP.NET or the .NET Framework and that – in the best cases – provide a short listing to illustrate each feature. (I should be familiar with these books very well, having written many reference books myself…)
Marco’s book has a radically different approach: he explains how you can assemble all ASP.NET 2.0’s features and leverage its power to design, develop, and deploy a full-featured Web site. Don’t be fooled by the TheBeerHouse being a fictitious site for a fictitious customer: if the main differences between a sample application and a real-world Web site are the performance, security, robustness, scalability, and care for details that you expect from a commercial site, then Marco’s TheBeerHouse is more real-world than most real-world sites I have seen recently.
In fact, unlike most real site authors, Marco was able to take all the time he needed to implement an impressive list of features and fix all the bugs he bumped into. And unlike most sample application authors, he never took a shortcut and never ignored the problems that developers have to solve every day in the real world. The chapter on the articles/news management and the one on e-commerce took him longer than any other portion of the book. For sure, the overall quality exceeds what you might expect from a mere “book sample” and, as of this writing, it’s the best demonstration of ASP.NET 2.0’s new features, including Microsoft’s own starter kits.
From a teaching perspective, the great value of this book is the rationale underlying all the design and implementation decisions taken in the development phase. Marco does more than just describing what he did: he lists the pros and cons of all the alternatives he tried out and explains how he found the perfect solution (or the best compromise) to each problem. It’s like having an expert sitting besides you, able to read your mind, and ready to fix your mistakes before you have a chance to make them. Can you ask for more?
-- Francesco Balena