Book Image

Applied Architecture Patterns on the Microsoft Platform (Second Edition)

Book Image

Applied Architecture Patterns on the Microsoft Platform (Second Edition)

Overview of this book

Table of Contents (20 chapters)
Applied Architecture Patterns on the Microsoft Platform Second Edition
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Preface

Once a small company established in 1975, Microsoft is one of the leading software companies in the world today. Over decades, Microsoft has been bringing new technologies to all of us. Some Microsoft products did not have a long life, whereas others became leading software products, supporting a vast number of solutions in the world for many years. Today, Microsoft delivers operating systems for servers, desktops, tablets, and phones. It has dozens of server products, such as SharePoint, BizTalk, Exchange, or SQL Server. It supports a powerful development framework, .NET, as well as development and testing tools. Its Visual Studio is one of the best Integrated Development Environments, and its Team Foundation Server covers all aspects of application lifecycle management. Most of us use applications from the Microsoft Office Suite, and many businesses have deployed Microsoft Dynamics solutions. To make a long story short, the world of Microsoft is huge.

How does an architect, especially a solutions architect, find his way in this world? Typically, architects want to use experience of other architects in the form of patterns and best practices. This book will help you navigate through the ocean of Microsoft technologies and provide guidance to select proper technologies for chosen patterns. We shall look at the patterns from an architect's point of view, focusing on major groups such as data exchange patterns or integration patterns.

This book has significantly changed since its first edition. First of all, it covers the changes that have happened since 2010; for example, new versions of all products, including major changes to the foundational software such as .NET and SQL Server. In addition to this, the second edition discusses .NET and SharePoint, which were not covered before. We also have added some related patterns, including presentation layer patterns.

What this book covers

Chapter 1, Solution Decision Framework, provides an approach to evaluating technologies that is used for different patterns described in the book.

Chapter 2, The .NET Framework Primer, presents an overview of the latest .NET version, and an assessment of the most notable namespaces in .NET based on their maturity, productivity, performance, and availability.

Chapter 3, The SQL Server Primer, discusses the capabilities of SQL Server and presents a typical use case.

Chapter 4, The SSIS Primer, discusses the capabilities of SQL Server Integration Services as an ETL tool and presents a typical use case.

Chapter 5, The BizTalk Server Primer, provides an introduction to the major architectural integration styles, discusses BizTalk essentials, and shows how BizTalk fits in to an integration use case.

Chapter 6, The SharePoint Server Primer, talks about SharePoint Server capabilities as a platform and presents major concepts and notions related to this.

Chapter 7, Other Microsoft Technologies, provides an overview of many Microsoft products that are last but not least; these include operating systems, Microsoft Office and Exchange, software development tools, and cloud computing.

Chapter 8, Integration Patterns and Antipatterns, presents an introduction to the major architectural integration patterns such as federated request and Publish/Subscribe, discusses the problem of guaranteed delivery, and presents use cases corresponding to different patterns.

Chapter 9, Web Services and Beyond, discuses web services, Service-Oriented Architecture, and Enterprise Service Bus.

Chapter 10, Data Exchange Patterns, continues the discussion on integration patterns started in the preceding two chapters. It talks about data synchronization and migration, ETL, multiple master synchronization, data sharing, and data federation. Most complex patterns are presented with use cases and solutions.

Chapter 11, Workflow Patterns, discusses two major types of workflows: fully automated workflows and human workflows.

Chapter 12, Presentation Layer Patterns, presents the variety of Microsoft technologies for building user interfaces and discusses the most popular architectural patterns, such as MVC, MVP, and MVVM.

Chapter 13, Conclusion, wraps up the book discussions and recaps the decision-making process.

What you need for this book

In order to work with the code examples that accompany this book, you need to have the following software:

Windows OS:

  • Windows Server 2012

  • Windows 7 or newer

MS Servers:

  • SQL Server 2012 (including SSIS) or newer

  • BizTalk Server 2013 (including the ESB toolkit)

  • SharePoint Server 2013

Development tools:

  • Visual Studio 2012 or newer

  • MS SQL Server Data Tools—BI for Visual Studio 2012

Miscellaneous:

  • .NET 4.5 or newer

  • AppFabric 1.1

Who this book is for

This book is not a tutorial on Microsoft technologies, nor does it provide code that you can copy-and-paste to your solution to make everything start working miraculously.

This book is intended to be a tool for architects who need to make a decision about the software to use for their solutions. They will also appreciate the presented solution decision framework. The book is also suitable for other IT professionals who want to get an introduction to major Microsoft products and their potential usage.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "The System namespace is both the root namespace for the .NET Framework and contains the basic building blocks of the .NET Framework."

A block of code is set as follows:

private static int CreateAndEnumerateList(int maxValue)
{
   var list = new System.Collections.ArrayList(maxValue);
   foreach (var val in Enumerable.Range(0, maxValue))
   {
      list.Add(val);
   }
   var total = 0;
   foreach (int val in list) //implicit type conversion
   {
      total += val;
   }
   return total;
}

Any command-line input or output is written as follows:

EsbImportUtil.exe /f:"<Path to folder with Itinerary>\ SmcOneWaySimple.xml" /c:deployed

New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "In order to complete the package to process all input files, we need to go back to the Control Flow tab."

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply send an e-mail to , and mention the book title via the subject of your message.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code

You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the errata submission form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.

Please contact us at with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact us at if you are having a problem with any aspect of the book, and we will do our best to address it.