From the Author
What This Book Covers
This book will show you some of the best practices in designing an enterprise application that we have found invaluable in our own work. More and more our customers have asked for integration solutions over the last few years. With the introduction of SOAP and XML, we have found that we could use much of the same thinking when designing these applications as we used before. Of course, we have constantly evolved our thinking and refined our design patterns as new techniques have been introduced.
What This Book Does Not Cover
In this book, we will not discuss integration in and of itself. We will instead focus on a general design that can be implemented for many solutions, no matter what their purpose may be. We have tried to cover a broader spectrum than most books do. If there is one thing we have learned, it is that having the big picture is important. If a large project needs to be delivered on time and at the same time fulfill its expectations, developers and designers alike need to have a broad view of it. This obviously means we cannot be as thorough as we would like to be in many areas, but luckily other books are available for this. For example, the Sundblad and Sundblad books are valuable for their design patterns and modeling suggestions. Other books offer deep coverage of operating systems, databases, Web services, XML, and all those areas that are important to us. This book tries to bridge these boundaries so that you can build better applications for your customers or companies.
Building an enterprise application is not an easy task. If you do not design it properly from the beginning, the risk of failure will increase dramatically. Poor design might not be noticed at once, but with time, performance issues as well as extensibility issues are sure to emerge. To avoid this, IT architects and system designers need to have knowledge about what techniques are available and how these can be used.
--This text refers to an alternate
Paperback
edition.
From the Inside Flap
FOREWORD by Sten Sundblad
Coauthor of "Designing for Scalability with Microsoft Windows DNA" and "Design Patterns for Scalable Microsoft .NET Applications"
There's no doubt in my mind that the two authors of this book, Joachim Rossberg and Rickard Redler, share a wealth of knowledge about the options Microsoft offers enterprises willing to create applications on the .NET platform. In this book, they share that wealth of knowledge with the rest of us.
The greatest value from this book probably comes from the higher priorities given to the breadth than to the depth of the books different subjects. Its perspective is that of the strategic architect rather than that of the programmer. This is also the expressed purpose of its authors; in the books introduction, they clearly state that the book is focused on design rather than diving deep into specifics.
True to this statement, the content of the book spans a wide collection of subjects, including technologies as disparate as content management, Unified Modeling Language (UML), Object Role Modeling (ORM), Windows Operating System versions, Network Load Balancing (NLB) , Microsoft Cluster Service (MSCS), Internet Information Services (IIS), and SQL Server.
Having said that, I must also say that some of the books chapters do in fact include surprising levels of detail. This is especially true in Chapter 4, which covers architecture, scalability, availability, and security of the Windows Server family, as well as Chapter 7, which is about Internet Information Services.
In their discussion of the enterprise application architecture in Chapter 5, the authors show that they are with the times; one of their sources of inspiration for this chapter is Microsofts reference architecture for applications and services, which was published in December 2002. This chapter presents a condensed overview of the design patterns first presented by Eric Gamma et al., otherwise known as the Gang of Four. It also contains an overview of the typical application layers that together form an enterprise application, and some useful coding conventions. Mainly, though, the chapter gives an overview of the different technologies that Microsoft has made available to an architect designing such an application, and the pros and cons of each of these technologies. Its worth noticing that even a subject such as content management gets fair coverage in this chapter.
It goes without saying that Web services have a prominent place in the book, having its own chapter (Chapter 6). This is one of the most information-filled chapters, including several code examples. It covers not only basic XML Web services, but also SOAP extensions and some of the Web Services Enhancements that are being standardized. Scalability and performance are all-pervading themes throughout the book. Each time the authors present a product or a technology, they also include a section about how it can affect the performance and scalability of the application being architected. The book is full of recommendations on which powerful hardware to use under different circumstances and how best to configure your system. For example, Chapter 7 gives advice on which performance counters to monitor on your Web server and which kinds of values you should expect and strive for.
This book should be especially valuable for those architects, designers, and developers who are new to enterprise development in Microsoft environments; this includes both those used to designing and building smaller-sized applications for Microsoft Windows and those used to designing and building enterprise-class applications in other environments such as J2EE. It should also be a fine book for university classes, because it gives students such a good overview of the technologies many of them will live with once theyre out of the university. Joachim and Rickard have all the reason in the world to be proud of what they have achieved with this book.
--This text refers to an alternate
Paperback
edition.