- You'll save an extra 5% on Books purchased from Amazon.ca, now through July 29th. No code necessary, discount applied at checkout. Here's how (restrictions apply)
ASP.NET 3.5 Enterprise Application Development with Visual Studio 2008: Problem Design Solution Paperback – Feb 3 2009
Special Offers and Product Promotions
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
Getting the download link through email is temporarily not available. Please check back later.
To get the free app, enter your mobile phone number.
From the Back Cover
ASP.NET 3.5 Enterprise Application Development with Visual Studio® 2008
If you are faced with the many challenges that come with delivering business applications, experienced author and ASP.NET expert Vince Varallo is here to help. He arms you with the necessary tools for developing ASP.NET applications with Visual Studio 2008 that are elegant, easy to maintain, and can be extended to create solutions for particular problems.
Putting Wrox's popular Problem Design Solution format into practice, each chapter features an individual scenario and provides a description of the problem to be addressed, the design considerations for choosing a solution, and the solution that ultimately gets to the bottom of the problem. As Varallo walks you through the solutions, each of the business requirements are examined, while the latest enhancements in ASP.NET 3.5 and Visual Studio 2008 are used so that you can implement them in a reusable framework. Packed with code samples, this hands-on guide will provide you with a foundation that you can extend to meet the specific business needs of your organization.
What you will learn from this book
New features in the .NET Framework 3.5 such as lambda expressions, extension methods, partial methods, LINQ, and ASP.NET Ajax controls
Design patterns for using LINQ to SQL in the data access layer
Best practices for using patterns for data entry, auditing, workflow, and event notification
How to develop and customize server side controls
How to create a dashboard using the ASP.NET web part controls
Implement the Microsoft Exception Handling App Block
Who this book is for
This book is for developers and system architects who are responsible for designing or developing enterprise-wide applications, departmental applications, portals, or any form of business application. Experience with Visual Studio, the .NET Framework, ASP.NET, and C# is helpful but not required.
About the Author
Vince Varallo has been developing applications for over twelve years using Microsoft technologies and is currently the Director of Application Development for MTI Information Technologies. He develops marketing applications for the pharmaceutical industry using ASP.NET and SQL Server. Prior to working at MTI, he worked in the clinical and the financial industries on a wide array of projects such as clinical data management systems, internal portals, and treasury workstation software. Vince enjoys exploring new technologies but always finds time for golf, biking, and watching the Phillies. He previously co-authored Professional Visual Basic 6: The 2003 Programmer’s Resource.
Most Helpful Customer Reviews on Amazon.com (beta)
Each chapter is set up in the same format, and it's a decent format - outline the problem, explain the design, implement the solution. The chapters are:
1) A Framework for Enterprise Applications
2) The Data Access Layer
3) Designing the Business Logic Layer
4) The User Interface Layer
5) Exception Handling
6) Role-Based Security
7) The Workflow Engine
10) The Query Builder Control
11) The Dashboard
13) Code Generator
If you go in never having built a multi-tier app where you separate your data access from your business logic and your UI, this is a good intro to that. The explanation of the separation and showing how to keep those things separated is a good education for the ASP.NET developer who has only ever just thrown a DataSource on a page and let the controls do the work.
If you have any experience with multi-tier apps, though, the goodness, unfortunately, is not to be found. Even if you have a light amount of experience, I probably wouldn't recommend this book since it could do more damage than help. There are several reasons for this.
First, there are little things through the code that are just bad practice.
The naming conventions for everything in this book are absolutely horrible. "ENTBaseBO" is the name of the base class that all enterprise business objects derive from. The names only get worse and more unintelligible and distracting from there. When cruising through the method bodies presented you sometimes wonder if he's using Hungarian notation in C# and then you realize that it's just bad naming.
Almost every exception that gets thrown in the code is the generic System.Exception type. Even if a more specific exception type would be more appropriate, it's always a general Exception.
Rather than overriding the ToString() method on business objects, a new "GetDisplayText()" method gets added in one of the myriad base classes which gets used throughout the book when displaying the object in UI.
The data access layer uses the Microsoft Patterns and Practices Data Access Application Block, which is good... but the book urges you to use an old version of it "because it's simple to use and easy to understand" - even though the new one has many improvements over the old.
Larger things start creeping up on you once you get past the smaller stuff.
There's no localization and no mention of it. Every string seen in any UI is hardcoded somewhere in the system (not necessarily just in the UI) rather than being stored in resource files. Even if you only plan on supporting one language, it's still good practice to separate your strings from your code.
There are no tests anywhere and no mention of them. We're building an enterprise application and we're not going to test it? Really?
Rather than use standard functions built into ASP.NET like the SiteMapProvider and navigation controls that can bind to it, a lot of effort goes into writing your own site map management system and custom controls to bind to that proprietary system. Role-based security that doesn't hook into the RoleProvider.
Chapter 7, on "the workflow engine," is almost 100 pages showing you how to write a proprietary state machine workflow system. I actually had to flip back and look at the cover to make sure we were in .NET 3.5, then I got really curious as to why this wasn't a 10 page chapter showing how easy that sort of thing is to implement using Windows Workflow Foundation, which comes for free with the .NET framework.
Why is the "code generator" chapter about creating a Visual Studio wizard but has no mention of T4 or any third-party code generator? With all the code generation options out there, would I really want to roll my own using StringBuilders?
Other stuff just sits in the background and bugs at you more subconsciously. The code snippets in places are inconsistently formatted and hard to read. You start wondering why there's a little bit of logic in stored procedures and a little bit of logic in the data access layer and a little bit of logic in the business layer and whether there might have been a way to break that up in a way that would be more maintainable. No mention at all of design patterns. No mention of MVP or MVC.
Long story already too long, if you've never written an n-tier application, if you're used to just creating a single web application project that just has pages in it that were created in the Visual Studio designer and that's it... this book will give you some ideas about how to change the way you look at your application's structure and separate the logic out of the codebehind of your pages into different layers. If you have written any sort of n-tier application before, this is most likely not for you.
The author did a great job explaining the concept of building an n-tier web application and why it was import to have the separation. The reading was easy to understand and follow, as were the sample codes. Explanations of the code were very detailed, which made comprehending the code easy.
Another interesting concept the author added was the email service application that he included. It was a very "neat" way of implementing how notifications are sent out.
I would highly recommend this book to anybody looking to learn ASP.NET as well as building an enterprise level applicaton!!!
Each chapter of the book looks to layout the fundamentals of a business application, starting with the data access, business, and presentation layers. The rest of the book is spent looking at the various features that the application needed (exception handling, security, workflow, etc.). Most of the scenarios in the chapters use a code-specific implementation to solving the problem, rather than using other tools available to developers (for instance, the workflow chapter doesn't leverage Windows Workflow Foundation). Though there are a few tools used, like Crystal Reports and Enterprise Library.
The book has an interesting approach in how it implements the business logic; business applications are much different than personal web sites and other application types because they depend on the success of their business rules. That is one of the focuses of the book, setting up how to structure your code so that you may handle the various business needs of the application.
The chapters that create specific features for the application (reporting, workflow, etc.) use a code-specific approach to creating these features. The book lays out the changes to the database and data model, illustrates the stored procedures for the change, and then moves into the design solution. Each new feature has a new ASP.NET page that he demonstrates fully along with any changes to styles, master pages, etc. Each book discusses the chapter to the fullest detail, from the proc to the finished solution.
The style of the book typically follows the explanation of the business problem at the beginning. When the book illustrates code, the author shows the code first, and follows up with an explanation of the solution. In the design section, the book does discuss the various components that it does use to complete the solution (such as Crystal Reports for reporting and Enterprise Library for exception handling).
While I don't know that I would use the same architecture, I do like some of the features he implemented in the app and look to see how I may utilize this for my own development.
This book faithfully follows the very popular Wrox "Problem - Design - Solution" format, evolving chapter by chapter while analyzing business requirements, examining various design scenarios, and implementing a beginning-to-end solution in a reusable framework. The book uses LINQ to SQL for data access (though you could easily adapt this to Entity Framework or your third-party ORM of choice), and unlike the BeerHouse books, the emphasis is more on developing line-of-business applications. It covers a lot of important material the 3.5 BeerHouse book won't go into, such as workflow, notification, reporting, and auditing. It also incorporates a number of current architectural trends, such as dynamic querying, code generation, and so on.
For those not familiar with author Vince Varallo, you are in for a treat. His writing style is clear, concise, and easy to follow. Explanations are well-detailed and are liberally augmented by code samples.
Still waiting for your BeerHouse fix? I urge you to give ASP.NET 3.5 Enterprise Application Development with Visual Studio 2008 Problem - Design - Solution a shot. All in all, a very highly recommended read.
Some examples of this include:
* Use of stored procedures instead of an ORM (the book does use LINQ to SQL with Stored Procedures, almost defeating the purpose of using L2S in the first place!)
* Very poor naming conventions. ENTBaseBO, seriously? I'm surprised there isn't Hungarian Notation all over the place.
* Zero use of design patterns - just spaghetti code stuffed in code-behind files. That practice went out of style in 2005, and even before that was considered bad. Nothing even remotely resembling proper software design.
* Ridiculous practices that stink of VB6: Instance methods to perform CRUD functionality that return booleans? Are we back in the age of return codes?
* No thought given to testing at all, for a so-called "enterprise" application that requires tests to be maintainable.
I would have expected much better from a book attempting to instruct professionals on the correct way to develop software. My advice is to avoid this book. There are much better and more craftsmanship-oriented books out there to demonstrate the right way to program using design patterns, mature tools (including some open-source tools) and follow real software development principles. This book misses the mark and while it does show you a full application, the way it does so highlights very poor development practices that might suffice for one-off applications but not for anything remotely resembling applications that need to be maintained, let alone an enterprise solution. In fact, I think that someone at my current job must have picked up a copy of this book and followed it verbatim because these poor practices have infected every aspect of my company's software application!
If you are a professional developer, give this book a wide berth. You will not learn any real design patterns or proper software architecture, only how to create an unmaintainable mess of code in ASP.NET that your co-workers will despise you for plaguing them with.
Look for similar items by category
- Books > Computers & Technology > Microsoft > Development > .NET
- Books > Computers & Technology > Programming > Languages & Tools > C#
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
- Books > Computers & Technology > Software
- Books > Computers & Technology > Web Development > Programming > ASP
- Books > Computers & Technology > Web Development > Programming > ASP.NET
- Books > Textbooks > Computer Science & Information Systems > Programming Languages
- Books > Textbooks > Computer Science & Information Systems > Software Design & Engineering