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




One of the cool aspects of working at Microsoft is the opportunity to work on some fantastic projects.  It’s truly been a pleasure working on some great internet facing SharePoint websites that showcase the platform’s ability to service some of the internet’s most demanding websites and show it’s effectiveness as a web content management platform. 

Today, the newly redesigned/re-architected Recovery.gov website that’s running completely on SharePoint Server 2007 was launched!

Recovery.gov

Recovery.gov is a government website designed to provide transparency in to how stimulus funds provided by the federal government are being allocated and spent on various stimulus related projects across the US.  On February 13, 2009, Congress passed the American Recovery and Reinvestment Act of 2009, who’s main goals are to:

  1. Create and save jobs
  2. Spur economic activity and invest in long-term economic growth
  3. Foster unprecedented levels of accountability and transparency in government spending

To that end, SharePoint Server 2007 was chosen as the platform to deliver on the requirements for the Recovery.gov site and will deliver compelling features and functionality that provides deep insight into how stimulus funds are being spent.  Head on over to Recovery.gov and check it out!




 

Windows Azure Platform  Project Riviera is a comprehensive code sample to demonstrate how to develop multi-tenant highly-scalable line-of-business application on Windows Azure Platform, built by a cloud ISV partner, Cumulux.

Cumulux is a Microsoft partner who’s built their business around  delivering solutions that leverage cloud computing and are keenly interested in making Azure their primary platform for delivering custom solutions for customers.

The reference application been published to the MSDN code gallery at http://code.msdn.microsoft.com/riviera.  You can also see a brief video, architectural slides and related material here (http://cumulux.com/riviera.html)

The main tenants of Azure demonstrated by Riviera Include:

  • Federated Security (using custom STS, .NET Access Control Service and Windows Live ID)
  • Multi Tenancy (On demand provisioning, Tenant Management, extensible metadata)
  • Extensibility  (using Silverlight 3, Workflow)
  • Scalability (using Azure Queues , Async patterns)
  • Flexible SLAs (using SQL Azure / Azure storage partitioning)



 

powered by

What great news!  The historic inauguration of President-Elect Barack Obama will be streamed LIVE using Silverlight, our online Rich Internet Application (RIA) and media platform, via the Presidential Inaugural Committee website on January 20th.  For those of you who followed the 2008 Olympics in Beijing, you witnessed first hand and what our Silverlight technology can do in the online media arena!  This is a great time for our country and a very exciting time for Microsoft to be able to showcase argueably the most important moment of our time using the power of the Microsoft platform!




 

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.







To read my PDC Day 1 recap, click here.

Ray Ozzie once again kicked off the keynotes for the day.  Today, the focus was on the client and the Live Services component of the Windows Azure platform.  In his opening remarks, Ozzie further solidified our story around the integration of the PC/Web/Phone and how our strategy will fundamentally change how we as consumers interact with these devices and that consumers demands for this type of integration is growing.  Our approach is to seamlessly integrate our S+S platform across these devices, exploiting the power of the PC through our investments in Windows and client runtimes such as Windows Presentation Foundation (WPF), the power of the web through our investments in Silverlight 2 and Internet Explorer 8, and the power of the mobile device (e.g. Phone) through our investments in Windows Mobile and our Windows Live Services.  In his commentary, he basically broke down the 3 aforementioned areas as follows:
 
PC

  • Full and high-performance access to displays & peripherals
  • Natural UI & common controls for ink voice/audio, camera, touch
  • Local data privacy, portability, reliable/fast/full access
  • Use & recombine applications, data, documents, media
  • A personal environment, trusted & assumed under your control

Web

  • One common way to find, access, assemble & interact with people
  • One common way to find, access, share & transact information
  • One common way to connect devices, services, organizations & activities

Phone

  • Like the PC, provide a natural UI & common controls for voice/audio, camera, touch
  • Like the PC, provide facilities for local data privacy, portability, and reliable/fast/full access to data
  • Like the PC, use & recombine applications, data, documents and media
  • Provide a secure and reliable experience
  • Provide rich access to media/data through similar facilities afforded by the PC and Web "tiers"

KEY TAKEAWAY: Microsoft's Software + Services strategy includes driving rich user experiences across multiple mediums highlighting the strategic advantage afforded to us through the Internet.  Our client runtimes such as Silverlight and WPF, coupled with our Windows brand (to include mobile) and key advances in our Internet Explorer technology will position us to deliver the next generation of user experiences on top of our investments in our Windows Azure Services Platform.
 
Windows 7 is Coming!
A lot of emphasis was put on Windows 7, as it was one of the main things PDC attendees wanted to see.  Most of the other topics discussed during the keynotes were further fleshed out during the breakout sessions, but I'll provide some commentary about those in this post.  Steve Sinofsky, Senior VP, Windows division discussed our strategy around Windows and it's future as it relates to delivering next generation experiences.  During his keynote, Sinofsky laid out our strategy around Windows 7 as it relates to what investments we're making in the OS to build upon the platform established by Windows Vista, learning from the mistakes we made with Vista (and yes, he openly said we made mistakes :-)) while at the same time building upon the groundbreaking work we've done in the area of Windows security, to deliver a product that we'll be proud to sell and our customers will be proud to use.  In his "Transition from Windows Vista" discussion, he highlighted several lessons learned from our Vista experience:

  1. Ship solid Windows Server 2008 and Windows Vista SP1 products - With the negative press we got from the initial launch of Windows Vista, it was imperative that we shipped a solid Windows Server 2008 product and SP1 update to Windows Vista.  In reference to Vista SP1, we needed to ensure that we addressed the key issues highlighted by our customer feedback in efforts to drive broader adoption of Vista (and not just on new PC sales)
  2. Ecosystem Readiness - Driving Vista readiness was a key area during the launch lifecycle where we needed to spend more energy.  Through working with our partners, ISVs, OEMs, we need to ensure that they are equipped with the information they need in order to make Vista the platform of choice for new deployments, highlighting the enhanced capabilities of the OS, and showing clear evidence of the value add for customers making the investment
  3. Standards - Our investment in standards support as it relates to security, network protocols, etc has positioned us as a leader in driving industry standardization around the aforementioned areas in addition to new capabilities we introduce in future versions of the OS
  4. Compatibility - Working closely with our OEMs to drive more hardware compatibility with Vista is key.  Microsoft is making significant investments in this arena, particularly as we drive towards the RTM of Windows 7, to ensure that customers have the best possible experience with Windows 7
  5. Scenarios - Clear identification/clarification of Windows usage scenarios is key for us in improving the overall quality of the product.  We are taking very proactive measures to learn how the product is being used and what critical areas we need to focus on to deliver the best possible experience

Julie Larson-Green gave the PDC audience a demonstration of the Windows 7 (build 6933) and it was met with much applause and "ooohs and aaahs" :-)  To quickly summarize the things she demoed/discussed:

  • "One click" experience when navigating Windows taskbar and menus.  For example, if you have multiple instances of an application (say Internet Explorer) open on your desktop, by hovering over the any of the windows in the taskbar, you get a thumbnail view of all the instances, thereby allowing you to select whichever instance you want from a single mouse click
  • Taskbar "Jump List" which essentially gives you an MRU list of the most recently launched applications & documents.  For example, if you have an Excel icon in your taskbar that you use to launch Excel, by hovering over the icon you can see a MRU list of Excel workbooks you've opened.  This capability extends to the Windows menu as well.
  • "Libraries" which help you aggregate and search content across multiple hard drives and machines connected within your network
  • "Homegroups", which gives you the ability to creates groups of Windows 7-based machines or other computing resources (ex: printers) within your home network and when your machine is connected, have any one of those machines automatically discover/connect to those resources.
  • Ability for Windows 7 to automatically detect whether you are on your home or work network and automatically change your connection to network resources (such as printers) without you having to do any manual configuration :-)
    Docable windows which essentially allows you to drag an application window to the left/top/right side of the screen and have it dock (or "snap") to that location.
  • Windows Gadgets, which now work differently.  No more dependency of the Windows Gadget Sidebar.  Gadgets now float freely on the desktop
  • Enhancements to the task tray that essentially allow you to organize what goes into the task tray (and not have it "dictated" to you by the installed application/driver/service)
  • Windows 7 touch features extend to Windows Live Services such as Virtual Earth

Sinofsky stressed our focus on "Fundamentals" in our engineering efforts as we drive towards the RTM of Windows 7.  In his fundamentals discussion, he focused on the following:
 
Decrease

  • Memory Footprint
  • Disk I/O
  • Power Consumption

Increase

  • Speed (Faster Boot, Device Ready)
  • Responsiveness (Start menu, Taskbar)
  • Scale (256 processors)  - Yes, you read it right, Windows 7 is being positioned to support up to 256 processors)

It is important to understand though that Windows 7 shouldn't discount the benefits of moving to Windows Viata.  This essentially goes without saying, but opting Windows Vista positions enterprises to more easily migrate to Windows 7 when it becomes available.  Windows 7 is going to present some very compelling features that may have folks thinking they should wait, however, it's key that Microsoft wil continue to drive Windows Vista as the base platform to build upon.  Sinofsky made it evident in his keynote that we're still committed to Windows Vista.
 
What about Windows XP?
We will continue to push out updates to Windows XP for our XP customers.  It is important though to get them moving towards Windows Vista.
 
Developer Platform
Scott Guthrie came on stage and talked about our investments in our client runtimes (e.g. Silverlight, WPF) as well as our enhancements in Internet Explorer and IIS7, and our web development platform (e.g. ASP.NET, ASP.NET AJAX, ASP.NET MVC, ASP.NET Dynamic Data) as well as laid some groundwork for where our future investments are as we evolve these platforms/technologies.
 
Windows Live Services
David Treadwell rounded out the keynote to talk about our investment in the Live Services component of the Windows Azure platform.  He discussed the Windows Live Essentials offering (currently in beta and available for download at http://download.live.com/) which provides capabilities like email, blogging, messaging, photos, etc. In addition Treadwell talked about the rich integration of Windows Live Platform with Windows 7 and how key Windows Live capabilities will be a natural part of the Windows 7.
 
Announcements

  • Windows Live Framework - Provides a developer framework for building applications on the Live Services platform.
  • Office Web Applications - Web-based equivalents of the Office client applications (Word, Excel, PowerPoint and OneNote) During the keynotes, the Group PM of Office demonstrated the Office Web Applications.  This provides a solid platform for delivering web-enabled versions of our popular office suite that BLOWS THE DOORS off the competition.

IMPORTANT NOTE: As it relates to Office Web Applications, this should NOT be viewed as a replacement for the client suite.  As a matter of fact, the web applications should be viewed as complementary and a part of of the Microsoft S+S strategy.  It is important that this not be positioned as an alternative, but as a solution to further extend the reach of Office. 

The day was filled with great breakout sessions that covered the following products/technologies:

Resources

  • Engineering Windows 7 Blog - Great blog that gives a "behind the scenes" view, from the perspectives of the product team themselves, on how Windows 7 is being built
  • Windows Azure Portal - Provides information on the Windows Azure platform as well as it's sub-components (ex: Live Services)

That's about all I have for now :-)  Hope it's useful.




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.




I mentioned in a previous post the work I've been doing with the Library of Congress.  It has been a great effort and an excellent showcase of the power and flexibility of our platform.  On April 12th, we closed another chapter in this unprecendented effort by officially launching their myLOC.gov website.  The website has been architected and built on top of a platform consisting of SharePoint Server 2007, Silverlight, Windows Communication Foundation, and Windows Live ID.  The launch of the myLOC.gov site on this past Saturday marked the culmination of 9 months of work to deliver a compelling solution that's geared at reshaping how Americans view American History by literally bringing many of the historical treasures contained within the walls of the Library of Congress to life and allowing not only the American people, but the entire world to experience this great treasure.

The launch of the myLOC.gov website capped off a great week for the Library of Congress and Microsoft.  As a part of the revitalized digital experience, coined the "Library of Congress Experience", is also the launch of Windows Presentation Foundation (WPF)-based interactive touch screen kiosks that's running within the Library of Congress's Thomas Jefferson Building in DC.  There, US citizens, and people travelling to DC from around the world, will be able to enage within an immersive technology experience that allows people to interact with the Library's historical collections in new and exciting ways.  The myLOC.gov site takes this onsite experience and brings it to the web!

In the coming weeks, myself, in combination with our great partners, Portal Solutions and Schematic will be creating a "How We Did It" article (likely to be posted on the SharePoint Team Blog), in the same vein as the two-part article I published on another great effort with Conservation International, that'll dive deeper into the overall solution architecture and cover specifics around logical and physical architecture as well as discuss implementation details of key features and functionality.

So stay tuned!




The Silverlight 2 Retail Financial Services Demonstrator provides essential resources to help customers and ISVs to create their own demo or proof of concept based on the Silverlight 2 platform. Included in the kit are:

  • Functional Silverlight 2 Website (Woodgrove Financial) - View it online!
  • Installation, customization and demo script that provides step by step instructions for installing the demo, customizing the data shown in the demo as well has how to step through the site with talking points.
  • Source Code – that is right, you also get to see and use the source code to see what is going on under the covers and use as a foundation for your own POC!

Why use Silverlight 2 and the Demonstrator?

  • Immersive, cross-platform / cross-browser user experience
  • Insightful visualizations, improved end user experience that can be personalized and branded
  • Great performance, reuse of .NET code on the web (cross platform!!)
  • Great examples of using visualizations to help sell and service financial products including cause and effect, multiple scenarios, unified communications, etc…



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.