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!







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.




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!




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)



Our Architecture Strategy Team has recently unveiled a great solution geared at simplifying the task of building Office Business Applications (OBA) using the Microsoft Office System platform. 

The solution, called the OBA Composition Reference Toolkit,  surfaces the underlying composition capabilities of the 2007 Office System and provides a prescriptive application composition experience for Information Workers to build OBA solutions. 

You can head over to the Architecture Center on MSDN to get more information about the solution and download the bits.  Right now, only the binaries are available, but the plan is to release the source code by mid-March.




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.




Microsoft recently announced an experimental developer toolset for building multi-tier web applications using existing and familiar tools, techniques, and patterns, called Microsot Live Labs Volta.

Volta’s declarative tier-splitting enables developers to postpone architectural decisions about distribution until the last possible responsible moment. It enables new end-to-end profiling and testing for higher levels of application performance, robustness, and reliability. In effect, Volta extends the .NET platform to further enable the development of software+services applications, using existing and familiar tools and techniques.

You architect and build your application as a .NET client application, assigning the portions of the application that run on the server tier and client tier late in the development process. You can target either web browsers or the CLR as clients and Volta handles the complexities of tier-splitting. The compiler creates cross-browser JavaScript for the client tier, web services for the server tier, and all communication, serialization, synchronization, security, and other boilerplate code to tie the tiers together. In effect, Volta offers a best-effort experience in multiple environments without requiring tailoring of the application.

You can download a technology preview of Volta from the Live Labs website.




  

Tim Sneath introduces a new Silverlight sample developed by Vertigo Software (excerpt taken from his blog post)

"Video.Show is an end-to-end solution that provides a reference-quality sample for user-generated video content sites. Taking advantage of all of our latest technologies: .NET Framework 3.5, ASP.NET AJAX, LINQ, Silverlight, Expression Encoder and Silverlight Streaming, Video.Show provides support for uploading, encoding, tagging, viewing and commenting on videos. Since not many people are building video sites like YouTube that have millions of videos, we've optimized the experience for sites with tens to thousands of videos."

The source code for this reference sample has been posted to CodePlex.




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.