PDC 2008 Architect's Cut

Posted in Architecture | Blog News | Patterns & Practices | PDC 2008 at Sunday, November 09, 2008 10:33 AM Eastern Standard Time

Microsoft has recently revamped it's customer facing Architecture Portal.  It now features a selection of sessions from PDC 2008 that are particularly appealing for the architect audience.  Sessions can be launched on demand in the same page, maximized to full screen and eventually downloaded.

But wait, there's more!

The Patterns & Practics team has been releasing a lot of valuable material as of late, including new whitepapers or sample kits like the Unity dependency injection container or Enterprise Library v4.1.

In addition to the great content published on the Architecture Portal, you'll also find architect-focused content aggregated from non-MS news and media feeds (e.g. infoQ, Redmond News, etc)

 

Hope you find these resources helpful!

Quick Links

Guidance at a Glance

This guidance helps architects and developers build SharePoint intranet applications.  The guidance contains a reference implementation that demonstrates solutions to common architectural, development, and lifecycle management challenges.  This guidance discusses the following:

  • Architectural decisions about patterns, feature factoring, and packaging
  • Design tradeoffs for comon decisions many developers encounter
  • Implementation examples demonstrated in the reference implementation and in the QuickStarts
  • How to design for testability, create unit tests, and run continuous integration
  • Set up of development, build, test, staging, and production environments
  • Managing the application life cycle including upgrade
  • Team-based intranet application development

The following areas are not discussed in this version of the guidance:

  • Content-oriented sites that use web content management
  • Internet and enterprise-scale SharePoint applications
  • Multilingual SharePoint applications
  • Scale or security testing of SharePoint applications

Distributed Agile Development at Microsoft Patterns & Practices Whitepaper Published

Posted in Patterns & Practices at Thursday, October 30, 2008 6:10 PM Eastern Standard Time

Distributed Agile Development at Microsoft Patterns & Practices (white paper)

+

Agile Development Showcase

Quick Links

White Paper Abstract

Distributed development is a fact of life for many teams. Unfortunately most agile methodologies or approaches assume that the team is located in a single team room. Until recently there has been little guidance about how to apply these approaches with a geographically dispersed team.


Microsoft’s patterns & practices group has been following an agile, distributed development approach for the past five years. During this time teams within the group have experimented extensively with different approaches to best address the challenges of distributed agile development. This paper outlines the challenges faced by geographically distributed agile teams and details some proven practices to address these issues and build successful distributed teams.

A lot of exciting things came out of day #1 at the PDC.  I’m sure you’ve already started to see/hear about the great technology that we are unveiling.  During the keynote, I saw laptops being pulled out and I’m quite sure there are tons of blogging going on in the blogosphere

Today, Ray Ozzie kicked off the 2008 PDC with a keynote that basically laid the foundation of our software plus services strategy and highlighted the key investments we've been making over the last few years in bringing our cloud platform to fruition.  In his talk, he focused on the landscape as we see it in 3 tiers:

  • Experience Tier – The experience tier focuses on the end-user and their user experiences with the desktop/mobile device
  • Enterprise Tier – The enterprise tier focuses on people interaction with enterprise systems and system-to-system interaction within the enterprise
  • Web Tier – The web tier focuses on leveraging the web as the backbone for next generation computing.  Our cloud computing initiative is focused on leveraging the web through providing scalable hosting services for applications services.

Windows Strata becomes Windows Azure

During the keynote, Ray made the "formal" announcement of the name of our new cloud platform.  For those of you who knew this as codename "Windows Strata", the platform has now been officially branded as Windows Azure.

 

 

Windows Azure provides a hypervisor-based model for providing secure and scalable hosting services.  It separates the application/service being hosted from the underlying operating system.  It is also important to note that Azure is not only for managing server infrastructure, but also web services as well and provides an end-to-end approach for accomplishing this.  At the heart of Azure is a "Fabric controller" which dynamically manages resources within the data center to preserve the health of services/applications that are deployed to the Azure Platform.

Windows Azure will provide support for both managed (.NET) and unmanaged code which essentially allows you to host non-.NET applications within this cloud fabric.  From a developer perspective, developers will be able to take advantage of this platform locally, through the Azure SDK and supporting tools for Visual Studio, that'll provide facilities to support the development/debugging of cloud-based applications.  Through a "publish" operation in Visual Studio, developers will be able to publish their solution to the Azure services Developer Portal.

The Azure Services Platform consists of the following platform technologies:

  • Windows Live Services
  • Microsoft .NET Services
  • Microsoft SQL Services
  • Microsoft SharePoint Services (this is not to be confused with WSS)
  • Microsoft Dynamics CRM Services

The Azure platform should also not be confused as a replacement of our one-premise offerings, but rather a complementary, cloud-based equivalent.  our on-premise offerings as a part of our strategy include:

  • SQL Server 2008
  • BizTalk Server
  • SharePoint Server
  • Dynamics CRM
  • Windows Server
  • Systems Center

The platform will provide capabilities that allow developers to model the services deployed on the platform.  Service modeling consists of:

  • Roles and Groups (e.g. who has access to the services that are being published and what operations/actions they can perform
  • Channels and Endpoints (e.g. defining how the services will be exposed and over what transport protocols)
  • Interfaces
  • Configuration Settings

During the keynote, there were partner demonstrations of solutions that are already taking advantage of the Azure Services Platform.  Jonathan Greensted, CEO of Sentient, gave a demonstration of a solution that his company has been working on called, Bluehoo.com (http://m.bluehoo.com) that integrates cloud-based services with mobile devices.  You can download and starting playing with the solution from http://m.bluehoo.com.  In addition, Shawn Davison, VP of RedPrairie, a Supply-chain manufacturing solutions firm, demoed a "one button" product recall orchestration running on Windows Azure and leveraging .NET services like workflow.

Bob Muglia came on stage and discussed our roadmap leading into 2009+.  He focused on the theme of the "5th generation computing".  In his discussion, he highlighted where we've been and where we're going

  • 1970s - Monolithic
  • 1980s - Client-server
  • 1990s - Web
  • Today - SOA
  • 2009+ - Services

Bob’s “evolutionary” discussion provided additional context to what Ray covered in his keynote and further solidified our messaging around the Windows Azure platform and the investments that we’ll be making from now, until we ship.

What's in Microsoft .NET Services?
.NET Services (formerly known as BizTalk Services) are a set of Microsoft hosted, scalable, developer-oriented services that provide key building blocks upon which developers can create cloud-based or cloud-aware applications.  Essentially, it breaks down into the following 3 components:

  • A full end-to-end service bus solution – Makes it easy to connect disparate applications over the internet
  • Facilities that support Identity/Access Control – Provides an easy way to control web applications and services using standards-based identity providers, including enterprise directory services such as Active Directory and web-based identity stores such as Windows Live ID
  • Workflow Services – Provides a highly scalable host for running workflows in the cloud. 

What's in SQL Services?
SQL Data services extend the capabilities of SQL Server to the cloud as web-based services, which enable you to store your data in a highly-scalable and internet-facing distributed database service infrastructure.  It contains the following key components:

  • Database
  • Data Sync
  • Reporting
  • Data Mining
  • ETL
  • Reference Data

What about Microsoft Online?
Our Microsoft Online Strategy still remains intact and will take advantage of the new Windows Azure platform as it evolves.  The Microsoft Online platform is geared at addressing many customer challenges we've heard, including:

  • Best in class collaboration
  • Staying up-to-date with software versions/patches/updates
  • Lower, predictable costs
  • Scarce IT resources
  • High Security
  • High Availability

NOTE: It is important to note that the current version of Microsoft Online IS NOT built on the Windows Azure platform.  Over time, it will take advantage of our investments in Windows Azure.

Can customers host Windows Azure within their own data centers?
This question was asked several times within today’s breakout sessions.  The answer to this is that as the features/capabilities of Windows Azure evolve, we (Microsoft) will take a look at the capability stack and identify key features of Windows Azure and roll it into our enterprise server products.  There is still significant value within our enterprise server platform and overtime, those products will benefit from the rich investments being made in Windows Azure.

When are we going to ship Windows Azure?
Answer: When it’s ready. :-)  

Essentially, we’re targeting some time in calendar year 2009, however, we’re largely basing our release on when our customers think that it’s ready to be released, and not a moment sooner.  We will follow a similar process that we’ve followed with CTP services we’ve already released and will be doing frequent updates.  However, the final ship date was not disclosed.

Are there any resources available to learn more about Windows Azure?
You can find more information about the Azure Services Platform, including whitepapers, SDK and tool downloads, datasheets, and a link to sign-up for a test/dev account to the Windows Azure cloud platform at the Azure Services Platform website.

That about sums up day #1.  I hope you find this recap helpful.

The Best Practices Resource Center for SharePoint Server 2007 has been recently launched on our TechNet site.  The intent of the site is to provide a resource for guidance and best practices in efforts to avoid common pitfalls and keep your Office SharePoint Server 2007 environment available and performing well.  The best practices cited within the resource center is based on real-world experience from Microsoft Consulting Services and the SharePoint Product Team.

The Patterns & Practices Team have recently released v1.0 of the web services security guide (in PDF format) that shows how to make the most out of WCF.  With end-to-end application scenarios, it shows you how to design and implement authentication and authorization in WCF. Learn how to improve the security of your WCF services through prescriptive guidance including guidelines, Q&A, practices at a glance, and step-by-step how tos. It's a collaborative effort between patterns & practices, WCF team members, and industry experts.

The guide has been released on CodePlex and is available for download.

RIScreenshots_small.png

 

The Patterns & Practices team has recently released the Composite Application Guidance for WPF which provides guidance for "componetizing" the development of enterprise-class WPF applications across multiple development teams, with each team owning a piece of the application, and then seamlessly integrating these pieces into one homogenous application.

Included in the guidance package is a reference implementation of WPF application, CFI Stock Trader, that models this guidance, reusable library code (called the Composite Application Library), documentation, quick start tutorials and hands-on labs.

You can download the bits here or to learn more about what the guidance entails, head on over to the developer center on MSDN.

I can't wait to try this stuff out!

Unity Application Block v1.0 Released

Posted in Architecture | Patterns & Practices at Friday, April 04, 2008 8:18 PM Eastern Standard Time

Unity Application Block

April 2008 Release (1.0)

The Patterns & Practices team have recently released v1.0 of the Unity Application Block.  The Unity Application Block (Unity) is a lightweight, extensible dependency injection (DI) container. It facilitates building loosely coupled applications and provides developers with the following advantages:

  • Simplified object creation, especially for hierarchical object structures and dependencies;
  • Abstraction of requirements; this allows developers to specify dependencies at run time or in configuration and simplify management of crosscutting concerns;
  • Increased flexibility by deferring component configuration to the container;
  • Service location capability; this allows clients to store or cache the container.

You can download the bits from MSDN here and participate in the community forums on CodePlex.

Windows Communication Foundation Security Guidance

The intial release of the WCF Security Guidance from the Microsoft Patterns & Practices team has been released to Codeplex.  The guidance contains how-to video and articles that describe common security practices when designing, developing, and deploying services built on WCF.  The guidance content consists of the following:

How-To Videos:

How-To Articles:

Silverlight Blueprint for SharePoint

Posted in Microsoft Silverlight | Patterns & Practices | SharePoint Products and Technologies | Software+Services at Wednesday, March 05, 2008 12:19 PM Eastern Standard Time

Microsoft has recently released the Silverlight Blueprint for SharePoint.  The Silverlight Blueprint for SharePoint is source code and guidance for developers describing how to use Microsoft Silverlight and Microsoft SharePoint Products and Technologies together in business applications and Internet Web sites. SharePoint applications that use Web Parts can now be built using Silverlight user interface elements. This capability enables a fresh look at data exposed through SharePoint Products and Technologies using the modern graphics capability in Silverlight.

To get more information about the blueprint and find out when/where you can download the bits, head on over to the Silverligh Blueprint for SharePoint website.

 

 

Web Service Software Factory: Modeling Edition

For Visual Studio 2008

This deliverable is available on MSDN at:

http://msdn.microsoft.com/servicefactory

About the Deliverable

The Web Service Software Factory: Modeling Edition (also known as the Service Factory) is an integrated collection of resources designed to help our customers quickly and consistently build WCF and ASMX Web services that adhere to well-known architecture and design patterns. These resources consist of models with code generation in the form of tools integrated with Visual Studio and patterns and architecture topics in the form of written guidance.

The Service Factory contains automation and guidance integrated into Visual Studio 2008 for building Web services. The core of the automation components is a Web services domain model. This domain model contains elements such as service contracts, operations, messages, and data contracts. This domain model manifests itself in the form of three integrated domain-specific languages (DSLs) that are used to model services: Service Contract Model, Data Contract Model, and the Host Model. The Service Contract Model is illustrated in the following screenshot.

To learn more about the Service Factory, please visit its official home on MSDN at http://msdn.microsoft.com/servicefactory.

Community (http://www.codeplex.com/servicefactory)

The community site contains hands-on labs for both using and extending the Service Factory, discussions with customers and field, known issues, and roadmap information. In the near future the site will include presentations, demonstration videos, and community contributions.

Web Client Software Factory Shipped

Posted in .NET 3.0 | .NET 3.5 | Architecture | ASP.NET AJAX | ASP.NET MVC | Patterns & Practices | Software Factories | Visual Studio at Thursday, February 28, 2008 10:11 PM Eastern Standard Time

Web Client Software Factory 2.0

February 2008 Release

Resources

About the Deliverable

The Web Client Software Factory (WCSF) provides a set of guidance for architects and developers building enterprise Web applications. The factory includes samples, reusable code and a guidance package which automates key development tasks from within Visual Studio.

Using the Web Client Software Factory assets, developers can create Composite Web applications composed of independently developed and deployed modules. These modules are dynamically brought together at runtime into a common shell. Additionally the factory includes support for ASP.NET AJAX thus providing users with a richer and more responsive user experience.

New In This Release

The February 2008 release of the Web Client Software Factory has the following improvements to the June 2007 release.

  • Full support for Visual Studio 2008 and .NET Framework 3.5
  • Added ASP.NET AJAX extenders for Context Sensitive Autocomplete, AJAX Validation, and Real Time Search that can be used in existing ASP.NET sites and ASP.NET sites built using the Composite Web Application Block.
  • Added UI Composition capability through extending our dependency injection mechanism to support Pages, User Controls and Master Pages.
  • Added Dependency Injection on ASMX Web Services and JSON services.
  • Added a new set of Quickstarts and How-To topics on MVP, Modularity and the new AJAX extenders
  • Added a new Order Entry Reference application that demonstrates all of the new functionality.

In addition, this release of WCSF has the following community issues and fixes:

  • 42 Workitems closed including the top-voted items on CodePlex
  • Add ASP.NET AJAX Support (97 votes)
  • Web Client Software Factory Support for Enterprise Library 3.1 (62 votes)
  • Services through configuration (32 votes)
  • Support for using the Validation Application Block (16 votes)
  • Recipe support for Visual Basic .NET (20 votes)
  • Added Presenter support for Master Pages (11 votes)

Microsoft has recently released a set of lectures and whitepapers on advanced topics around Office SharePoint Server 2007.  Below is a description (taken from the TechNet website) of topics and links.

Title Description Streaming Video Whitepaper
Overview: Office SharePoint Server server farm architecture Describes how to plan server farms for reliability and scalability, and how to deploy Office SharePoint Server 2007 and Windows SharePoint Services 3.0 on a server farm. None Download
Overview: Configuring server farms Describes configuration steps needed for server farms after deployment. Watch Download
Securing Server Farms Describes how to help control access to information and how to help protect deployments from malicious users. Watch Download
Configuring Performance Options Describes how to set up caching, IIS compression, and other options to help maximize performance of an Office SharePoint Server server farm. Watch None
Backing up, restoring, high availability, and disaster recovery for Office SharePoint Server server farms Describes how to back up and recover Office SharePoint Server server farms. Watch Download
Operations and Management Provides information about common operations and management tasks. Watch Download
Capacity Planning Describes how to determine requirements to support your capacity requirements. Watch Download
Search architecture and configuration Describes how to plan for and configure search for Office SharePoint Server. Watch Download

Infrastructure Planning and Design Series Released

Posted in Architecture | Infrastructure Optimization | Patterns & Practices | Windows Server at Sunday, November 11, 2007 11:59 AM Eastern Standard Time

This is a really exciting release for the Solution Accelerators Team. The concept of the Infrastructure Planning and Design (IPD) series is to distill down to the core decisions required for planning and designing the IT infrastructures necessary to support business services. The first wave of released guidance introduces the series and focuses on new virtualization technologies from Microsoft, including SoftGrid Application Virtualization and Windows Server Virtualization in Windows Server 2008.

The Infrastructure Planning and Design series is an evolution of Windows Server System™ Reference Architecture. The guides in this series help clarify and streamline design processes for Microsoft infrastructure technologies; each guide addresses a unique infrastructure technology or scenario. All guides share a common structure including:

  • Definition of the technical decision flow through the planning process.
  • Listing of decisions to be made and the commonly available options and considerations.
  • Relating the decisions and options to the business in terms of cost, complexity, and other characteristics.
  • Framing decisions in terms of additional questions to the business to ensure a comprehensive alignment with the appropriate business landscape.

These guides complement product documentation by exposing and focusing on infrastructure design options.  The guides included in this release include:

IPD Series Introduction Guide

Planning the next generation of technical infrastructure for corporations is a complex and daunting task. The IPD series is designed to present the reader with the most concise planning guidance for Microsoft technologies. It also provides a means to validate design decisions with the business to ensure that the solution meets the requirements of both business and infrastructure stakeholders. This guide describes the background for the IPD series as well as the format of each guide and defines characteristics common to the series.

Selecting the Right Virtualization Technology Guide

There are several different forms of virtualization that need to be understood as a basis for making the right technology choice. Server hardware virtualization, server software virtualization, presentation virtualization, application virtualization, and desktop virtualization are all valid options for organizations considering which services to virtualize and how to implement these technologies. The goal of this virtualization overview guide is to enable you to rapidly and accurately select which Microsoft virtualization technology or technologies to use for specific scenarios. You will then be able to proceed with the planning and design process for that virtualization technology by using the appropriate Infrastructure Planning and Design guide.

SoftGrid Application Virtualization Guide

Microsoft SoftGrid® Application Virtualization is the only virtualization solution on the market to deliver applications that are never installed, yet securely follow users anywhere, on demand. It dramatically improves IT efficiencies, enables much greater business agility, and provides a superior end-user desktop experience. The Infrastructure Planning and Design Series: SoftGrid Application Virtualization assists designers in the infrastructure planning process for SoftGrid by providing a clear and concise workflow of the decisions and tasks required for each method. This guide enables you to plan the infrastructure required for meeting your application virtualization service goals.

Windows Server Virtualization Guide

A virtualized computing environment can improve the efficiency of your computing resources by utilizing more of your hardware resources. Windows Server virtualization enables you to create a virtualized server computing environment using a technology that is part of Windows Server® 2008. The Infrastructure Planning and Design Series: Windows Server Virtualization guide discusses Microsoft virtualization options using Windows Server virtualization in Windows Server 2008 and Microsoft Virtual Server 2005 R2 SP1. The guide explains design considerations at critical decision points and helps with plans for an optimized server virtualization architecture to meet organizational goals for performance and consolidation.

The final release of the Microsoft Enterprise Service Bus (ESB) Guidance for BizTalk Server 2006 R2 is now on MSDN.  The Microsoft ESB Guidance provides architectural guidance, patterns, practices, frameworks, reusable components and samples for BizTalk Server 2006 R2 to simplify the development of an Enterprise Service Bus (ESB) on the Microsoft platform and to allow Microsoft customers to extend their own messaging and integration solutions.

Some of the core capabilities provided by the ESB Guidance include:

  • Policy driven mediation:
    • Itinerary-based service invocation that supports lightweight service composition at the time of message publication. The Itinerary mechanism dynamically resolves service endpoints and mediation requirements, and routes messages using any resolver that ships with the Guidance. This approach allows developers to implement loosely coupled patterns such as VETO/VETRO.
    • Provides dynamic resolution of endpoints and maps using the Microsoft ESB Guidance Resolver and Adapter Provider Framework. This supports dynamic resolution of endpoints and transformation requirements, as well as providing custom configuration to services, effectively decoupling the consumer from the services. 
    • Exception Management Framework for unified exception handling, mediation and reporting.
  • Connecting systems: 
    • Performs namespace normalization of messages.
    • Provides IBM JMS/WMQ connectivity.
    • Supports messaging patterns that enable dynamic service aggregation, message routing, message validation, and message transformation.
    • Incorporates service registry and repository integration using UDDI and WS-MetadataExchange.
  • Management and monitoring:
    • Includes the ESB Management Portal that provides:
      • Exception mediation and fault management.
      • Message repair and resubmission.
      • Exception notification and alert engine enabling user/group subscriptions.
      • BizTalk endpoint and registry integration, management, and publication.  Support auto publication from the BizTalk Administration Console
      • Reporting and analytics for exceptions, alerts, subscriptions and registrations.
      • Basic auditing on message saves, edits and resubmits
  • SOA governance:
    • Provides integrated SOA governance solutions developed by AmberPoint and SOA Software.