Course - Microsoft "Patterns & Practices"
Description of Microsoft "Patterns & Practices"
This course is aimed mainly at developers and solutions architects, who need the guideline in architecture development and application projecting using Microsoft .NET Framework platform.
The course will be useful to any specialist who is interested in architecture and application design, and eager to understand design patterns, offered by the Patterns & Practice group coming from good application design using Microsoft .NET Framework
• Knowledge of design patterns GoF
• Knowledge of WCF technology
Who should attend
Lesson 1. Design patterns of composite WPF and Silverlight apps. Part 1
Patterns of category "Modularity" and "Testing". Creation of a service locator, dependency injection and inversion of control.
Service Locator - Creates a locator service, which includes links to services and encapsulates the logic for their accommodation. In your classes, use the service locator for getting service instances.
Dependency Injection– Instances of dependency should not be created in the class explicitly, but presented declaratively in its description. Use object Builder to obtain valid instances of object dependencies and their transfer to the object when its creation and / or initialization.
Inversion of Control - Delegation of selection function of a particular type of class dependencies implementation to external component or source
Lesson 2. Design patterns of composite WPF and Silverlight apps. Part 2
Patterns of category "Testing".
Separated Presentation - Separation of presentation logic from business logic. Pattern Separated Presentation can be implemented in different ways, such as Supervising Presenter, or Presentation Model, etc.
Presentation Model - delegates responsibilities for the visual display and the implementation of state and behavior of the user interface (UI) between different classes, which are called the presentation view and the presentation model respectively. Class of presentation view manages UI controls. The class of presentation model encapsulates the behavior of access to the model and provides an open interface that is easy to work for view (for example, through data binding), being thus, as a facade for the model with the typical UI state and behavior.
Supervising Presenter и Supervising Controller - Distributes responsibilities for the visualization and behavior of event handling between different classes, which are called the presentation view and the presenter respectively. The view class manages UI controls, passing user events topresenter class. Presenter class includes logic to respond to events, update the model (business logic and application data) and control the state of the view class.
Lesson 3.Patterns of data transmission. Data movement. Part 1
Data Replication - Creates a set of replication and replication link for data transmission between two locations. The pattern describes a general process, which is detailed in the patterns of data transmission, described in this table.
Master-Master Replication - Copies data from source to a targetplace, detect and resolve any update conflicts that have arisen since the last replication (due to changes of the same data of source and target). The solution includes two replication cross-links between the source and target location. Both connections transmit the same set of replication in both directions. Suchpairsofreplicationlinksarecalledrelated.
Master-Subordinate Replication - Copies data from source to target place without regard to updates that might have place for the replication set in a target location since the last replication.
Master-Master Row-Level Synchronization - Uses a pair of related replication links between the source and the target location and controller of synchronization to manage the synchronization in both directions. To synchronize more than two copies of the replication set, create a corresponding pair of replication links for each additional copy.
Lesson 4. Patterns of data transmission. Data movement. Part 2
Master-Subordinate Snapshot Replication - Creates a copy of the source replication set at a particular time (known as a snapshot), replicate it to the target location and overwrite the target data. In this case, any changes that may have occurred in the target replication set are replaced by a new set of replication source.
Capture Transaction Details - Creates additional database objects such as triggers and (shadow) of the table, and writes the changes of all tables, included in the replication set.
Master-Subordinate Transactional Incremental Replication - Requestsfrom source the information about completed transactions and repeats the transactions in the correct sequence when writing to the target location.
Master-Subordinate Cascading Replication - Increases the number of replication links between the source and the target by adding one or more intermediate targets between the source and the end target databases. These intermediate targetsare storage of data, receivinga set of replication from source and thus act as a target location for a previous replication link. When transferring data, using such replication link the previous intermediate target already acts as a source, and so on, until you reach the ultimate target of the cascade.
Lesson 5. Patterns of data transmission. Pattern prototypes.
Maintain Data Copies - Performs synchronous record to data copies from the source application or synchronous data publication to a local cache for further transmission by asynchronous service.
Application-Managed Data Copies - When an application modifies its data copy, it must also make changes to the other copies. The application should provide the update of data copies and / or derived data of the same transaction, which performs change of the original data.
Extract-Transform-Load - Type of data transmission that can provide complex queries to retrieve data from heterogeneous sources, the use of complex instructions with data that include aggregation and cleaning, but always performs a simple recording with replacement of all changes in the target.
Topologies for Data Copies - Architectural approaches for deploying copies of data across multiple platforms.
Lesson 6. Patterns of enterprise solutions. Deployment patterns. Part 1.
Deployment Plan - Creates a deployment plan that describes what application components on which levels will be deployed. If in the process of distribution of components in layers it is revealedsome layer is not appropriate for the component, determine the profitability of component changes to improve work with the infrastructure or infrastructure changes to fit better the component.
Layered Application - Separates the components of the solution into layers. The components of each layer should be connected and stay at the same level of abstraction. Each layer has to be weakly bound to the underlying layers.
Lesson 7. Patterns of enterprise solutions. Deployment patterns. Part 2.
Three-Layered Services Application - Copies data from the source to the target without regard to updates that might be the case for the replication set in a target location since the last replication.
Tiered Distribution - Structures servers and client computers as a set of physical levels and distributes application components on appropriate levels.
Three-Tiered Distribution - Structures application into three physical levels: client level, the application level and the database level.
Lesson 8. Patterns of enterprise solutions. Distributed systems.
Broker - Use pattern Broker to hide the implementation details of remote service invocation by encapsulating them in a separate layer.
Data Transfer Object - Creates Data Transfer Object (DTO), which contains all the data, necessary for the remote invocation. Changes the remote method signature to receive DTO as a single parameter and returns it to the client. After DTO received and saved as a local object, the application can invoke DTO procedures without having to perform remote invocations.
Singleton - provides a creation of single instance of the class. Other objects can access to this instance through a globally accessible class method that returns a reference to an instance. In addition the class constructor must be declared private, so that no other object can create a new instance.
Lesson 9. Patterns of enterprise solutions. Performance and reliability
Server Clustering - Cluster Server - an association of two or more servers, it appears as a single server. Thus, a virtual resource that enhances availability, scalability, or a combination of bothis formed.
Load-Balanced Cluster – Provides service or application installation on multiple servers that are configured to share the workload. This type of configuration is called a load-balanced cluster. Load balancing scales the performance of such server-side programs as a Web server, by distributing client queries across multiple servers. Load balancing technologies, usuallycalled load balancers, receive incoming queries and, if necessary, redirect them to a specific node. Load-balanced hosts concurrently respond to different client queries(even multiple queriesfrom the same client).
Failover Cluster - is a set of servers, configured in such a way that if one server becomes unavailable, the other servers automatically take the work of the failed server, continuing handling. Each cluster serveris assigned to at least one backup server from the number of servers of the same cluster.
Lesson 10. Patterns of enterprise solutions. Service patterns
Service Interface - Creates a component that provides the entry point for consumers to interact with the service, and provides a bit detailed interface, separating the implementation of business logic.
Service Gateway - encapsulates the code that implements the client side of the contract into a separate component of the Service Gateway, which acts as an intermediary for other services, encapsulating the details of the connection to the source and doing all the necessary conversions.
Lesson 11. Patterns of enterprise solutions. Patterns of Web-view.
Model-View-Controller - This pattern separates based on user input data of object area, view and actions in three separate classes. The model manages the behavior and data of the application domain, responds to requests for information about the state (usually from View) and to instructions to change a state (usually from the controller). The view manages the display of information. The controller interprets user input, received via the mouse or keyboard, informs the model and / or view about the need for appropriate changes.
Page Controller - This pattern allows to receive input of the page request, invoke the requested actions of the model and determine the correct view of the resulting page. Separates the dispatching logic from view code. Where it is necessary, create a common base class for all page controllers to avoid code duplication and improve consistency and testability.
Front Controller - This pattern solves the problem of decentralization inheriting to pattern Page Controller by sending all requests through a single controller. The controller itself is usually implemented in two parts: a handler and a hierarchy of instructions. The handler receives from the web server HTTP-Post or Get requests and retrieves relevant parameters. It uses the request parameters to select the necessary instruction and then to transfer control to the instruction to be handled. The instructions themselves are also part of the controller. The instructions are certain actions, described in the pattern Command.
Patterns Intercepting Filter, Page Cache and Observer.
Lesson 12. Integration Patterns. Integration layer
Entity Aggregation - Introduces Layer Entity Aggregation, which provides a logical representation of the entities at the enterprise level with physical connections that support access and update their corresponding instances in server storage.
Process Integration - Defines the business process model that describes the separate steps that make up the complex business function. Creates a separate process manager component that can interpret multiple instances of the model simultaneously and interact with existing applications for the performance of separate process steps.
Portal Integration - Creates a portal application that displays data from multiple applications in a unified UI. Users can perform the necessary tasks on the basis of data,displayed on this portal.
Lesson 13. Integration Patterns. Topologies of integration
Message Broker - Extends the integration solution. Message broker - is a physical component that provides connection between applications. Applications do not interact with each other, but only with the mediator - the message broker. Application sends a message to the mediator with the logical name of recipients. Mediator finds applications, registered under the logical name and sends them a message.
Message Bus - Connects all applications through a logical component, which is called the message bus. Message bus provides messaging between the applications. A message bus contains three main elements: a set of consistent messaging schemes, a set of common messages with the instruction and shared infrastructure for sending bus messages to recipients.
Publish / Subscribe - Provides classes for event publishing to which other applications can subscribe. Mechanism Publish \ Subscribe provides event or message sending to all subscribers.
Lesson 14. Integration Patterns. System Connections
Data Integration - Integrates applications at the logical data access layer, revealing data from one application (the source) for access from other applications (the target).
Functional Integration - Integrates applications at the business logic layer, opened the business function in one application (source) for access from other applications (the target).
Service-Oriented Integration - For logical integration of applications in the business layer, allows systems to use and provide Web services XML. Use Contracts of Web Services Description Language (WSDL) to describe the interfaces of these systems. Ensure interoperability by making your implementation with a family of Web Services (WS-*) specifications.
Presentation Integration - Provides access to application functions through the UI by modeling user input and reading the data from screen.
Lesson 15.Integration Patterns. Additional integration patterns
Pipes and Filters - Implements conversions, using a sequence of filter components, where each filter receives an incoming message, applies a simple conversion and passes the converted message to the next component. Carries messages through channels that connect the inputs and outputs of filters, buffering the connection between filters.
Gateway - Delivers all access functionality to external system into a single interface. This pattern eliminates need for understanding how to connect to an external system, making it easier, so the design and maintenance of access to external systems.
Lesson 16. Patterns of Web-service security. Authentication
Brokered Authentication - Web service validates the credentials, provided by the client, without the need for direct interaction between the two sides. Mediator of authentication, trusted of both sides, passes the access marker to the client. After that the client can provide the credentials to web service, including the access marker. The following three patterns describe specific implementations of pattern Brokered Authentication.
Brokered Authentication: Kerberos - Authenticates through an intermediary between clients and Web servers, using the protocol Kerberos.
Brokered Authentication: X509 PKI - To check the credentials, supplied by the requesting application, uses authentication through an intermediary on certificates X.509, issued by a CA (Certificate Authority) for the PKI (Public Key Infrastructure, PKI).
Brokered Authentication: STS – Uses authentication via an intermediary with access marker, issued by Security Token Service (STS). Both client and Web service trustSTS providing of access markers.
Direct Authentication - Web service acts as an authentication service to verify the credentials, provided by the client. Credentials, including proof of ownership, based on shared secrets, are compared with storage of permits.
Lesson 17. Patterns of Web-service security. Authorization and exception control
Trusted Subsystem - A web service for access to additional resources acts as a trusted subsystem. It uses its own credentials (instead of user) to access the resources.
Exception Shielding - Purifies unsafe exceptions by replacing them with exceptions that are safe by structure. Returns to the client only purified exceptions or exceptions with safe structure. Exceptions with safe structure do not include confidential information in the exception message and do not contain detailed records of the stack trace, as this may lead to the disclosure of confidential data about the internal operations of a Web service.
Lesson 18. Patterns of Web-service security. Message encryption and message replay detection
Data Confidentiality - Uses encryption to protect confidential data of messages. Unencrypted data, called plaintext, is converted to encrypted data (ciphertext). The data is encrypted using the encryption algorithm and encryption key. Having reached the target place,cipher textis converted back to plaintext.
Message Replay Detection–Identifier caching for incoming messages and use ofmessage replaydetection allowsidentifying and rejecting messages that have a corresponding record in the cache ofmessage replay detection.
Lesson 19. Patterns of Web-service security. Message signing and validation.
Data Origin Authentication - The use of data source authentication enables the recipient to verify that messages have not been corrupted during transmission (data integrity) and that they originate from the expected sender (authenticity).
Message Validator - Logic of message validation implements well-defined policy that specifies obligatory parts of message request for successfully serviceprocess. Checking of the payload XML-messages for XML-schema (XSD) ensures that it is properly formed and meets the expectations of processing service. The validation logic also checks the messages criteria: the messagesize, its content and usedcharacter sets arechecked. Messages that do not meet the specified criteria will be rejected.
Lesson 20. Patterns of Web-service security. Deployment.
Perimeter Service Router - Design an intermediate Web service that will act as an edge service router. The edge service router provides an external interface of edge network for internal Web services. It receives messages from external applications and forwards them to the appropriate Web service of the private network.
Completing this course, you will be able to:
• Work with patterns of composite applications
• Use data transfer patterns
• Work with corporate solutions patterns
• Work with integration patterns
• Develop application using secure patterns of web-services