Lamont Harrington's Blog

Microsoft Solutions Development, Architecture, and Technology Evangelism

The Microsoft patterns & practices team has recently released Developing Applications for SharePoint 2010 Guidance.

What's in Developing Applications for SharePoint 2010?

 

 

ComponentDescription
The guide

"Application Foundations for SharePoint 2010" describes approaches you can use to address the challenges of testability, flexibility, configuration, logging and exception handling, and maintainability; it also explains how to use the SharePoint Guidance Library components in these areas.

"Execution Models in SharePoint 2010" provides deep technical insights into the mechanics of the full-trust execution environment, the sandbox execution environment, and various hybrid approaches to executing code in SharePoint applications.

"Data Models in SharePoint 2010" explains new list and external data functionality and data access techniques, key design decision points that can help you to choose between standard SharePoint lists and external lists, and techniques and patterns to address large lists and list aggregation.

"Client Models in SharePoint 2010" provides guidance on how to best use the new client-side functionality to access data and build richer client experiences with Silverlight and Ajax.

Each section also contains a set of how-to topics. These explain how to perform specific tasks that the team found challenging to discover.

Reference Implementations

This release includes eight reference implementations that you can deploy to a SharePoint 2010 test environment. The reference implementations reinforce the key concepts in the guide and illustrate how to build applications that reflect real-world scenarios. Each reference implementation includes a detailed scenario and design overview, an explanation of the design decisions the team faced for the implementation, and an installation script to automate setup. This release includes reference implementations for the following scenarios:

  • Sandboxed solution
  • Sandboxed solution with a full-trust proxy
  • Sandboxed solution with External List
  • Sandboxed solution with custom workflow activities
  • Farm Solution (timer job)
  • SharePoint List Data Models
  • External Data Models
  • Client Application Models
The SharePoint Guidance Library

The library is a collection of reusable classes delivered as source code that address common challenges in application development for the SharePoint platform. This release improves on the previous release of the library by adding support for sandboxed solutions and taking advantage of new SharePoint features. The SharePoint Guidance Library consists of three key components:

  • SharePoint Service Locator. This provides a simple implementation of the Service Locator pattern for SharePoint applications. The service locator enables you to isolate your code from dependencies on external types, which makes your code more modular, easier to test, and easier to maintain.
  • Application Settings Manager. This provides a robust and consistent mechanism for storing and retrieving configuration settings at each level of the SharePoint hierarchy, from individual sites (SPWeb) to the entire server farm (SPFarm).
  • SharePoint Logger. This provides easy-to-use utility methods that you can employ to write information to the Windows Event log and the SharePoint Unified Logging Service (ULS) trace log. It also enables you to create custom diagnostic areas and categories for logging.

Click here to download the guidance




p_n_p

The Patterns & Practices team has recently released new guidance around building collaborative applications on the SharePoint platform.

The goal of this release is to help customers understand how to develop large scale, content-driven SharePoint applications that extend the value of existing line of business systems.  It essentially focuses on three primary objectives:

  1. Large Scale – Show customers how to build a large scale SharePoint application.  This includes guidance on building in the manageability, configurability, and performance expected from large scale applications.
  2. Content Driven – More advanced SharePoint applications often include many sites and combine custom coded logic with created content.  The guidance demonstrates areas like custom navigation and publishing, composing web parts with published information, and managing a consistent UI.
  3. Extend LOB Systems – SharePoint can aggregate and extend information from Line of Business systems to end users, enhancing structured business process with informal processes through collaboration.  The guidance shows how to integrate security considerations into business services, and demonstrate how to create collaborative sites that help manage business events like incident escalations and order exceptions.

lob_integration This release integrates new guidance with the original release of the SharePoint Guidance – November 2008 guidance (now retired) into a single download.

 

 

The guidance package contains the following components:

Component Description
SharePoint Guidance Library A set of reusable components that helps developers manage configuration, build repositories for SharePoint lists, log traces and events, and use service location.
Guide The documentation includes a variety of topics, such as how to use design and application patterns, how to integrate LOB systems with SharePoint applications, building scalable applications, upgrading SharePoint applications, and using SharePoint capabilities to create, and deploy content. It also includes the design decisions made for the Partner Portal and Training Management applications and explanations of their implementations.
Contoso Partner Portal Reference Implementation This SharePoint application shows how Contoso created an extranet where it can interact with its partners. Among the items demonstrated are techniques for building manageable and scalable enterprise applications, and how to incorporate publishing and page composition features, flexible navigation, collaboration sites, and LOB integration. It includes more advanced techniques than the Training Management reference implementation and requires Microsoft Office SharePoint Server 2007 with Service Pack 1 or Service Pack 2.
Contoso Training Management Reference Implementation This SharePoint application illustrates how the Contoso Human Resources department manages its training course offerings. It shows how to solve many basic SharePoint challenges that you might encounter when you develop your own applications. Windows SharePoint Services 3.0 is required.

To download this release, click here.




 

Quick Links

MSDN Site: http://msdn.microsoft.com/en-us/library/dd362339

Community Forum: http://codeplex.com/unity

Description:

The Patterns & Practices team has recently released a port of the Unity Application Block to Microsoft Silverlight 2.  This release includes the following capabilities and packaging:

  • The single Microsoft.Practices.Unity.dll file in the Silverlight version contains all the classes from the three separate desktop DLLS: Microsoft.Practices.Unity.dll, Microsoft.Practices.ObjectBuilder2.dll, and Microsoft.Practices.Unity.StaticFactoryExtension.dll.  You only need to reference and deploy the one assembly in your Silverlight projects.
  • Becase of the differences in the Silverlight security model, only public types can be created and injected by the container.  The desktop version allows you to also inject internal types.
  • XML configuration is not supported.
  • The Unity interception mechanism is not supported.

An updated quickstart is also included.




There have been a number of customer inuqiries to the Microsoft Application Architecture Guide 2.0 team for smaller, more focused guides. As a result, the team has created a series of application architecture pocket guides based on our Application Architecture Guide 2.0. Each guide is focused on a particular topic. We prioritized topics based on customer demand. Some customers wanted a focused guide on just the Agile Architecture Method, while others wanted a focused guide on the particular type of applications they build (Web, Rich Client, … etc.)

Application Architecture Pocket Guides

Here’s the initial set of pocket guides:

You can browse the index of pocket guides at the pocket guide index page at our Application Architecture KB on CodePlex.




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 (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.




Calendar

<<  August 2010  >>
MoTuWeThFrSaSu
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

View posts in large calendar

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2009, Lamont Harrington.