You are previewing Applied Architecture Patterns on the Microsoft Platform - Second Edition.
O'Reilly logo
Applied Architecture Patterns on the Microsoft Platform - Second Edition

Book Description

Work with various Microsoft technologies using Applied Architecture Patterns

In Detail

This book provides a method for choosing the right Microsoft application platform technologies to meet the requirements of your solution. It examines proven technologies such as SQL Server, BizTalk, SharePoint, and .NET. The book considers architectural patterns for solutions in the areas of messaging, workflow, data processing, and collaboration.

This book will give you a proven framework to make the optimal technology selection and fulfil your business requirements. We will also discuss building web services and REST services in an SOA environment, as well as different approaches to building presentation layers, integration patterns, and much more.

Applied Architecture Patterns on the Microsoft Platform, Second Edition,is your ultimate guide to Microsoft technologies and beyond.

What You Will Learn

  • Organize the evaluation of candidate solutions to a given business problem
  • Learn about the new features of .NET 4.5 and its capabilities
  • Understand the core components and compelling aspects of BizTalk Server 2013
  • Explore different integration patterns and antipatterns such as point-to-point, message broker, publish/subscribe, data aggregation versus data sharing, and enterprise message bus
  • Understand the architectural principles that SOA brings to the table and how they are different from open API
  • Implement fully automated workflows and workflows with manual operations
  • Use SharePoint to improve content management and collaboration in the enterprise
  • Downloading the example code for this book. 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.

    Table of Contents

    1. Applied Architecture Patterns on the Microsoft Platform Second Edition
      1. Table of Contents
      2. Applied Architecture Patterns on the Microsoft Platform Second Edition
      3. Credits
      4. About the Authors
      5. About the Reviewers
      6. www.PacktPub.com
        1. Support files, eBooks, discount offers, and more
          1. Why subscribe?
          2. Free access for Packt account holders
          3. Instant updates on new Packt books
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Downloading the example code
          2. Errata
          3. Piracy
          4. Questions
      8. 1. Solution Decision Framework
        1. The need for a decision framework
        2. Sources of input
          1. Organizational direction
          2. Functional requirements and use cases
          3. Nonfunctional requirements
          4. Derived (architectural) requirements
        3. Deciding upon your architecture strategy
        4. Technology evaluation dimensions
          1. Organizational context
          2. Solution design aspects
          3. Solution implementation aspects
          4. Solution operation aspects
        5. Applying the framework
        6. Summary
      9. 2. The .NET Framework Primer
        1. An evaluation framework for .NET Framework APIs
          1. Evaluation framework dimensions
          2. Evaluation framework ratings
        2. The .NET Framework
          1. The Base Class Library
            1. The System namespace
            2. The System.Text namespace
            3. The System.IO namespace
            4. The System.Net namespace
            5. The System.Collections namespace
            6. The System.Collections.Generic namespace
            7. The System.Collections.Concurrent namespace
            8. The System.Linq namespace
            9. The System.Xml namespace
            10. The System.Xml.Linq namespace
            11. The System.Security.Cryptography namespace
            12. The System.Threading namespace
            13. The System.Threading.Tasks namespace
            14. The System.ServiceProcess namespace
            15. The System.ComponentModel.Composition namespace
            16. The System.ComponentModel.DataAnnotations namespace
          2. ADO.NET
            1. The System.Data namespace
            2. The System.Data.Entity namespace
            3. The System.Data.Linq namespace
            4. The System.Data.Services namespace
          3. Windows Forms
            1. The System.Windows.Forms namespace
          4. Windows Presentation Foundation
            1. The System.Windows namespace
          5. ASP.NET
            1. The System.Web.Forms namespace
            2. The System.Web.Mvc namespace
            3. The System.Web.WebPages namespace
            4. The System.Web.Services namespace
            5. The Microsoft.AspNet.SignalR namespace
          6. Windows Communication Foundation
            1. The System.ServiceModel namespace
          7. Windows Workflow Foundation
            1. The System.Activities namespace
        3. Summary
      10. 3. The SQL Server Primer
        1. What is included in SQL Server 2012?
          1. SQL Server editions
          2. SQL Server components and tools
          3. SQL Server 2012 abilities
            1. High availability
            2. Manageability
            3. Programmability and maintainability
            4. Scalability
            5. Performance
            6. Security
            7. Data quality
        2. Building the payroll processor application
          1. Use case
          2. Key requirements
            1. Functional requirements – first draft
            2. Requirements analysis
            3. Functional requirements – second draft
            4. Nonfunctional requirements
          3. The database design
          4. The input dataset design
          5. The application prototype design
            1. The ABC client design
            2. The XYZ client design
          6. Lessons learned
        3. New features of SQL Server 2014
        4. Summary
      11. 4. The SSIS Primer
        1. What's new in SSIS 2012
        2. Building the payroll processor application
          1. Adding more details to the RPP use case
          2. Requirements analysis
          3. SSIS package design
          4. Lessons learned
        3. What's new in SSIS 2014
        4. Summary
      12. 5. The BizTalk Server Primer
        1. Using BizTalk in an integration architecture
        2. BizTalk essentials
        3. New features of BizTalk Server 2013
        4. BizTalk Server editions
        5. BizTalk Server abilities
          1. High availability
          2. Reliability
          3. Manageability
          4. Programmability
          5. Scalability
          6. Performance
          7. Security
        6. Building the BizTalk application
          1. The use case of a web hosting company
          2. Requirements analysis
          3. BizTalk Server installation and setup
          4. Implementing the BizTalk solution
          5. Lessons learned
        7. Summary
      13. 6. The SharePoint Server Primer
        1. The SharePoint editions
        2. The SharePoint platform
          1. The SharePoint server topology
          2. The SharePoint server roles
            1. The Web Server role
            2. The Application Server role
            3. The Database Server role
        3. Administration and management
        4. Core concepts and capabilities of SharePoint
          1. SharePoint web applications
          2. SharePoint content database
          3. SharePoint site collections
          4. SharePoint sites
          5. SharePoint lists
          6. SharePoint columns
          7. SharePoint content types
          8. SharePoint views
          9. SharePoint document libraries
          10. SharePoint web parts
          11. Apps for SharePoint
          12. SharePoint workflows
          13. SharePoint forms
          14. SharePoint service applications
          15. SharePoint Search
        5. SharePoint extensibility
        6. SharePoint APIs
          1. SharePoint Server Object Model
          2. SharePoint web services
          3. SharePoint .NET Client-side Object Model
          4. SharePoint Silverlight Client Object Model
          5. SharePoint JavaScript Object Model
        7. SharePoint development tools
          1. SharePoint Designer
          2. Office Developer Tools for Visual Studio
          3. "Napa" Office 365 Development Tools
        8. Summary
      14. 7. Other Microsoft Technologies
        1. Operating systems
          1. Windows Server
            1. Virtualization
          2. Desktop operating systems
          3. The Windows Phone OS
        2. The Microsoft Office software
          1. Microsoft Exchange Server 2013
        3. Software development tools
        4. Cloud computing
          1. Windows Azure
        5. Summary
      15. 8. Integration Patterns and Antipatterns
        1. Integration styles and challenges
        2. Point-to-point integration
        3. The federated request pattern
          1. Working with the use case – purchasing power calculation
            1. Key requirements
          2. The federated request pattern description
          3. Candidate architecture for federated requests #1 – BizTalk
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          4. Candidate architecture for federated requests #2 – .NET Service (WCF)
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          5. Architecture selection
          6. Building the solution
            1. Lessons learned
        4. The message broker pattern
          1. Message broker versus point-to-point integration
        5. The guaranteed delivery problem
          1. Working with the use case – health care industry
            1. Summarized key requirements
            2. Additional facts
          2. Pattern for guaranteed delivery
          3. Candidate architectures
          4. Candidate architecture for guaranteed delivery #1 – Windows Azure Service Bus
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          5. Candidate architecture for guaranteed delivery #2 – BizTalk Server
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          6. Candidate architecture for guaranteed delivery #3 – SQL Server Service Broker
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          7. Architecture selection
          8. Building the solution
            1. Setting up the development foundation
            2. Building the canonical solution artifacts
            3. Building the FDA subscriber solution artifacts
            4. Configuring the data publisher and FDA subscriber
            5. Building the website database subscriber solution artifacts
            6. Configuring the website database subscriber
            7. Lessons learned
        6. The Publish/Subscribe pattern
        7. Moving to Enterprise Service Bus
        8. Summary
      16. 9. Web Services and Beyond
        1. Service-oriented architecture
        2. Enterprise Service Bus
          1. Use case – a commodity trading firm
          2. Key requirements
            1. Additional facts
          3. Pattern description
          4. Candidate architecture – BizTalk ESB
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          5. Architecture selection
          6. Building the solution
            1. BizTalk ESB Toolkit installation and setup
            2. Solution setup
            3. Deploying and using a monolithic solution
            4. PO status codes
            5. Item inventory check status codes
            6. Current behavior of the system
            7. Utilizing the ESB Toolkit
            8. Using existing transformations within an ESB Itinerary
            9. Using the itinerary service broker pattern
          7. Lessons learned
        3. RESTful services
          1. Use case – shopping cart
          2. Key requirements
          3. Additional facts
          4. Pattern description
          5. Candidate architecture – RESTful WCF Services
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          6. Building the solution
            1. Solution components
            2. Solution setup
            3. WCF RESTful service description
          7. Lessons learned
          8. Future of RESTful services
        4. Summary
      17. 10. Data Exchange Patterns
        1. File transfer
        2. A shared database
        3. Data replication and synchronization
          1. The SQL Server replication
          2. Data synchronization using Sync Framework
          3. Data synchronization using messaging
        4. Data migration
        5. The extract, transform, and load pattern for centralized data aggregation
          1. Use case – master patient index
          2. Pattern description
            1. Extraction
            2. Transformation
            3. Loading
          3. Key requirements
          4. Candidate architecture #1 – SQL Server
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          5. Candidate architecture #2 – SSIS
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          6. Candidate architecture #3 – BizTalk
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          7. Architecture selection
          8. Building the solution
            1. Data structures
            2. Lessons learned
        6. Multiple master synchronization
          1. Use case – master data management for WWW
            1. Key requirements
            2. Additional facts
          2. Pattern description
          3. Candidate architecture
            1. Solution design aspects
            2. Solution operations aspects
            3. Organizational aspects
            4. Solution evaluation
          4. Architecture selection
          5. Building the solution
            1. Fetching relational data
            2. Master data services
            3. Unstructured data
            4. Setting up a search
            5. Lessons learned
        7. Data sharing and federation
          1. Use case – real-time data retrieval from highly sensitive data sources
          2. Data warehouse challenges
          3. Another approach – data federation
          4. Pattern description
          5. Key requirements
          6. Candidate architecture #1 – BizTalk Server
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          7. Candidate Architecture #2 – .NET
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          8. Architecture selection
            1. Lessons learned
        8. Summary
      18. 11. Workflow Patterns
        1. Fully automated workflows
          1. Use case – a single dashboard view
            1. Key requirements
            2. Additional facts
            3. The Scatter-Gather pattern
          2. Factors affecting implementation details
          3. Candidate architecture #1 – BizTalk Server
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          4. Candidate architecture #2 – .NET WF service
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          5. Architecture selection
          6. Building the solution
            1. Setup
            2. Building the service aggregator workflow service
              1. Setting up the project
              2. Implementing the AccountAggregator workflow
            3. Consuming the service aggregator workflow service with ASP.NET
          7. Lessons learned
        2. Human workflows
          1. Use case – repair/resubmit with human workflow
            1. Key requirements
            2. Additional facts
            3. Pattern description
          2. Candidate architecture #1 – BizTalk Server
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          3. Candidate architecture #2 – .NET workflow and SharePoint
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          4. Architecture selection
          5. Building the solution
            1. Setup
            2. Building the core workflow
              1. Checking the environment
              2. Implementing the top-level workflow
              3. Implementing the flowchart workflow logic
              4. Implementing the Send Email activity
              5. Implementing the Receive Payment Notice activity
              6. Implementing the Send Success Notification activity
              7. Implementing the Send Email Error Notification activity
              8. Implementing the Receive Updated Data activity
            3. Testing the workflow
          6. Lessons learned
        3. Summary
      19. 12. Presentation Layer Patterns
        1. Building presentation layers
          1. Desktop applications
            1. Windows Forms
            2. Windows Presentation Foundation
            3. Microsoft Office VBA applications
            4. InfoPath
          2. Web applications
            1. ASP.NET
            2. Silverlight
            3. Scripting with JavaScript and jQuery
          3. Mobile development
        2. MVC, MVP, and MVVM
          1. The model-view controller pattern
          2. The model-view-presenter pattern
          3. Model-View-View Model
        3. Working with a use case – a user interface for the shopping cart
          1. Key requirements
          2. Candidate architecture #1 – Silverlight
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          3. Candidate architecture #2 – ASP.NET MVC
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          4. Architecture selection
          5. The framework description
          6. User interface development
            1. The ASP.NET MVC project
          7. Lessons learned
        4. Working with a use case – a desktop time billing application
          1. Key requirements
          2. Candidate architecture for the desktop accounting application #1 – intranet with Silverlight
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          3. Candidate architecture for the desktop accounting application #2 – Desktop WPF app
            1. Solution design aspects
            2. Solution implementation aspects
            3. Solution operations aspects
            4. Organizational aspects
            5. Solution evaluation
          4. Architecture selection
          5. Pattern implementation description
          6. User interface development
          7. Lessons learned
        5. Summary
      20. 13. Conclusion
        1. Patterns for software-intensive systems
        2. Where to go next
      21. Index