92

Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Embed Size (px)

DESCRIPTION

KWizCom's Shai Petel discusses upgrading to SharePoint 2010, using his experience of upgrading KWizCom's SharePoint List Forms Extension Feature to SharePoint 2010 as an example

Citation preview

Page 1: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009
Page 2: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Case Study: Upgrading SLFE from 2007 to 2010Shai Petel ([email protected])VP R&D, Microsoft Certified TrainerKWizCom Corporation

Page 3: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionUpgrading an existing solutionVersion management

Page 4: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Goals

In this session you will learn about the new VS2010 extensions for WSS

You will learn how to migrate your existing solutions into the new environment reducing the migration process time to minimum.

This session will allow you to make better decisions on your current solutions for 2007 today that will make the transition to 2010 easy and simple.

Page 5: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionCreating a new solutionChoose a project templateSetup trust levelAdding new componentsOne-click deploy or package

Upgrading an existing solutionVersion management

Page 6: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New Solution Before you begin…

Is your team ready for 2010?Silverlight, Ajax, JSONVisual web parts! (or is it?)

Prepare to be hosted!Limit customization to site collection levelPrefer to support sandboxed solutions*

Page 7: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New Solution Before you begin…

Creating a new web part?

Inherit from ASP.NET!

• SharePoint web parts are still supported for backwards compatibility

• Do not change base for existing web parts!!!

Page 8: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionBefore you begin…

Before you begin… you will need to set up your development environment:

• Visual studio 2010 + VSeWSS• SharePoint Designer

Choose your development environment setup

• Install in one• Client / server• Virtualize! (recommended).

Page 9: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New Solution Before you begin…

Install all components on developer machine

Pros Cons

Performance

Slower Hardware

Developer

control

Isolated

Easy to mess up

Hard to backup

Win7/Win2k8

64bit

Page 10: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New Solution Before you begin…

Install developer components on development client and use remote debugger to connect to development server (not so bad, but still…)

Pros Cons

Runtime

Slower

computers

Hard to mess up

the server

Easy to backup

No control on

farm

Not isolated

Page 11: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New Solution Before you begin…

Virtualize! (Recommended) Pros Cons

Restore

Backup,

duplicate,

portable!

Developer full

control on farm

Isolated

Strong computer

Win7 or Win2k8

64bit only

Page 12: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionCreating a new solutionChoose a project templateSetup trust levelAdding new componentsOne-click deploy or package

Upgrading an existing solutionVersion management

Page 13: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionCreating a new solution

Open VS2010

Page 14: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionCreating a new solution

Click on new project. Go to:C# -> SharePoint -> 2010

templates

Page 15: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionCreating a new solutionChoose a project templateSetup trust levelAdding new componentsOne-click deploy or package

Upgrading an existing solutionVersion management

Page 16: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template

There are a lot of new project templates to choose from!

But fear not – You can easily add any component to any project later

Page 17: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Introducing

Visual Web Part

Page 18: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Visual web part

This project template cannot be sandboxed

Page 19: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Visual web part

Project created with all web part files for you

Page 20: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Visual web part

A feature will be created for you automatically

Page 21: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Visual web part

A package will be created for you automatically

Page 22: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Event receiver

This project template can be sandboxed

Page 23: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Event receiver“Create

project” Wizard

New types of receiver

s

New events

to handle!

Page 24: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Event receiver

Adds all needed files for you

Page 25: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Introducing

Business Data Catalogue Tools

Page 26: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Business Data Catalogue Model

This project template can be sandboxed

Page 27: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Business Data Catalogue Model

BCS editing tools

Page 28: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Business Data Catalogue Model

Packaged and deployed as a farm level feature

Page 29: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Content type

This project template can be sandboxed

Page 30: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Content type“Create

content type”

Wizard

More work

needed on the wizard though

Page 31: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – List definition

This project template cannot be sandboxed

Page 32: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Content type“Create

List Def.”

Wizard

Page 33: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Content typeSchema

File

Create Elements file

for featureOptiona

l: Create

list instance XML

Page 34: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Content typePackaged and deployed as a web

feature

Page 35: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Workflow

This project template cannot be sandboxed

Page 36: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Workflow

Sequential workflow is designed to execute a series of predefined steps to accomplish a certain taskState machine workflows are designed to work in event-driven scenarios. A state machine workflow contains two or more states, with one state being the active state at any given time

Page 37: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Workflow

“State machine” wizard

Choose history

and tasks lists.* Also

choose a list if you selected

a list workflow

type

Workflow initiation options

Page 38: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Workflow

Designer has different options for site and list workflows

Page 39: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Workflow

Add sequential workflow, with its own designer

Page 40: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionChoose a project template – Workflow

Creates separate elements file for each workflow

Page 41: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionCreating a new solutionChoose a project templateSetup trust levelAdding new componentsOne-click deploy or package

Upgrading an existing solutionVersion management

Page 42: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Introducing

Your very own sandbox!

Page 43: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionSetup trust level

Choose your destiny

Page 44: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionSetup trust level

To trust, or not to trust?Sandbox solutions is a way for you to deploy a set of features and components to your SharePoint site collection that will have no effect on other site collectionsSandbox solutions have limited support for extensibility and not all SharePoint customizations are allowedSandboxed solutions can be installed and deployed by site owner from site settings

Page 45: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionSetup trust level

What does this setting change?This setting does not get written to WSP package, but will allow VS to validate your content is supported within a sandboxes solutionSolution assemblies within a sandboxed solution are not installed to GAC/Bin, and not running on W3WP process. Instead they run under SPUCWorkerProcessSandboxed solutions can be deployed as a full-trusted solution as well

Page 46: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionSetup trust level

What is supported within a sandbox solution?

List Definitions, List Instances, Content Types/FieldsWeb Parts (non visual)Event receivers: Item, List or WebDeclarative workflows, Custom Actions (Ribbon)Onet.xml, WebTemplate feature element (instead of Webtemp.xml) allows for site collection level site definitions!More…

Page 47: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionSetup trust level

What is not supported within a sandbox solution?

Mapped folders (14 hive)Some API will not work in sandboxed modeVisual Web PartsApplication PagesCustom Action GroupHideCustomAction elementWeb Application/Farm-scoped featuresWorkflows with code

Page 48: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionSetup trust level

How do I deploy a sandbox solution?

Upload to Solutions gallery

Activate

Page 49: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionSetup trust level

Cannot activate solution?

Go to central administration and make sure windows SharePoint user code service is started

Page 50: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionSetup trust level

Keep in mind:Deploying a sandbox solution automatically activates features within (unless specifically specified not to in the feature)To disable support for sandbox solutions simply stop the user code serviceUpgrading sandbox solutions are done manually site collection at a time

Page 51: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionCreating a new solutionChoose a project templateSetup trust levelAdding new componentsOne-click deploy or package

Upgrading an existing solutionVersion management

Page 52: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionAdding new components

It is extremely easy to add any component to any project you likeThis allows you to easily create more complex solutions that includes several types of customizations such as:

Feature – for activationWeb parts – for visual UILists and list definitions for storing dataField types, event handlers, workflows and much more!

Page 53: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionAdding new components

Add mapped folder

Page 54: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionAdding new components

Add other components

Page 55: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionCreating a new solutionChoose a project templateSetup trust levelAdding new componentsOne-click deploy or package

Upgrading an existing solutionVersion management

Page 56: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionOne-click deploy or package

Feature and Package editors available

Page 57: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Building a New SolutionOne-click deploy or package

Project menu allows you to build, deploy to development server, and to package using a WSP

Build – compile code onlyPackage – compiles and builds the WSP packageDeploy – compile, package anddeploy the packageRetract – removes the solutionpackage from server

Page 58: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionUpgrading an existing solution

Upgrading a non-VSeWSS solutionUpgrading a 2005/2008 VSeWSS solutionUpgrading a WSP package

Version management

Page 59: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Upgrading an Existing SolutionUpgrading an existing solutionGeneral upgrading concerns• Old API (Microsoft.SharePoint.dll)• New API (Microsoft.SharePoint.Linq.dll,

Microsoft.SharePoint.Client.dll, Microsoft.SharePoint.Taxonomy.dll )

What’s new?• New technologies available: Silverlight, AJAX, JSON• New UI: Ribbon, pop ups

Important! Tips for safer upgrade• Keep the same namespaces and assembly evidence• Keep elements GUID (Features, List/Site Definitions, Etc.)• Existing web parts – Keep same base class!

Page 60: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionUpgrading an existing solution

Upgrading a non-VSeWSS solutionUpgrading a 2005/2008 VSeWSS solutionUpgrading a WSP package

Version management

Page 61: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Upgrading an Existing SolutionUpgrading a non-VSeWSS solution

Case study: Upgrading KWizCom SharePoint List Forms ExtensionsWhat we had in 2007:

controltemplates ASCX files. New control templates and updating existing ones*Application settings pagesList settings linkFeature activated, MSI installerExternal references to utilities/shared resources

Page 62: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Upgrading an Existing SolutionUpgrading a non-VSeWSS solution

SLFE version 1.*.*

Page 63: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Upgrading an Existing SolutionUpgrading a non-VSeWSS solution

What we added in 2010:

List settings ribbon buttonsAdd CSS file using DelegateWSP packaging

Page 64: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

SLFE Project

Live demo of SLFE in Visual Studio

demo

Page 65: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Upgrading an Existing SolutionUpgrading a non-VSeWSS solution

2010 New UIRibbon (resizable)Using image store filesand CSS class

Page 66: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

SLFE Solution

Live demo of SLFE in SharePoint

demo

Page 67: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Upgrading an Existing SolutionUpgrading a non-VSeWSS solution

ConclusionIn order to make the most of VS2010 and VS2010 extensions for WSS its best to build a new project skeleton and import existing code into it.If you already have a WSP package you can use it to build your project skeleton from it (reverse engineer) but your .NET code will not be included!

Page 68: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Upgrading an Existing SolutionUpgrading a non-VSeWSS solution

Open VS2010 and Create empty project

Build the skeleton of the project

Set namespace and assembly evidence to the same as in your pre-upgrade

Manually import your code to the new project

Estimated time: 1 hour to 4 hours of 1 developer to have the solution ready for packaging.

Steps for upgrading a project

Page 69: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionUpgrading an existing solution

Upgrading a non-VSeWSS solutionUpgrading a 2005/2008 VSeWSS solutionUpgrading a WSP package

Version management

Page 70: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Upgrading an Existing SolutionUpgrading a 2005/2008 VSeWSS solutionUnfortunately, you cannot convert

VS2005/2008 projects using visual studio aloneTrying to do so will invoke this error:“The project type is not supported by this installation.”

Page 71: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Upgrading an Existing SolutionUpgrading a 2005/2008 VSeWSS solutionBut fear not! VSeWSS2010 comes with

a conversion tool from VSeWSS2008 only.

For all other projects that used WSP for deployment - This next option might be what you are looking for!

Page 72: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionUpgrading an existing solution

Upgrading a non-VSeWSS solutionUpgrading a 2005/2008 VSeWSS solutionUpgrading a WSP package

Version management

Page 73: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Upgrading an Existing SolutionUpgrading a WSP package

If you have a WSP packaged solution, you can import it into 2010!

Page 74: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Upgrading an Existing SolutionUpgrading a WSP package

Import wizard

Your code doesnot get

imported!

Page 75: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Upgrading an Existing SolutionUpgrading a WSP package

The import process will build your skeleton for you

After the import is done, some work is needed

Page 76: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

SLFE Solution

Importing WSP package

demo

Page 77: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionUpgrading an existing solutionVersion management

How can I mark versionsShared resourcesUpgrade / downgrade solution version

Page 78: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Version ManagementVersion management

Why do we need version management?

Tractability of bugs or changesPerform upgrade operations on existing installations (add a field, create hidden list etc.)Monitor Dev, Staging and production deployment running code

Not for ISV only!In house development team? Get used to working with versioned packages!

Page 79: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionUpgrading an existing solutionVersion management

How can I mark versionsShared resourcesUpgrade / downgrade solution version

Page 80: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Version ManagementHow can I mark versions

Cannot change assembly version!Currently no supportfor marking package,but you can markfeatures:

Mark versionnumber in yourcode:

Page 81: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionUpgrading an existing solutionVersion management

How can I mark versionsShared resourcesUpgrade / downgrade solution version

Page 82: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Version ManagementShared resources

You may need to add shared resources to your projects

DLL’s (utility classes, base classes)Sandbox – no problemGAC – no problemBIN deployment – version collisions may occur.

Shared resources (Images/CSS files)Use sub folders with utilities version number.For example:/_layouts/KWizCom_Shared_2.0.01

Page 83: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionUpgrading an existing solutionVersion management

How can I mark versionsShared resourcesUpgrade / downgrade solution version

Page 84: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Version ManagementUpgrade / downgrade solution version

Built in support for upgrade operations!SharePoint will allow mark if feature requires upgradeMany upgrade operations supported, and custom upgrade handlers can be coded

Page 85: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Version ManagementUpgrade / downgrade solution version

Upgrading / downgrading is easy!Once you deploy several versions of same solution you will be able to upgrade instead of activate!

Page 86: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Content

Building a new solutionUpgrading an existing solutionVersion management

Page 87: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Summary

You now have real-world experience in upgrading components into 2010

There is a lot more to see

Come visit us at our booth to get the complete presentation and for 1 on 1 talks!

Overall, It’s been a pleasure!

Page 88: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Contact Us

For more information on SharePoint 2010 please don’t hesitate to contact us!

• At our booth out side• Email: [email protected]• Online: http://www.kwizcom.com• Blog: http://kwizcom.blogspot.com

* Learn * Plan * Deploy * Build *

Call to learn how KWizCom can assist you!

Page 89: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009
Page 90: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Remember to fill out your evaluations on MySPC for your

chance to win two HD web cams and a designer mouse

(3 prizes awarded daily)

Page 91: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

Learn More about SharePoint 2010

Information forIT Prosat TechNet

http://MSSharePointITPro.com

Information forDevelopers

at MSDNhttp://MSSharePointDeveloper.com

Information forEveryone

http://SharePoint.Microsoft.com

Page 92: Upgrade to SharePoint 2010, Shai Petel SharePoint Conference Las Vegas Sep 2009

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.