Lamont Harrington's Blog

Microsoft Solutions Development, Architecture, and Technology Evangelism

The Microsoft patterns & practices team are up to it again.  Fresh on the heels of releasing the Developing Applications for SharePoint 2010 guidance, they've recently released part 1 of the Windows Azure Architecture Guidance.

What's in the Windows Azure Architecture Guide - Part 1?

 

 

ComponentDescription
The Guide

"Introduction to the Windows Azure Platform" provides an overview of the platform to get you started with Windows Azure. It describes web roles and worker roles, and the different ways you can store data in Windows Azure. It's probably a good idea that you read this before you go to the scenarios.

"The Adatum Scenario" introduces you to the Adatum company and the aExpense application. The following chapters describe how Adatum migrates the aExpense application to the cloud. Reading this chapter will help you understand why Adatum wants to migrate some of its business applications to the cloud, and it describes some of its concerns.

"Getting to the Cloud" describes the first steps that Adatum takes in migrating the aExpense application. Adatum's goal here is simply to get the application working in the cloud, but this includes "big" issues, such as security and storage.

"How Much Will It Cost?" introduces a basic cost model for the aExpense application running on Windows Azure and calculates the estimated annual running costs for the application. This chapter is optional. You don't need to read it before you go on to the following scenarios.

"Automating Deployment and Using Windows Azure Storage" describes how Adatum uses PowerShell scripts and the Microsoft Build Engine (MSBuild) to automate deploying aExpense to Windows Azure. It also describes how Adatum switches from using SQL Azure to Windows Azure Table Storage in the aExpense application and discusses the differences between the two storage models.

"Uploading Images and Adding a Worker Role" describes adding a worker role to the aExpense application and shows how aExpense uses Windows Azure Blob Storage for storing scanned images.

"Application Life Cycle Management for Windows Azure Applications" discusses how to manage developing, testing, and deploying Windows Azure applications. This chapter is optional. You don't need to read it before you go on to the last scenario.

"Adding More Tasks and Tuning the Application" shows how Adatum adds more tasks to the worker role in the aExpense application. In this phase, Adatum also evaluates the results of performance testing the application and makes some changes based on the results.

The companion samples The samples illustrate all scenarios covered in the book. They provide a “single box” experience with minimal infrastructure requirements.

Click here to download the guidance




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








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.




Few sample .NET applications have had more impact on the .NET development community than the Terrarium sample application that was released during the version 1.0 release cycle of the .NET Framework.  This solution created a community of .NET enthusiasts that far exceeded the expectations of the .NET Framework team.  It showcased a "production-level" end-to-end reference solution that highlighted key features of the .NET Framework and showcased the power and creativity .NET can bring to software development.  I recalled that for many months I inquired as to when the source code for this application was going to be released, because, as you may recall, only the binaries were made available.  Sure you could decompile the executable and supporting libraries, or use great tools like Lutz Roeder's .NET Reflector, but there's nothing like having the Visual Studio projects openly released for all to see!! :-)

Well, Terrarium is BACK!! :-)  The project was resurrected by the Windows SDK Team and MVP Bil Simser has volunteered to coordinate development efforts for the project.

Head on over to CodePlex and be a part of the effort! For all you .NET Framework "old heads" like myself who looked at Terrarium as an amazing solution to dissect, learn from, and foster new ideas around the creation of solution architectures, I emplore you to check out the project. 

Thanks Windows SDK Team for evolving the solution and thanks Bil for stepping up to take on coordination for the effort.

Fun times (especially for me) are ahead! :-)  Especially with the introduction of WPF, WCF, WF, LINQ, Silverlight and an assortment of other technology goodies, this solution is sure to continue to evolve into something that we'll all continue to be proud to showcase as a premier .NET solution.




Microsoft has recently released the ASP.NET 3.5 Extensions CTP.  The extensions add new runtime functionality to ASP.NET 3.5 and ADO.NET, including (taken from the ASP.NET 3.5 extensions site):

ASP.NET MVC

  • ASP.NET MVC provides model-view-controller (MVC) support to the existing ASP.NET 3.5 runtime, which enables developers to more easily take advantage of this design pattern. Benefits include the ability to achieve and maintain a clear separation of concerns, as well as facilitate test driven development (TDD).

    The ASP.NET MVC Toolkit provides HTML rendering helpers and dynamic data support for MVC.

ASP.NET Dynamic Data

  • ASP.NET Dynamic Data helps developers build a fully customizable, data-driven app quickly. It provides a rich scaffolding framework that allows rapid data driven development without writing code, yet it is easily extendible using the traditional ASP.NET programming model.

ASP.NET AJAX

  • New additions to ASP.NET AJAX include support for managing browser history (Back button support).

ADO.NET Entity Framework

  • ADO.NET Entity Framework is a new modeling framework that enables developers to define a conceptual model of a database schema that closely aligns to a real world view of the information. Benefits include easier to understand and easier to maintain application code that is shielded from underlying database schema changes.

ADO.NET Data Services

  • ADO.NET Data Services provide new services that find, manipulate and deliver data over the web using simple URIs. Benefits include an easy and flexible way to access data over the web, while enabling the separation of presentation and data access code.

Silverlight Controls for ASP.NET

  • You can integrate the rich behavior of Microsoft Silverlight into your Web application by using two new ASP.NET server controls: a MediaPlayer server control that enables easy integration of media sources such as audio (WMA) and video (WMV) into your Web application, and a Silverlight server control that allows an ASP.NET page to reference both XAML objects and their event handlers.

To learn more about the extensions, check out Scott Guthrie's blog post on the topic or head on over to the ASP.NET 3.5 Extensions site.




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.