The final day of the Patterns and Practices Summit West 2005 started with a keynote presentation from Mike Kropp, General Manager of the Patterns and Practices team, on the future of Patterns and Practices. Day Three sessions also included infrastructure architecture, an overview of Enterprise Library 2.0, and a live Q&A webcast for Patterns & Practices Live.
The keynote presentation from Mike Kropp, the General Manager of the Patterns and Practices team, centered around the future of guidance and tools from that group. In his presentation he outlined future releases coming in the next year including Enterprise Library 2.0 built for the .NET Framework 2.0 as well as a version of the Enterprise Library and the CAB for the .NET Compact Framework. Also mentioned is a Offline/Service Agent Application block for the Smart Client space. He also spent some time highlight the ground taken in the availability of guidance and tools for creating secure applications.
Next up was Mike Platt, a Microsoft Architect focused on infrastructure. His presentation focused on the use of abstractions and how that applies not only to software design but to infrastructure architecture. He gave an overview of the Dynamic Systems Initiative as well as the concepts behind a System Definition Model.
Key Concepts of SDM
- SDM captures in a self-contained model all of the invariant aspects of a system, including the desired configuration, policies, and behaviors
- SDM enables functional decomposition of systems through configurations and classes
- SDM encourages the creation of reusable, prescriptive models with embedded best practices, resulting in deployment and operations with reduced complexity
- SDM helps to close the gap between how administrators think and how they operate. In SDM, behavior is defined in terms of operational tasks, but the underlying system model is fully described from the highest level down to the physical components, allowing detailed knowledge and control of the system when desired
- An SDM system model provides a single point of integration, coordination, and policy enforcement across a distributed, end-to-end system. With SDM Service maintaining the system model, different administrators can be given different access rights to pieces of the model to maintain separation of roles and function within an organization
- A system model aids in a design's deployment and management and is a live model that can evolve and be enhanced during the life of the design.
Automating Architectural Guidance
In this presentation, Wojtek Kozaczynski from the Patterns & Practices team began by discussing the different types of guidance that can be use to lead developers creating new applications and the methods available to communicate that guidance. These types can include:
Application architecture guidance:
- Analyzing requirements
- Selecting key features
- Selecting key elements of the baseline architecture
Feature design guidance:
- Ex. Selecting between MSI and ClickOnce
- Ex. Selecting different authentication mechanisms
Feature implementation guidance:
- How to use ClickOnce infrastructure to load updated versions of modules?
He then focused on how to provide automated guidance primarily for feature implementation using the Guidance Automation Toolkit. Using this add-on to Visual Studio, architects can package contextualized guidance in the form of templates, recipes, and actions to developers.
Enterprise Library 2.0
Tom Hollander led the next presentation that provided both an overview of the new Enterprise Library 2.0 (currently in CTP) as well as changes between the 1.0 version which was built for version 1.1 of the .NET Framework and version 2.0 of EntLib which was built for the 2.0 version of the .NET Framework.
Creating Your Own Enterprise Library
The next session featuring Peter Provost and Brian Button covered the design of Enterprise Library 1.0 and how to extend the current set of application blocks for your needs. Along with a review of the overall project structure for Enterprise Library, special emphasis was placed on the importance of the 1900 unit tests available and how these can be leveraged to insure that any changes or extensions a developer makes won’t break other parts of Enterprise Library.