Upload
leandro-lopes
View
229
Download
0
Embed Size (px)
Citation preview
8/6/2019 Visual Studio vNext Preview Web[1]
1/32
Visual Studio vNext:
Application LifecycleManagementImproving the productivity and predictability of
software construction for teams of all sizes
PREVIEWCONT
ENT
8/6/2019 Visual Studio vNext Preview Web[1]
2/32
2
2011 Microsoft Corporation. All rights reserved. This document is provided as-is. Information and views expressed in this
document, including URL and other Internet Web site references, may change without notice. You bear the risk of using it.
This document does not provide you with any legal rights to any intellectual property in any Microsoft
product. You may copy and use this document for your internal, reference purposes.
On May 16, 2011 at TechEd North America Microsoft offered a glimpse of the future for
Visual Studio Application Lifecycle Management tools. This whitepaper is designed to
provide additional context and outline the problems we are setting out to solve, how
they relate to problems we face as an industry and how, together, we can improve the
effectiveness of the Application Lifecycle Management (ALM) process.
8/6/2019 Visual Studio vNext Preview Web[1]
3/32
ContentsContinuous Change in Stakeholder Expectations 2
Modern Application Lifecycle Management 3
Application Lifecycle 3
Adapting to Market Forces 4
Reducing Waste across the Lifecycle 4
Embracing Agile Development Best Practices 5
Visual Studio Application Lifecycle Management 6
Laying the Foundation VS2005 & VS2008 6
Reducing Waste in Software Construction VS2010 6
Visual Studio vNext: Expanding Throughout the Lifecycle and Embracing New Participants 8
Agile Planning Tools 9
Lightweight Requirements 13
Stakeholders Feedback 15
Agile Quality Assurance 18
Aligning Development with Operations 21
Enhanced User Experience 23
Closing 26
8/6/2019 Visual Studio vNext Preview Web[1]
4/32
2
For the launch of Visual Studio 2010 the tag line was /* Life Ru Cde */. This was to emphasize that so
many human activities are intertwined with software. The opportunities to create new experiences, which
turn data into insight and transform ideas into action, have never been as abundant as they are now.
However as an industry we continue to fall short of our full potential - the majority of money
spent on information technology is not in the creation of new value for the user but instead in maintaining
existing solutions, managing risk and addressing communication bottlenecks inherent in the process.
This results in an inefficient use of resources and limits the ability to meet customer needs.
Over the years the industry has worked to improve the
effectiveness and predictability of development. While the
effectiveness of many parts of the software construction,
support and maintenance process have undergone significant
productivity enhancements, much of the progress has been made
in silos of productivity. The vast majorit y of waste in the processis still in the handoffs and transitions across the lifecycle, these
sources of waste have not yet been sufficiently addressed.
The situation is amplified by the fact that stakeholders expect more
from software. With the transition to the cloud the expectation is
that updates to production systems to occur in minutes not days or weeks, the user experience on consumer
devices such as your mobile phone are expected for enterprise systems as well. We are in a stage of increasing
demands across the team, which necessitates that we become more connected than in any time in the past .
Over the last five years Microsoft has been on a journey to help teams be as
effective as possible and to tackle this broader set of issues. We have set out tocreate an Application Lifecycle Management offering which prioritizes:
Collaboration through integration across all roles in the team
Timely and actionable feedback to reduce wasted effort
Leveraging natural and appropriate tools for the task at hand
Transparent and agile best practices to be adopted at will
At TechEd North America, we illustrated a number of scenarios that span Visual Studio vNext and a set of
associated integrations. These scenarios improve the creation, maintenance and support of software solutions
by focusing on improving the workflow across the entire team as well as and across the entire lifecycle.
This whitepaper will provide additional context and outline the problems we are committed to resolving,
how they relate to problems diff iculties we face as an industry and how, together, we can improve the
effectiveness of Application Lifecycle Management.
Continuous Change in
Stakeholder Expectations
the majority of money spent
on information technology
is not in the creation of
new value for the user
The situation is amplified by
the fact that stakeholders
expect more from software
8/6/2019 Visual Studio vNext Preview Web[1]
5/32
3
Traditional application lifecycle management approaches have made the assumption that the creation of
software development projects is a straightforward and sequential process. The underlying assumption is that
requirements can be understood easily and should be adequately defined up front, with resultant phases of the
project executed upon this static baseline.
However, this is almost never the case; its very diff icult if not impossible to understand all of the requirements
of a software development project up front. Unfortunately, many of the legacy approaches to Application
Lifecycle Management fail to acknowledge this fac t, causing teams to use inef fective collaboration tools that
often fall short of success.
Application Lifecycle
Software should be viewed as a living asset, with the Application Lifecycle representing a continuum
across the connected activities of a products lifetime, spanning: the identification of business needs, software
construction, release management and monitoring, support and maintenance, through to the eventual
retirement of the solution.
Two flows are critical across the lifecycle which span multiple teams, roles and individuals:
1. concept to working systems shortening time to value, and
2. discovery of an issue to resolution lowering mean time to resolution
An Application Lifecycle Management toolset must support these f lows and accelerate
the transitions between the development team and the operations team.
Modern Application
Lifecycle Management
Figure 1 :Establishing a
Flow between Development
and Operations ALM
As new requirements are
established applications
evolve. There is a tight
connection between the
development and operations
team, wherever hand-offs
exist there is potential for
bottlenecks to occur.
DEVELOP OPERATE
Sprint Monitor
RequirementsProductBacklog
OperationsBacklog
Working Software
8/6/2019 Visual Studio vNext Preview Web[1]
6/32
4
Adapting to Market Forces
Almost all segments of the industry are being pushed to achieve more. Organizations of all sizes are
grappling with a number of issues that demand they continue to mature their approach to application creation,
support and maintenance. As an industry, we see dynamics such as:
Toolsets need to embrace these forces they must help teams deliver value faster than ever before
across myriad technologies while addressing the inherit complexity of solutions and supporting effec tive
communication across the entire team regardless of scale or location.
Reducing Waste across the Lifecycle
Waste is created when gaps in the workflow of teams exist, these gaps are typified by handoffs and
ineffecti ve processes that impede the ability of the team to interact. For example, when individuals are:
Successful, modern Application Lifecycle Management systems mus t have a specific focus on eliminatingthe sources of waste. This is only possible through rich and actionable integrations that span project
contributors and the provision of a single, integrated master data store allowing rich insight into the
overall status and health of the project.
Increased opportunities
ongoing maturation of the underlying
technology and supporting processes
such as cloud computing
Increased complexity
as a result of the
ability to create more connected,
composite and heterogeneous systems
leading to more diverse systems
Increased pressure
drive to deliver results at an increased pace
and with reduced resources such as
increased use of outsourcing
Increased communication
additional participants in software projects
as we ensure the best possible experience is
delivered
Not exposed to context across the
totality of the project misaligned and competing priorities
Unable to share sufficient context
waste is created by
handoffs across the team and disciplines that
become non-actionable, creating re-work
Are forced to work with
unnatural tools
time spent learning tools and being
forced to repetitively shift context
Are forced to adopt processes they
dont understand
Increased overhead and lost cycles
of productivity
8/6/2019 Visual Studio vNext Preview Web[1]
7/32
5
Embracing Agile Development Best Practices
Agile approaches to software development and, in par ticular, Scrum have become increasing popular.
Key underlying goals common to these approaches are to dramatically improve visibility across the
project team, improve interactivity bet ween team members and increase the flow of value to the customer.
Many best practices exist across Agile approaches. These practices can be adopted incrementally and
applied to almost any project and process, including formal approaches such as CMMI or traditional approach-
es such as water fall. These approaches can involve product back-logs, iterations or sprints, daily stand-ups,
task boards, burn-down charts, st akeholder feedback, unit testing, pair programming, etc.
Stakeholder Gives Feedback
FeedbackIncorporated
Daily Cycles
Runa Sprint
Plana Sprint
Manage theBacklog
Telling thestory
Ask forFeedback
Deploy toStakeholders
Application Lifecycle Management solutions must allow you to leverage Agile best practices while adapting and
supporting your current approach so you can incrementally leverage those practices as you see fit. They also need to
provide a platform to scale the processes to work within the needs of your organization.
Figure 2: Continuous
Application Delivery
the core elements of
the Agile workflow
enable teams tofocus on continuous
application delivery.
8/6/2019 Visual Studio vNext Preview Web[1]
8/32
6
Visual Studio Application
Lifecycle ManagementThe technologies demonstrated at TechEd build on past Visual Studio releases; they represent a sample of our
third major release of Microsofts Application Lifecycle Management solution. Its useful to reflect back on our
earlier strategies to understand how they connect with the evolution of our offering.
Figure 3: Bringing the team Together The rst two major waves of innovation connected many parts of the teamtogether creating trustworthy and transparent bridges to improve the ow of information.
Laying the Foundation VS2005 & VS2008
When Visual Studio Team System first launched in 2005, the focus was on delivering
transparency by creating a igle data tre that housed a traparet backlg f wrk for theentire team (Team Foundation Server).
This data store was tightly integrated with a cutmizable develpmet prce so the system could be
set up in multiple configurations adapting to your specific needs. The integration between the development
environment and the data store l et developers take items off the shared backlog of work. Once they completed
a change, they could leverage the itegrated check-i experiece to connect the completed work with the
related work-items directly within the Visual Studio development environment.
This created a transparent process where developers could go about their day-to-day work
and, with minimal effort, ensure that the project plan was up-to-date. The team could view
autmated, real-time reprt and the project management team could leverage their favrite tlsuch as Microsoft Project to track progress.
Reducing Waste in Software Construction VS2010
In our most recent release, Visual Studio 2010, the focus was on further enhancing the flow of
information across the team and improving software quality. We connected the quality assurance process
with the development team and made udertadig exitig ytem ad deigig ytem deeply
connected parts of the development lifecycle.
8/6/2019 Visual Studio vNext Preview Web[1]
9/32
7
We introduced a set oftl built frm the grud up t let teter actively participate i the
lifecycle and permitted, for the first time, these closely connected ac tivities (development and testing)
share a common view of success.
We created a virtualized lab evirmet with itegrated quality dahbard that offered a full
360-degree view on progress. We also supported scenarios where testers could easily file bugs that
included all of the metadata a developer needed to reproduce. These scenarios also addressed the back-
and-forth game of bug Ping-Pong between teams one of the primar y causes of waste in teams.
In addition, we brought the benefits of our vision to developers on other platforms with
firt party upprt fr the Eclipe develpmet evirmet Macintosh, Windows and Linux. This
let teams working on a broad por tfolio of composite and heterogeneous applications share the benef its
of a shared team collaboration infrastructure.
8/6/2019 Visual Studio vNext Preview Web[1]
10/32
8
Visual Studio vNext: Expanding
Throughout the Lifecycle and
Embracing New ParticipantsWith Visual Studio vNext we set out to improve the f low of information between the voice of the customer (a
role referred to as the Product Owner in SCRUM) and the Team and between the Product Ownerand the customer Stakeholders.
We have also continued our focus on driving better software quality in every cycle of development,
from check in to sprint. We free the team from distractions and keep them in the zone by automating many of
the common interactions and bookkeeping activities.
Lets look at several of the scenarios we shared at TechEd that are part of Visual Studio vNext:
Agile Planning Tools
transparency across the planning
process and full team participation.
Tools scale as required and best
practices can be adopted at your
pace
Lightweight Requirements
a natural way to capture and receive
feedback on requirements early in
the process
Stakeholder Feedback
as a result of the
working code which matches the
expectations of stakeholders.
New tools to receive and
adapt to feedback throughout
the development process
Agile Quality Assurance
increased code quality with code
review support, enhanced unit
testing frameworks and new
exploratory testing support
Aligning Development
with Operations
increased connections and insight
between the operations and
development teams lowering
the time it takes to fix a bug in
production
Enhanced User Experience
more time in the zone,
through improved experiences
for day-to-day tasks
8/6/2019 Visual Studio vNext Preview Web[1]
11/32
9
Figure 4: Grooming the Product Backlog The product backlog shows a single view of the current
backlog of work that can be dynamically re-ordered and grouped.
This enables Product Owner to quickly prioritize work and outline dependencies and relationships.
Agile Planning Tools
As a project progresses, planned work evolves and new work is discovered whether its the
development of a new user story, the discovery of an issue in production or the fact that a team member
is called out of the office for the day. As these changes occur the plan also needs to evolve Agile teams
expect and embrace change.
In Visual Studio vNext, we offer a variety of tools to let the entire team actively participate in
the planning process in ways that are both natural to the user and allow them to stay in contextwith the work they are performing.
Our tools dont force you to adopt a specific process. Instead, they let you leverage Agile best
practices. They also enable these best practices to be executed at scale with integrations to portfolio
management tools and the ability to manage large geographically distributed teams.
8/6/2019 Visual Studio vNext Preview Web[1]
12/32
10
Figure 5: Planning a Sprint Once work is prioritized, its time for the team to plan the next sprint/i teration,
identify the tasks and star t allocating the work.
The enhanced work item management tools in Team Web Access make this process simple by pre-populating
required data and streamline the association and update process.
The sprint planning tools help your team effec tively allocate work balancing load with available capacity.
In this screenshot interactive bar charts show team member capacity and the burn down progress for the
project. Enabling real-time feedback on the updates to the plan.
8/6/2019 Visual Studio vNext Preview Web[1]
13/32
11
Figure 6: Task Board in Team Web Access The task board offer s the ability to update the status of work
items visually. Its a popular way to see the progress a team is making against each product backlog i tem and
to get a quick focus on remaining work.
The task board adheres to the business rules set out in the process template, such as state
transitions, regardless of the template chosen for the project .
Integrated into the taskboard is a real-time burndown chart of the remaining work in the teams sprint.
8/6/2019 Visual Studio vNext Preview Web[1]
14/32
12
Figure 7: Connecting with Project Server This provides up-to-date insight into portfolio execution,
alignment with strategic objectives and resource utilization of software development projects by
leveraging the data stored in different systems.
This automates the exchange of project information across teams and improves coordination between teams
by using disparate methodologies, like Waterfall and Agile, via common data and agreed upon metrics.
Agile teams can continue to think in terms of the product backlog and user stories and the PMO can continue
to manage resources across the enterprise.
8/6/2019 Visual Studio vNext Preview Web[1]
15/32
13
Lightweight Requirements
Teams need to collaborate with stakeholders to ensure that a new experience (whether it be an
enhancement to an existing solution or a fresh new concept) hits the mark. Storyboards have emerged as a
great best practice to ensure you get detailed feedback before the process of coding starts.
In Visual Studio vNext we provide a StoryBoard Assistant a plug-in for PowerPoint that
connects the creation and review of story boards with the rest of the team. The Assistant adds in a
Storyboarding Ribbon to help team members create a storyboard and share it with the team and
stakeholders. We include a library of common controls for multiple application types and tools to
allow the team to provide feedback on the experience.
Figure 8: Example Storyboard Slides - four examples that leverage the StoryBoard Assistant plug-in. Across
these screenshots you can see mock-ups of a Windows Phone interface, and screens from a media-centric
Web application, a SharePoint application and Visual Studio itself.
8/6/2019 Visual Studio vNext Preview Web[1]
16/32
14
Figure 9 The StoryBoard Assistant in Power Point: offers the abilit y to quickly mockup experiences in a tool
that is familiar to the majority of team members and stakeholders.
It includes a set of rich features that lend themselves to story boarding such as: inbuilt graphical design tools the ability to embed other content including context slides tools to capture screen shots and create lightweight animations grouping capabilities that store common elements within a shape librar y
The ability to create master templates that simplif y the creation of multiple similar views
The collaboration tools within Power Point also greatly assist the feedback process by providing the ability to: present the concepts to others
mail the document to others for feedback print the document place the document under version control leverage collaborative editing tools leverage web viewing tools
8/6/2019 Visual Studio vNext Preview Web[1]
17/32
15
Figure 10: Asking for Stakeholder Feedback - The Product Owner defines the feedback they want to
receive from the stakeholder and can then kick off the feedback process via e-mail.
Stakeholder Feedback
Essential to Agile is the idea of frequent feedback. As stakeholders work with a solution, they
understand the problem better and are able to envision improved ways of solving it. Developers often
express the frustration that they built exactly what the customer asked for, and then the customer
said thats not what I meant .
We carefully considered this as we designed Visual Studio vNext. We asked ourselves how teams
could easily receive timely feedback on working code, so that they could adjust their backlogs torespond to stakeholder needs in every sprint. If we could design that, Visual Studio vNext could
dramatically increase the flow of information between the stakeholders and the team, supporting
Agile workflows, accelerating delivery, and driving risk and waste out of the project.
With Visual Studio vNext we deliver a set of natural tools that let stakeholders directly participate in
the development process. In this way, teams receive dramatically more actionable feedback and they
can transparently prioritize and track feedback against the backlog. They can both remain focused on
the task at hand and adapt for remaining work.
8/6/2019 Visual Studio vNext Preview Web[1]
18/32
16
Figure 11: Collating feedback on a web site the stakeholder feedback tool records feedback on the web site.
The tool is purposely built for stakeholder use. It allows the user to directly interact wi th the site
while recording rich and ac tionable data for the team in the background i.e. action scripts,
annotations, screenshots, audio.
This lets a Stakeholder provide rich and actionable data directly to the team helping
them stay on track with the intent of the scenario.
8/6/2019 Visual Studio vNext Preview Web[1]
19/32
17
Figure 12: Prioritizing and acting on feedback As feedback comes back in, the team prioritizes and
allocates work among the team members for the next sprint.
Feedback is simply a rich and actionable work item, automatically linked to the appropriate user stor y providing
the required context so the team can act on, associate with other work and schedule into Sprints as required.
Teams can achieve the goal of continued feedback throughout the lifecycle helping them better
meet customer needs.
8/6/2019 Visual Studio vNext Preview Web[1]
20/32
18
Agile Quality Assurance
Software quality is affected at every cycle. Building on the capabilities of Visual Studio 2010, we have
continued to improve the tools we offer for increasing software quality, this includes:
the ability of the individual developer to focus on the correct unit testing first
tools to enable the team to collaborate on new code or refactor existing code
tools to support testers who are performing exploratory testing to discover
bugs that are still present after the build
Figure 13: Continuous Unit Testing Development is about staying in the groove. The new Unit Test
Runner helps you do that by running tests in the background while youre working on code, so you
never have to pause and wait for test results.
Combined with Test Impact Analysis (introduced in VS 2010), the most important tests are always
run first, so failures appear in seconds.
Think of this as red-green-refactor on steroids
8/6/2019 Visual Studio vNext Preview Web[1]
21/32
19
Figure 14: Code Review in
Action in Visual Studio
vNext includes integrated
code review support.
This lets team members
provide feedback on new
code, lifting the shared
knowledge of the team. If
desired, code reviews canbe set as a quality gate in
the development process.
This screenshot shows
the source changes
highlighted and comments
from team members
about the changes.
Figure 15: Code Clone Detection reviews a projec t looking for common code blocks that
should be refactored out into a shared block of code.
This detection leverages technology developed in Microsoft Research. The search casts a wide net,
detecting code blocks that have a common structure and approach.
The search is semantic, not just literal. This technique detects both copy and paste errors as well
as code fragments with a common logical structure that contain superficial differences such as changed
variable names.
The end result is a report which lets a team to review common code and decide how to proceed.
8/6/2019 Visual Studio vNext Preview Web[1]
22/32
20
Figure 16: Exploratory Testing The most important bugs are usually found by unanticipated exploration
of the application. Visual Studio exploratory testing keeps a full log of your interaction with the software
under test and allows you snip the log to show only the relevant sequence to illustrates the bug. This can be
combined with screenshots to show the exact problem at that point in the experience.
8/6/2019 Visual Studio vNext Preview Web[1]
23/32
21
Figure 17: Application Issues in Production An issue is observed for a production application and an alert
is raised in System Center.
The operations team can then rapidly work out whether the issue is related to the application
itself or the environment.
Aligning Development with Operations
All successful software projects transition into production use, and modern projects transition
frequently. This is where they are delive ring value to the business. Its at this point, though, that many
of the most difficult issues to reproduce appear. Of ten, the team is told that an issue exists in production but
they cannot reproduce the problem outside of the produc tion environment, much to the frustration of
end users and the operations team.
With Visual Studio vNext, we provide a rich set of integrations which enable an actionable workflowbetween the development and operations teams. The first such scenario was announced at TechEd
allowed operations staff leveraging System Center to pass data to the development team so they could triage
the issues and rapidly find the root cause in the code itself. The demonstrated integration is available as a
Community Technology Preview (CTP) today.
In Visual Studio vNext we will also bring our IntelliTrace infrastructure used for historical debugging
development and test environments into production scenarios to further cement the link between
development and operations.
8/6/2019 Visual Studio vNext Preview Web[1]
24/32
22
Figure 18: Sending the Issue to
the Development Team
Having established that the issue
is at the application layer the
administrator sends the issue to
the development team through
the integrated connection with
Team Foundation Server.
Figure 19: Rich Data for the Developer Following the triage of the issue by the product owner the i ssue ispassed to a member of the development team.
The work item includes rich and actionable data for the developer (environmental data,
stack trace, AVICode telemetry ) letting them rapidly identify the issue and jump direc tly to
the related line of code with a single click!
In Visual Studio vNext we take things a step farther with the ability to attach a full
IntelliTrace log file sourced from the production environment.
8/6/2019 Visual Studio vNext Preview Web[1]
25/32
23
Figure 20: Context Switching with MyWork One of the hardest things for a developer to manage is
interruptions, especially when these mean switching the context of the project and the code at hand.
Context switches are a frequent source of both error and decreased velocit y.
My Work provides a new task-based approach to unify the developers work contexts. When the developer
switches context, for example to fix an urgent bug, Visual Studio automatically packages all the open work with
the prior active task. When the developer recalls the task, work is instantly restored in context and error-free.
Enhanced User Experience
One of the first things you will notice is an improved experience across Visual Studio vNext. We have
focused on simplifying many of the daily tasks team members perform. The goal here is to streamline the
most common tasks and ensure that people love working with the software this is critical to reducing wasted
cycles across the team and illustrates our ongoing commitment to improve the usability of Visual Studio.
8/6/2019 Visual Studio vNext Preview Web[1]
26/32
24
Figure 22: Work Item
Management we have
overhauled the web experience
(built with standard HTML)
for Team Foundation Server
we leverage touch controls
where applicable for natural
interaction.
We have also greatly improved
the performance of Team Web
Access including work item
creation and maintenance.
Figure 21: Team Explorer is the connection to Team Foundation Server included in the V isual Studio
Integrated Development Environment. In vNext the user experience is much improved with full
asynchronous communication leading to vastly accelerated load times. We also include new default views to
highlight the most common information a developer needs e.g. allocated work items, build progress, reports
and bugs. Integrated search helps you find the information you need fast.
8/6/2019 Visual Studio vNext Preview Web[1]
27/32
25
Figure 24: Team Foundation Server
on Windows Azure we have
brought Team Foundation Server
to the Windows Azure Platform
to help any team to be up and
running within 30 seconds.
Figure 23: New Work Item
Dialogue The work item
viewer in Visual Studio
has been significantly
enhanced in vNext.
Work Items can have rich
text and images directly
embedded in the viewto improve the fidelity
of feedback and many
of the standard fields
are pre populated.
8/6/2019 Visual Studio vNext Preview Web[1]
28/32
26
ClosingModern application management solutions need to address the underl ying issues that prevent teams from
reaching their full potential. They must facilit ate:
Collaboration through integration across all roles in the team
Timely and actionable feedback to reduce wasted effort
Leveraging natural and appropriate tools for the task at hand
Transparent and agile best practices to be adopted at will
For the last five years we have been on a journey to create an offering that addresses these issues and
resolves the major sources of waste in the development lifec ycle.
Visual Studio vNext is another major step forward as we extend our coverage of the lifecycle and
embrace additional roles critical to a projec ts success. We have also focused on ensuring the team receives
continuous feedback throughout the lifecycle to encourage rich, productive and scalable interactions which
increase the productivity of the team and reduce risk.
We cant wait to share this with you and your organization we hope you found this whitepaper a
useful way to digest the announcements we made at TechEd and relate the individual features and scenarios
back to a broader set of issues we all face in the creation of software.
The best way to join us on or shared journey is to adopt the foundational technologies in Visual
Studio 2010. If you would like to find out more visit www.microsoft.com/visualstudio today.
Thank you
8/6/2019 Visual Studio vNext Preview Web[1]
29/32
27
Figure 25: Bringing the team Together In Visual Studio vNext we continue down the path of bringing the team
together by creating trustworthy and transparent bridges which improve the flow of information across the
entire team, eliminating the most common causes of waste.
8/6/2019 Visual Studio vNext Preview Web[1]
30/32
noTEs
8/6/2019 Visual Studio vNext Preview Web[1]
31/32
29
8/6/2019 Visual Studio vNext Preview Web[1]
32/32
2011 Microsoft Corporation All rights reserved