Distributed Application Architecture and Design

This course teaches a .NET architect and developer how to create fault tolerant, scalable applications and services that can be used across a variety of end user and internal systems.

Who Should Attend

Anyone who wants to understand how to build scalable, distributed applications that integrate with the .NET platform. Developer Leads and .NET Architects will find the coverage particularly useful. Developers who need to gain a deeper understanding of how to build applications that use WCF, MSMQ, Windows Process Activation Services, and distributed transactions should also attend.

Click here for On-Demand! course    |    Download printable course description






course details


Technologies: C#, .NET 3.5, .NET 4.0, WCF, WF, REST
Language(s): C#
Length: Five days, 9am-5pm
US Class Price: $2599
UK Class Price: $2999

course instructors


Scott Seely

Bookmark and Share


Course outline:

Day 1

  Introduction to Distributed Systems - What is a distributed system?
- Why do we distribute tasks and responsibilities?
- Look at where the components live.
- An overview of the technologies used by .NET developers (WCF, IIS, MSMQ, WAS, MS-DTC, SQL Server Service Broker, Workflow Foundation, BizTalk, Serialization)

  Distributed Application Design Patterns, Part 1 - Message exchange patterns
- Validation of request
- Sanitizing response
- Routing patterns
- Workflow patterns

  Distributed Application Design Patterns, Part 2 - Versioning Patterns
- Discovery Mechanisms
- Subscription Based Services
- Exception Handling Patterns

  WCF - Connected Systems
- Distributed technologies
- SOAP vs. REST designs
- Service Orientation
- Introducing WCF
- Services and endpoints
- Consuming WCF services
- Common questions

Day 2

  Designing SOAP Services - WS-* Choreographies
- Transport Neutrality
- Interoperability with other frameworks
- Integration with other systems

  Designing REST Services - Service design styles
- Understanding REST
- Resource Oriented Architectures (ROA)
- WCF support for REST/ROA
- Enabling Ajax/JSON integration
- Syndication programming model
- OData/WCF Data Services

  Versioning - Versioning Data
- Versioning SOAP Endpoints
- Versioning REST Endpoints

  Serialization - Simplified XML Serialization
- Full XML Serialization
- JSON
- Binary Serialization

Day 3

  Designing Long-Running Systems - Building long-running systems
- Event-driven (reactive) architectures
- Responding to human events
- Overview of Microsoft technologies: WF/AppFabric, BizTalk Server, and SharePoint

  Workflow/AppFabric Foundation - Building reactive systems
- Components of the WF framework
- Understanding workflows and activities
- Introduction to AppFabric
- Hosting workflow services via AppFabric

  BizTalk Server - Microsoft’s integration server product
- Integration through “messaging”
- Adapters, pipelines, maps, etc
- WCF integration for SOAP/REST
- Orchestration designer and runtime

  SharePoint/MOSS - Microsoft’s “human workflow” technology
- Notifications in SharePoint
- Excel Services
- Word Automation Services

Day 4

  Identity Architecture - The "CIA" of security
- Understanding Trust
- Credentials and authentication
- Authorization options (eg. SAML)
- Federation and claims

  Transactions - Anatomy of transactions
- Using transactions in Windows
- Unit of Work modeling
- When to use compensation instead of transactions

  Concurrency - Using the Thread Pool
- Asynchronous operations/callbacks
- Reactive Extensions for .NET
- Parallelism in .NET 4.0
- Patterns for building concurrency

  Manageability - Configuration
- Performance Counters
- WMI Instrumentation
- Event Log
- System.Diagnostics Tracing
- ETW

Day 5

  Scalability - Stateless design
- Database Sharding
- Optimizing for Reads
- Optimizing for Writes
- Caching (memcached and Windows Server AppFabric)
- Eventual Consistency

  Reliability - Building reliable systems
- Reliable messaging (WS-ReliableMessaging)
- Sessions vs. reliable sessions
- Queued messaging
- Combining queues and transactions
- Compensating transactions

  Cloud Computing - Overview of Cloud Space
- Comparison of Cloud Providers
- Windows Azure Architecture
- Azure AppFabric
- Integration with on premises systems