Microsoft SharePoint Online Dedicated Custom Solution Policies and Process

drivercutInternet και Εφαρμογές Web

13 Νοε 2013 (πριν από 3 χρόνια και 4 μήνες)

376 εμφανίσεις








Microsoft SharePoint Online

Dedicated

Custom Solution
Policies

and Process


Published:
April 2010

For the latest information, please see
http://microsoft.com/online
.




















Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


2
























The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of

the date of
publication
.
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 presented after the date of publication.

Thi
s document is for informational purposes only
.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO
THE INFORMATION IN THIS DOCUMENT.

Complying with all applicable copyright laws is the responsibility of the user
.
Without limiting the rights

under copyright, no part of this document
may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, m
echanical,
photocopying, recording, or otherwise), or for any purpose, without the expre
ss written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subje
ct matter in this
document
.
Except as expressly provided in any written license ag
reement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.


©20
10
Microsoft Corporation. All rights reserved.

Microsoft
,
Access, Active Directory,
Excel, F
orefront, InfoPath, Internet Explorer, Outlook, PowerPoint,
SharePoint
,
Silverlight
,

SQL Server,
Visual Studio,
Win32
,
Windows
,
Windows PowerShell, and
Windows Server

are trademarks of
the
Microsoft
group of companies
.

All other trademarks are property of
their respective owners.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


3

Contents

Introduction

................................
................................
................................
................................
.................

6

What Developers Should Know

................................
................................
................................
................

6

Wh
at Is New in the April 2010 Release

................................
................................
................................
....

6

How Online Services Can Help

................................
................................
................................
................

7

Potential Impact of Deploying Custom Solutions

................................
................................
......................

7

Deployed Custo
m Solutions

................................
................................
................................
.....................

7

Use of Third
-
Party Solutions and Products

................................
................................
..............................

7

Third
-
Party Solution Licensing

................................
................................
................................
...............

8

Open Source Project Support

................................
................................
................................
................

8

Customization Process

................................
................................
................................
..............................

9

Timeline
Overview of Customization Process

................................
................................
........................

10

Key Milestones

................................
................................
................................
................................
.....

11

Requirements Gathering

................................
................................
................................
..........................

12

High Level Design Review
................................
................................
................................
........................

13

Scope of Customization

................................
................................
................................
..........................

13

Hardware Evaluation

................................
................................
................................
..............................

14

Customiz
ation Development

................................
................................
................................
....................

16

Customization Testing

................................
................................
................................
..............................

17

Using the Code Analysis Framework Tool

................................
................................
.............................

18

Customization Packaging

................................
................................
................................
........................

19

Package Requirements

................................
................................
................................
..........................

19

Components
................................
................................
................................
................................
............

19

Customization Package Structure

................................
................................
................................
..........

20

Solution Package Creation

................................
................................
................................
.....................

22

Customization Package Submission

................................
................................
................................
......

22

Updating Existing Custom Code

................................
................................
................................
.............

23

Online Services Testing, Validation, and Deployment

................................
................................
..........

24

Timeline for Online Services Review

................................
................................
................................
......

24

Online Services Operations Team Testing

................................
................................
.............................

25

Pre
-
Production Environment Validation

................................
................................
................................
..

26

Change Advisory Board (CAB) Production Review

................................
................................
................

27

Production Environment Deployment

................................
................................
................................
.....

28

Re
-
Drop Policy for the Customization Package

................................
................................
.....................

29

Microsoft Engineering Policies for Custom Solutions

................................
................................
..........

31

System Monitoring

................................
................................
................................
................................
..

31

Patching Impacts

................................
................................
................................
................................
....

32

Updating a C
ustomization

................................
................................
................................
.......................

32

Break
-
Fix Remediation

................................
................................
................................
...........................

33

Emergency Change Remediation

................................
................................
................................
...........

33

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


4

Impact of SharePoint Online Upgrade on Customizations

................................
................................
.....

34

Service Policies

................................
................................
................................
................................
.........

37

Supported Customizations Policy

................................
................................
................................
...........

38

Appendix A:
SharePoint Developer Resources

................................
................................
.....................

42

Getting Started

................................
................................
................................
................................
........

42

Webcasts

................................
................................
................................
................................
................

42

More Development Resources

................................
................................
................................
...............

43

E
-
Learning Resources

................................
................................
................................
............................

43

Best Practices for SharePoint Developers

................................
................................
.............................

43

Best Practices for Development Environments

................................
................................
...................

43

Development Environment Software Best Practices

................................
................................
...........

44

Automate Source Control and Build Process

................................
................................
......................

45

Do Not Attempt Solution Versioning

................................
................................
................................
....

45

Use Proper Namespaces for Customizations

................................
................................
......................

45

Avoid Feature Versioning

................................
................................
................................
....................

45

Use as Little Code as Possible in Application Development

................................
...............................

45

Plan Carefully when Installing Dependencies

................................
................................
.....................

46

Limit the Number of Solution Packages in a Customization

................................
................................

46

Do Not Use ADO.NET to Connect to Databases

................................
................................
................

47

Best Practices for Developing Code that Connects to an Internet Address

................................
........

47

Best Practices for Increasing SharePoint

Site Performance

................................
...............................

47

Configuring Caching

................................
................................
................................
...............................

47

Using Content by Query Web Part Objects

................................
................................
............................

47

Removing Unused Web Parts from SharePoint Pages

................................
................................
..........

48

Configuration Management

................................
................................
................................
....................

48

Appe
ndix B: Testing Resources

................................
................................
................................
..............

49

Online Resources

................................
................................
................................
................................
...

49

Load Testing and Performance Resources

................................
................................
............................

49

Best Practices for Testing

................................
................................
................................
.......................

49

Sc
ope of Testing

................................
................................
................................
................................
..

50

Microsoft Testing of Custom Solutions

................................
................................
................................

50

Test Environments

................................
................................
................................
...............................

51

Failure Points

................................
................................
................................
................................
.......

52

Appendix C: Solution Packaging Resources

................................
................................
.........................

53

Appendix D: Customization Package Checklist

................................
................................
....................

54

General Instructions

................................
................................
................................
................................

54

Scheduling Information

................................
................................
................................
...........................

54

Deployment Guide
(Installation Instructions)

................................
................................
..........................

54

Rollback Plan

................................
................................
................................
................................
..........

55

Solution Packages

................................
................................
................................
................................
..

55

Test Documents and Results

................................
................................
................................
..................

55

Dependencies List

................................
................................
................................
................................
..

55

Event Log

................................
................................
................................
................................
................

55

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


5

Client Troubleshooting Documentation

................................
................................
................................
..

56

Source Code

................................
................................
................................
................................
...........

56

Third
-
Party Licensing Document

................................
................................
................................
............

56

Customer's Security and Compliance Review Document

................................
................................
......

56

Monitoring Document

................................
................................
................................
..............................

56

Update or Revision to an Existing Customization

................................
................................
...................

57

Appendix E: Building a Mirror Production Environment

................................
................................
......

58

Test Machines
................................
................................
................................
................................
.........

58

Appendix F:
Implementing Master Pages

................................
................................
...............................

61

Prerequisites

................................
................................
................................
................................
...........

61

Introduction

................................
................................
................................
................................
.............

61

Sample Master Page Using Clarity Master Page Sample

................................
................................
......

61

Appendix G: Troubleshooting Guide Templates

................................
................................
...................

67

Monitoring Troubleshooting Guide

................................
................................
................................
.........

67

Support Troubleshooting Guide

................................
................................
................................
..............

69

Appendix H: Approved Third
-
Party Solutions

................................
................................
.......................

70

Appendix I: Building Custom Solutions with Web Parts

................................
................................
......

72

Appendix J: Code Development and Deployment Responsibilities

................................
....................

75

Appendix K: Custom Solutions Using External Databases

................................
................................
..

77

Non
-
Supported SQL Server Features

................................
................................
................................
....

78

Terms and Conditions

................................
................................
................................
.............................

79

Database Configuration

................................
................................
................................
.......................

79

Security Model

................................
................................
................................
................................
.....

80

Database Maintenance

................................
................................
................................
........................

80

High Availability Protection

................................
................................
................................
..................

80

Connectivity and Access

................................
................................
................................
......................

80

Support

................................
................................
................................
................................
................

80

Appendix L: Process to Escalate Customization Post
-
Deployment Issues

................................
.......

82


Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


6

Introduction

This document provides a description of
Microsoft
®

Online Services
(Online Services)
support for
customization

development
and deployment
to

the Microsoft SharePoint
®

Online Dedicated environment
.

T
here are
three
different types of customization available to
the

SharePoint Online customer:

1.

End
-
user customization.

Customizations that are performed through a Web
-
based mechanism
(for example, style sheets and
out
-
of
-
the
-
box
Web Part
and
page

templates
).

2.

Authored site customization.

Customizations that are performed by Web
d
esigners using
HTML edito
rs such as Microsoft Office SharePoint Designer
. These customizations apply, for
example,

to
master pages, page layouts, and data view Web Parts.

3.

Developed site customization.

Customizations that are created by developers
using
the
development of Microsoft

.NET

based code and dependent files that must be deployed
on
SharePoint servers
by the
Online Services

operations

team.

This document applies only to the
third
type

customizations that require deploy
ment by

the
Online
Services

operations

team

and that are

installed and
run
on the SharePoint servers
that are
hosted by
Microsoft. These customizations include solutions or products
that are developed by
third

part
ies,

and
code
developed
in
house
by a customer development team. Custom solutions can be developed

for
internal customer sites and for customer sites that are exposed to external users.

The custom solution development process
that is
outlined in this document can help ensure that code
deployed to the Online Services

production environment is more secur
e,
and
that it is developed
according to established best practices. To that end,
the
Online Services

engineering

team
review
s

proposed customizations, determine
s

whether an out
-
of
-
the
-
box or existing solution can accomplish the
same goals, and then guide
s

the process to ensure
that
the customization is deployable, supportable
,

and sustainable by Microsoft support
teams
.

What Developers Should Know

It is assumed that the readers of this document are familiar with
SharePoint

development
and
Internet
Informat
ion Services (IIS), and
know
life
-
cycle

based development and testing of .NET
-
based

code
.
Resources for getting started with SharePoint development are included in
"
Appendix A: SharePoint
Developer Resources
" late
r in this document
.

The
availability of the
features described in this document
is
based on the Online Services

release
process. Time to deployment var
ies

from customer to customer.
Customers should c
ontact
their
service
delivery manager to discuss these f
eatures in relation to
their organization
.

Although
SharePoint Online

does not
offer
customers
a hosted dev
elopment or testing environment,

we
do host
a preproduction environment (PPE) for customers to validate customizations prior to production
deployment
.


see
"
Appendix E: Building a Mirror Production Environment
" later in this document.

What
I
s
N
ew

in the April 2010 Release

Previously,
Microsoft SharePoint

Online custom code development required that
the customer create a
customization
, test it
,

and then hand it off to Microsoft to validate the code. Now, most of the validation is
done automatically using a tool called the Microsoft
SharePoint Online
Code Analysis Framework (CAF).
The tool validates th
e solution

code

to
ensure that it is built using
most of the
known best practices.

It also
checks the solution for security flaws and for memory leaks.
Note that the tool only perform
s

code
validation of the solution, so functional and stress testing
must
still

be done by the customer
's

development team.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


7

How Online
Services
Can Help

Customers
who
want to develop and deploy custom SharePoint solutions benefit from Microsoft Online

Services

involvement in the following ways:



Structured process.
SharePoint On
line
uses a structured review process that pairs Microsoft
partners or employees with customers to help mitigate the risk of falling outside of the
established
goals
for
solution performance, scalability, availability, and upgrade.



Experience deploying cus
tom
-
built solutions
.
SharePoint Online

has extensive experience
with deployment of customer solutions
as well as
purchased and
custom
-
written third
-
party
solutions.



Capacity planning experience.
SharePoint Online

has experience evaluating the impact of
cus
tom code and
the
necessary changes that are required to scale hardware and logical
infrastructure design to meet customer needs.

Potential Impact of Deploying Custom Solutions

Custom code has the potential to significantly impact the SharePoint Online envi
ronment

especially
when the code generates a high load, requires significant resources, or doesn
'
t scale to the current
environment. To address these issues, it may be necessary to purchase additional hardware, upgrade
existing hardware components, scale b
ack custom solution deployment by deploying to fewer sites or
pages, or revoke
the solution
entirely. During the review phases,
the
Online Services

engineering

team

identifies the need for additional hardware or upgraded components to support the customizations that
are provided by customers. In cases where supporting the customizations
would
require additional
hardware, Microsoft reserves the right to reject the cus
tomization or to

charge for the additional hardware
required
.

Adding additional hardware could delay the deployment of the customization.

Important

Because
SharePoint Online

does not offer a hosted development or testing environment, all
development and te
sting must take place on an environment that is hosted by the customer or a
partner. PPE is not a substitute for a customer
-
hosted or partner
-
hosted test environment, and it does
not become available to the customer until after the customization package ha
s been submitted to
the
Online Services

engineering

team

for review.

Deployed Custom Solutions

Deployed customizations
are
monitore
d by the
Online Services

operations

team
, based on the necessary
monitoring rules that are provided by the customer
.

If custo
m code has an adverse impact on the Online
Services customer experience, or if it a
ffe
cts the ability of Microsoft to meet
the customer's
service level
agreement (SLA),
the
Online Services

operations

team
take
s

immediate action. This may include
debugging
the application and optimizing it for current load and stress conditions, or removing of the code
to return the environment to a stable state. If this occurs, an emergency Change Advisory Board (CAB)
meeting
is
called and the customer
is
consulted to make
the best decision possible.

For more information
about post
-
deployment issues, see "
Appendix L: Process to Escalate Post
-
Deployment Issues Related to
Customizations
" later in this document.

Monitoring of customizatio
ns is effective only if customers provide complete and usable troubleshooting
guides, as well as instrument custom event codes. In addition, the customizations must implement the
proper instrumentation to support monitoring.

Use of Third
-
Party Solutions an
d
Products

Third
-
party solutions and products are available from both developers and vendors for installation in the
Online Services

environment. In most cases, these products are eligible for installation
if

they qualify as
an allowed customization as des
cribed in

"
Permitted Customizations Policy
" later in this document
.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


8

SharePoint Online

has evaluated only a limited number of third
-
party solutions at this time
.
A full list of the
approved third
-
party
standalone
solutions can be found in

"
Appendix H
: Approved Third
-
Party Solutions
."
As more
standalone
solutions are evaluated and approved, they
get

added to the list of prequalified
solutions and products
that are
eligible for installation without the need to go through the evaluation
process.
Microsoft’s

service manager or solution
architect
assigned

to each customer
ha
s

access to an
up
-
to
-
date list of all preapproved third
-
party solutions and products.

S
ome prequa
lified customizations may also require changes to the hardware resources or support
resources associated with a customer
'
s deployment.

Third
-
Party Solution Licensing

The customer is responsible for obtaining the licensing for any third
-
party solution or p
roduct
,

and
must
provide proof of this licensing (often a key or certificate) as a part of
a customization package
.

Depending
on the third
-
party solution, a second set of licenses may also be needed for the disaster recovery server
farm as the first set of

licenses may only apply to the production server farm.

Open
Source

Project Support

SharePoint Online

supports open source code if the customer first takes responsibility in writing for the
ownership of the code, and ensures that such code has been tested
for performance, scalability, stability,
data integrity, and sustainability. The customer is also responsible for end
-
to
-
end support of open source
code. When deployed to the production environment, if Microsoft encounters any issues that are related
to su
ch open source software, it transfers to the customer any issues for further root cause analysis and
triage.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


9

Customization Process

Introducing custom code within the
SharePoint

Online production environment

or revising existing
code

requires following a d
evelopment and deployment process
that has been
established by Microsoft.
This process is based on best practices
developed
by Microsoft through its work
with

the hosted
SharePoint Online
Dedicated service
. It is also closely aligned with the processes des
cribed in the
Microsoft Solution
s

Framework
and the
Microsoft Operations Framework
.

For more information about the
Microsoft Solutions Framework, download
Microsoft Solutions Framework version 3 white papers
. For
more information about the Microsoft Operations Framework, see
Microsoft Operations Framework 4.0

in
Microsoft TechNet
.

The development and deployment

process

for custom code

is outlined in this section. The process
applies to
the
development of new
or updat
ed
code that is intended to be installed and
run
on production
environment servers.


The core deliverables of this process are the High Level Design (HLD) document and the Customization
Package which contains the Deployment Guide. The
HLD document is the
h
igh level

technical
explanation of the customization.
The Deployment guide is contained within the customization package
and includes the detailed technical explanation of the customization, deployment and verification steps
and other important information
. The Customization Package also includes the solution packages (final
tested code, install and uninstall scripts), the source code, and all related documents, such test
documentation.

An overview of the customization process is shown in Figure 1.



*
Bus
iness days

**
Customers must submit HLD and code drops along with updated versions of the Change Request templates.


Figure 1. Overview of SharePoint Online customization process

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


10

Timeline Overview

of Customization Process

This section presents an overview
of the time and resources that are generally involved in the custom
solution development and deployment process, using a sample timeline and process for the deployment
of custom code.

Steps 2 through 6 are detailed in later sections of this document.

As sh
own in Figure 1, a

typical timeline

proceeds as follows:

1.

Requirements gathering.

Depending on the complexity of the customization, the customer
'
s
development team may
require up to
four weeks (20 business days)
'
to gather requirements and
buyoff from
the project sponsor and stakeholders.

2.

Create

HLD

document
.

At least

five

days prior to submission of the HLD document

for review, the
customer must notify

the

SharePoint Online
service management

team
via the customer
'
s technical
account manager
(TAM)
about its intent to submit the HLD document.

Note:

Throughout the entire customization process, all c
ommunication
with
SharePoint Online
,
including

the delivery of the customization package to
the
Online Services

engineering

team
,

is
handled by the custom
er
'
s
TAM
.

3.

Review

HLD

document.
The development team submits the HLD document to
the
Online Services

engineering

team

for review and approval prior to code development.

Microsoft has
five

business
days to respond to the HLD after submission by the development team.
We

recommend that no
development work be done until the HLD has been reviewed, to allow any feedback to be
incorporated into the development. Until
the
Online Services

engineeri
ng

team

formally accepts the
HLD, Microsoft does not accept any customized code for review and testing.

4.

Customiza
tion

development
.

After
the
Online Services

engineering

team

approves the HLD, the
customer
'
s development team starts customization
code

dev
elopment.

5.

Customiza
tion
testing
, CAF validation, and packaging
.

The customer provisions a team to test
the customization internally,
validate the
solution
,
document the testing and other aspects of the
solution process
, and build customization
packages
.



Testing.
The customer's development team must include tests for scale and performance.
Because the current release of the Microsoft SharePoint Online Code Access Framework (CAF)
application does not integrate with CAT.NET, the customer must run CAT.NET
to analyze their
customization code. For more information about CAT.NET testing, see "
Best Practices for
Testing
" later in this document.




Validation.

The customer's development team uses the CAF application provide
d by SharePoint
Online to validate the code of the customization.

Also, manual test cases not included in CAF
should be validated by the customer (if applicable to the customization) and submitted using the
Test Results document.



Packaging
.

The customer's

development team begins preparing the customization package,
which consists of all solution documentation, all code components, and the CAT.NET report. This
typically takes about 10 business days, but depends on the complexity of the customization.

Five

b
usiness days prior to the intended code drop date, the customer must notify
the SharePoint
Online service management

team
through the
customer's TAM

that a
customization
package, with
final documentation

and source code
,

is

being provided for review.

The
customer submits the
customization
package to
the
Online Services

engineering

team
at least 16
business days prior to the change window in which the customer wants to deploy the customization.

6.

Online Services
testing, validation, and deployment
.

The
On
line Services

engineering

team
typically

takes
10

business days to review and
validate

the customization, and to
test

the code in an
Online Services internal lab environment.
Deployment occurs first in the PPE environment, and then
in the production
environment.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


11



Validation.

The validation is intended to confirm that the
solution

is supportable and matches the
details of the HLD
document.
SharePoint Online

uses the CAF application, as well as manual
tests, to validate the

customization.



Testing.

The
c
hoice of
manual tests depend
s

on the customization type. For
example
, if the
customization is a master page then the
re is a

test
that
validate
s

that the sites will have the
correct look and feel when the feature is enabled. The
re are

tests
to
verify that w
hen a feature is
disabled, the look and feel reverts to the previous version.
T
he
Online Services

operations

team

also tests that

the Web.
c
onfig files are correctly updated when
the customization is activated, and
that the changes are reverted when the cus
tomization is deactivated.



PPE d
eployment.

The deployment request is reviewed in
a

Change Advisory Board (CAB)
meeting at Microsoft (
one

business day). After approval by the CAB

and a successful

initial
review,
the
Online Services

operations

team
deploys
the solution to the PPE if it is available
,

and
performs customer
-
provided validation steps.



Production d
eployment.

In parallel with the PPE review by Microsoft, the customer
development team also has
five

business days to review the customization in the P
PE and sign
off for deployment

to the p
roduction

environment
.

When the customization receives validation
from both
the
Online Services

engineering

team

and the customer development team, the
production deployment request is submitted to the CAB.

When appro
ved by the CAB,
the
Online Services

operations

team

prepares for production
deployment (
four

days). Deployment occurs at the next scheduled
change
window, usually
on
a
Friday.
T
he
Online Services

operations

team
performs

the validation steps provided by th
e customer
and then contacts the customer development team to perform any post
-
deployment actions. For more
information about the deployment window,
see
Production Environment Deployment
.

Key Milestones

Table 1 shows key milestones that the customer must understand to ensure a successful deployment of a
customization to their SharePoint Online PPE and Production environment.

Table 1
.

Timeline for Deployment

Action

Duration

Customer notification

to
Online Services

operations

team
before submitting HLD
.

5 business days

Turnaround
time
for
Online Services

operations

to complete HLD review
.

5 business days*

Notification

by customer to
Online Services

operations

before submitting
customization
package
.

5 business days

Turnaround
time
for
Online Services

operations

to complete
customization
package
review
.

10 business days*

*
Assumes that
Online Services

operations

t
eam

requires

no additional information from the customer to process the
review.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


12

Requirements Gathering

As a
formal part of any development,
requirements should be gathered from all stakeholders
:
developers,
support personnel, end users, and testers
.
When factoring

in

all of the
requirements,
it is important to
consider scale (for exam
ple, multiple Web front
-
end servers) and performance (such as page load time
and latency).

Customer requirements influence both how the code is developed
and
how it is tested. For
a
customer
with multilingual requirements, unit testing requirements
should

specify that testing is performed in each
localized language. SharePoint Online uses language packs
,
master pages, page layouts, resource files,
and administrator interface
that are
specific to a locale. In some cases,
the
customer
must
ensure
that the
cu
stom
application renders correctly when the page is read right to left or if the language contains double
-
byte characters.
The customer does not need to submit a f
ormal
statement of
requirements to Microsoft.
However, specific constraints related to such f
actors as performance, scale, and language should be
noted both in the HLD
document
and later in the test plan.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


13

High Level Design Review

The HLD review is the process that
helps

SharePoint Online
, or its designated partner, to work with
the
customer
in

pro
vid
ing

an initial evaluation of
the customer's
proposed customization.

To start the process,
SharePoint Online

requires
the
customer to gather and present information about
the proposed customization using the HLD document
.

We
recommend
that the
customer
request the
template for the
HLD document
, which

is available from the
customer's TAM

or solution architect. The
completed HLD document is submitted to
the
Online Services

engineering

team
for review and approval
prior to code development
.

The HLD review
has the following goals:



Provide
SharePoint Online

the opportunity to suggest an out
-
of
-
the
-
box solution or a previously
evaluated third
-
party solution instead of custom development.



Provide feedback to ensure that the design implementation follows establi
shed best practices and
receives guidance from experienced SharePoint developers.



Evaluate the design to determine whether it is supportable within the Online Services hosted
environment, and if it poses any risk to the existing environment or the SLA.



Min
imize the likelihood of having to rewrite or change the solution when service packs and future
versions of the product are released.



Determine whether additional hardware is needed to support the customization.



Capture potential performance issues early, r
ather than during testing or after production
deployment.

The following information help
s

with submission of
the
HLD document:



T
he
Online Services

engineering

team

must receive notification five business days in advance
that the HLD document will be submitted.



If usage patterns, audience, hours of usage, or similar characteristics
are likely to
change as a
result of a new customization, that information should be in
cluded in the HLD document so that
resource considerations can be taken into account early.



T
he
Online Services

engineering

team

has five business days to respond to the HLD document.



During the HLD review, Microsoft or a designated partner notifies the cu
stomer if the solution
packages will require a longer validation and review period than the standard
10
business days
allocated for this phase. In this case,
the
Online Services

engineering

team

provides an estimate
of the amount of time that will be requi
red to review the customization.

Scope of
Customization

T
he HLD review provides
the
Online Services

engineering

team

with an opportunity to review the scope
of the planned
solution

and determine whether it is a small, medium, or large customization based
on the
amount

of code and number of Windows
®

SharePoint Services
solution package

(WSP) files that will be
included in the
c
ustomization
package
.

(
For more about solution packages, see
"
Customization

Packaging
"
later in this document
.)

Table
2

shows how
customization sizes
are determined.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


14

Ta
ble 2
.

Customization
Sizes

Solution Size

Lines of Code

N
umber

of WSP

File
s

Small

0 to 1000

1 to 2

Medium

1000 to 3000

1 to 4

Large

3001 or more

1 to 10


Important

Customizations that are determined to be extremely large and complex (requiring the full time period
to review) will not be eligible for a re
-
drop (a resubmission by the customer of any part of the
customization package) during the evaluation and productio
n deployment phase of the customization

review process. We recommend that the customer development team consider breaking up a large
project into multiple phases that are evaluated and deployed at different times.

In general
,

the development team

can antic
ipate the solution
type
based on
its size, as indicated by
the
criteria in Table
2
. However, a solution that is more complex than normal, has dependencies on a
significant number of external systems, or processes a
large amount

of user
-
provided content may

be
classified differently despite a small
amount

of code or
number of
WSP

file
s.

Upon submission of such
complex customizations, Microsoft notifies the customer if additional time is necessary to complete the
review.

If
the
develop
ment

team is designing

a solution that will require more than
10

WSP files, the
team
should
reconsider
its
architecture. It is difficult to manage and deploy so many solution files within a single
deployment
window
,

and the solution risks rejection because of the complexity for

the
Online Services

operations

team
o
f

manag
ing

it.

Hardware
E
valuation

The
HLD review

i
s performed based on
the customer's
current load and hardware configuration
.
In some
cases, an HLD review may reveal
the need for
a new hardware
component; for example
,

a m
ultipart
customization may require deployment of additional servers
,

or upgrades to existing servers
,

to meet
performance expectations and SLA requirements. In certain cases
,

additional resources and operational
support may be necessary.
T
he
Online Se
rvices

engineering

team
reserves the right to
reject any
customization

that

requires the

addition
of
hardware or resources

above and beyond what is already
provisioned for the customer
.

Microsoft Responsibilities



Return an evaluation of the HLD document wi
thin five business days of receiving the document
from the customer, or immediately notify the customer if more than five days
will be

needed for
review.



Evaluate the HLD document against
the
existing infrastructure and resources
,

and notify
the
customer
if the customization require
s

changes.



Evaluate whether the standard
10
-
business
-
day

evaluation period will be adequate to validate the
customization when complete.



Contact
the
customer immediately if
problems are discovered during the review process
.



Eval
uate whether an HLD reveals a small, medium, or large customization
.
Large customizations
are not eligible for a re
-
drop during the evaluation phase.

Customer Responsibilities



Complete the HLD document before any coding takes place.



Notify
the
Online Servi
ces

engineering

team

at least
five business days before the HLD document
is submitted
,

to ensure
that
SharePoint Online

possesses the necessary
resources

to evaluate it
.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


15



Provide a
developer
resource to respo
nd to questions or concerns in order
to achieve signoff
within the window
of
five

business

day
s
.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


16

Customiza
tion Development

Following approval of the
HLD
,
the development team

can begin
code development. The customer is
responsible for developing or purchasing the customization and operating
i
ts
own development
environment. The customization should be developed in an environment that matches the
SharePoint
Online production environment. For details
about
how to build an environment that matches the
SharePoint
Online production environment, see
"
Appendix E: Building a Mirror Production Environment
"
later in this document.

For customers who are
new to development
for

SharePoint Online,
we
highly recommend that
a customer
team perform the following actions:



P
lan a proof
-
of
-
concept before doing a full
-
scale production development.



Use
a source control system for
storing and tracking
customization

code
.

Furthermore, we

strongly
discourage

running
code with full administrative privilege
s.

In addition,
the custo
mer development team should ensure that any dependencies of the
customization
should
rely
only
on
the custom code i
tsel
f
.
Any configuration changes should be implemented in a way
that minimizes the need for manual steps by the operations personnel who deploy the solution.

Information and resources about development in the SharePoint environment are available in

"
Appendix
A: SharePoint Developer Resources
" later in this document.


Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


17

Customiza
tion
Testing

As with development, testing is a customer responsibility.
SharePoint Online

does not offer a customer
-
accessible testing environment,

so testing code and maintaining a test environment is the responsibility of
the customer
.

Note:
The customer is solely responsible for the
testing of the solution. The customer must test all
components of the solution, whether developed by
the

internal
c
ustomer
development team or
purchased from a third
-
party vendor, before sending it for evaluation and deployment by
the
Online
Services

engineering

team
. These tests should include, but may not be limited to, functionality,
performance, stability, scale, a
nd full unit testing.

Insufficiently tested code represents a risk to the
entire
Online Services environment. If
the
Online
Services

engineering

team
has sufficient concern that a customer

has not adequately tested the

code, the
code
is
rejected during the

review process.


If a customization is depending on integration or communication
with services, data, or systems
that are
unique to
the customer's

corporate environment,
then
the
Online Services

operations

team
will be

unable
to reproduce this within
its
own
testing

environment
. However, when evaluating code in the PPE, the
customer can
test whether these forms of
integration
are

working

as expected
.
When performing these
types of integration tests, we
recommend that
the
customer provide
s

and use
s

connections to a
u
ser
a
cceptance
t
est (UAT)

version of the customer
'
s service, data, or system to avoid
negative
impact to
the
production
environment. However the customer chooses to handle this aspect, t
esting must be performed
adequately within the cust
omer
'
s environment and then later documented

in the customization package
.

Important

It is important to recognize that the PPE is not a substitute for a test environment; it is
simply
a
validation environment.

It is very important that
the customer provi
sion

a dedicated test team

that is familiar with
the customer's
production version of Microsoft
Office SharePoint Server
. The test team should be able to
distinguish the
difference between
defects

in a customization
versus

an
out
-
of
-
the
-
box
solution

that i
s working but
is not

behav
ing

as desired
.
Testing
must cover
the entire
solution

life cycle

(for example,

installation, activation,
creation of content, editing of content, and finally expiry

or
deletion of content
).

We
recommend that the development team

have a full formal test pass before handoff to the customer
'
s
own test team
,

to minimize the number of
defects
.


Important

D
evelopment and testing should be done with the
same
Microsoft

Office SharePoint Server
version
,

including the patch levels, that is

installed on the customer
'
s hosted environment.

Prior to development,
the customer should
check with Microsoft
to determine
whether
any patches are
scheduled to be installed prior to
deployment of
the customization solution. It is the customer
'
s
responsi
bility to ensure
that
development and testing has
been done using

the
appropriate
version of
Office SharePoint Server. Office SharePoint Server
2007
patches are cumulative
;

as a general rule
, they

'cannot

be rolled back
i
n a production environment after
be
ing
deployed.

To learn from Microsoft experience with internal testing of the customer environment and internal testing
of custom
-
developed code for SharePoint Online, see
"
Best Practices for Testing
" later in this
document.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


18

Using the Code Analysis Framework
Tool

The customer must use the Microsoft SharePoint Online Code Analysis Framework (CAF) tool to validate
the customization prior to submission to
the
Online Services

engineering

team
. The CAF
application
include
s

a user
'
s guide in a compiled help file
. The CAF tool may be downloaded from the
Microsoft
Online Services
customer k
nowledge
b
ase site
.

The CAF tool perform
s

a rules
-
based code analysis o
f

the solution to establish
whether

it is built using
known best practices. The report generated by the CAF tool instruct
s

developers on the parts of the
solution
that
need changing in order to meet the validation criteria.
SharePoint Online

reserves the right to
add new rules to the CAF en
gine; however, new rules are not retroactive. They will only apply to new
customizations or to updates of existing customization.

Code analysis focuses on areas like memory management, security vulnerabilities, exception
management, object model usage, qu
ality gates for unsupported features
,

and reporting. The framework
uses
existing tools like
FxCop

and
SPDisposeCheck

for analyzing the customizations. The elementary
unit of execution for th
e

CAF
tool is a check for best practices
or
for recommended guidelines
as
prescribed by
the
Online Services

operations

team
. Rules of similar category are grouped together while
creat
ing a test case. These test cases are then
run
during the analysis of the solution package
s
.

SharePoint Online

also pro
vides a document of manual test cases
, outside the scope of
the
CAF

tool
,
that Microsoft use
s

to validate
customer

solutions. T
he Test C
ases document
is available for all existing
SharePoint Online Dedicated customers

at

the
Microsoft
Online Services
customer knowledge base site
.
The customer is must run these manual tests on the customization prior to submission.

Microsof
t Responsibilities



Provide guidance
about

all installed builds and patches within the SharePoint Online
environment.



Provide
guidance about how the production environment is built

so the customer can create

test
environments that adequately mimic the production environment.

Customer Responsibilities



Build and maintain development and test environments.



Adequately test all custom code before
submitting
it to
the
Online Services

engineering

team
for
validation
.



Outline and test any requirements concerning performance, scale, and language.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


19

C
u
stomiza
tion
Packaging

When custom code development and testing
are

finished, the customer

development team

must create
and present a customization package

including adequat
e documentation

to
the
Online Services

engineering

team
for testing and analysis prior to deployment in the production environment. Testing by
Microsoft
does
not begin until all documentation and final code
are
delivered.

Package Requirements

The following

are requirements for submitting customizations:



Documentation is required
,

whether submitting a new customization or an update to an existing
customization.

Several types of documents must be created; for a summary see Table 3.



The solution

itself, and th
e
customization
package as a whole,

should have meaningful titles.
(The two can have the same name.)
For
example
,

"
Jan_26_customization
"

is
too general to be

an appropriate title. The
customization

package should be titled
in this form:

"
CustomerName_Custo
mizationTitle_Version
"
.

For multiple solution packages, each can have
this form: "
CustomerName_CustomizationTitle_
Solution
-
SolutionName
".



When packaging
code and
documentation into the
customization package
,

the customer must
compress the entire package using the .zip file format. Other third
-
party compression tools are
not permitted for installation on host data center computers, and
SharePoint Online

does not
repackage the customization package if the incor
rect compression tool is used.



The customization package should be submitted through the TAM by creating a change request.

When preparing the solution

packag
es and

the documentation

for the customization package
, it is
important to know that all
customiza
tion packages

are deployed to both a primary and
a
secondary data
center
; the

secondary data center
is
maintained for disaster recovery. Deployment instructions should
note
which package components must

be run, installed, and deployed in which data center.

For example,
scripts to create a custom database only run once
, and only

on the primary data center
,

but SharePoint
Online
solution packages

must
be deployed to both data centers.

Microsoft Responsibilit
y



Provide guidance on
the structure of the
customization package.

Customer Responsibilities



Package all of the final tested customization code as WSP files. (This step is required for all in
-
house development.)



Include detailed validation steps in the deployment guide so that MSO can verify that th
e solution
is working as expected post
-
deployment.

Components

T
he customization package
should be
organize
d

in an easy
-
to
-
follow
file system
.

For example,
f
olders
should be used to separate source

code
,
final tested code
, and release documentation.
The Dep
loyment
guide specifies the folder structure that should be followed when submitting a customization. The
components of the submission should be organized according to the following guidelines:



The customization package must have a folder called "Release D
ocuments" that contains all the
relevant documents related to the release.



The test documentation must be in a folder called "Test Documents".



The
solution package
s
, including final tested code, must be in a folder called "Solution
Package
s
,
"

although this is not required for submission
.

The CAF uses this directory to create a
CAB file which should be placed in the root directory.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


20



If there are any scripts that must be run as part of the installation, they must be in a folder called
"Installat
ion Scripts".



The source code must be in a folder called "Source Code".


Table 3 presents an overview of what must be included in the customization package. Complete

details
are included in "
Appendix D: Customi
zation Package Checklist
" later in this document
.

C
ustomization
Package Structure

One of the elements that the CAF tool checks is the customization package structure. The customization
package that is sent to
SharePoint Online

must adhere to the directory
structure shown in Table 3. For
more information on CAF, see "
Using

the Code Analysis Framework Tool
" earlier in this document
.

Table
3
. Customization Package Components

Package
Component

Directory

Description

Scheduling

information

Release Documents

State the expected date for code
-
drop submission and deployment.
Also include the expected duration of downtimes for deployment
configuration and post
-
deployment configuration.

Deployment guide

Release Documents

Online
Services

operations

team provides a deployment guide template
for customers to submit as part of the customization package.

The deployment guide includes

details
about

how to install
all of
the
customization package
components,
any architecture diagrams t
hat are
related to the installation of the custom code
,

and
procedures for
how
to test that the solution package
s

and
the
solution
as a whole
ha
ve

been properly deployed.
It also includes a list of prerequisite software
and any open source software used in

the customization. (The
installation and uninstall scripts are handled in a separate section of the
customization package, below.)

Include d
etailed
verification

steps
(
in the deployment guide
so that
Online Services

operations

can
verify
that
the solution

is work
ing as
expected post
-
deployment, including
any telltale signs, GAC versions,
or even screen shots of the environment that indicate successful
deployment.

The
deployment guide

must be completely self
-
contained.
Do not
include r
eferences to e
-
mail th
reads or other documentation
,

or else the
customization package will be
rejected
.

For customers who are

using
third
-
party solutions, pointers to the vendor
'
s installation documentation
are not suitable documentation.


Open/
s
hared
s
ource
c
ode
w
aiver

Releas
e Documents

If any open source or shared source code or components are used in
the solution, the customer is
required

to provide a waiver in writing
stating that the customer will be responsible for supporting any issues
that arise from the use of open sou
rce software.


CAF report

Release Documents

Include the CAF report on the final code drop. Also include all the
exception comments from the exceptions found by the CAF tool as part
of the report.


Rollback plan

Release Documents

Provide a
rollback plan
,

in
case

the customization must be removed
.

Include screen shots of how the environment must look after a
successful rollback.

Note
:

If it is not possible to roll back a solution, this must be called out
in the
deployment guide
so that the risks can be di
scussed

between
SharePoint Online

and the customer development team

and any
preparations for a system recovery can be planned

by both teams.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


21

Package
Component

Directory

Description

Solution package
s

Solution Package

Include the f
inal versions of
all
the solution packages
,

including

final
tested

code and the CAF report, in this folder.

Installation scripts

Installation Scripts

Store all installation and un
-
installation scripts (such as Windows
PowerShell


sc物p瑳⁡nd⁢atch⁦iles⤠in⁴his 景lde爬rincluding a⁴ailo牥d
se琠fo爠rhe⁳econda特⁤ata⁣e
n瑥爬ri映wa牲rnted.

Test documents and
results

Test Documents

F
or testing and validation purposes
,

i
t
'
s extremely important to supply a
copy of the
solution
test plan, test scenarios, unit test results, and all
performance

and
scale testing
that has been
performed related to the
code. This is even more important if the code has a dependency (Web
service, data, or system) that cannot be tested during
SharePoint
Online

acceptance testing.

I
nclude details about all
elements of the
customization
that
the
customer
wants
deployed, including
any
third
-
party components

and
other
solutions that the customer has purchased.

Dependencies list

Release Documents

Submit a list of all dependencies for the code. This can include
an
account

and
password, Web
services, databases, other solutions
,
features, patches, tool sets
,

and

libraries.

Event log

Release Documents

Provide a list of all event entries generated by the customization
,
and
the
troubleshooting
actions to take for

them
. Th
e l
is
t

commonly
take
s

th
e form of a table of error codes, the corresponding severity, and root
cause.

Client
troubleshooting
documentation

Release Documents

Submit end
-
user troubleshooting guidance for the

Online Services

Operations team

and
one or two
test account
s
, if appropri
ate, to
diagnose problems
that are
related to the customer
'
s dependencies. If
an account is provided
,

it should be
set up with
low privilege and used
for no other purpose.

A template is provided in
"
Appendix
G
: Troubleshooting Guide
Template
s
," later in this document,
to show the correct format for
the
client
-
facing

Trouble
s
hooting Guide
.

Source code

Source Code

I
nclude the

project files and source code (validated through the CAF
tool), where developed in
-
house.
All source code is treated with utmost
confidentiality

by Microsoft
. Details about
the treatment of customer
source code can be found in the customer
'
s contract
,

in
the section
"P
re
-
E
xisting
W
ork
"
.

Note:

If the solution is a third party off
-
the
-
shelf application, no source
code is needed for submission.

Public
d
ebug
s
ymbols

Source Code

T
o aid in the possible troubleshooting scenarios, include the
p
ublic
d
ebug
s
ymbols

for all custom code.

This symbol file
is
automatically created by
Microsoft
Visual Studio
®

as
long as either
"
pdb only
"

or
"
full
"

is selected from the Debug Info
setting
,

which can be accessed via the Advanced settings on the Build
page in Visual Studio. For more info
rmation,

see the article

"PDB Files
(C# and Visual Basic)
" in the Visual Studio Developer Center.


Third
-
party licensing
document

Release Documents

Provide
the licensing details and, if necessary, keys or certificates for
installation
, i
f
using

a third
-
party component or solu
tion. Include all
details about the testing
that has been
done against the third
-
party
component or solution
.

Note:
Remember to purchase licenses for both the primary and
secondary data center
computers
.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


22

Package
Component

Directory

Description

Customer
'
s security
and compliance
review document

Release Documents

We
recommend that customers have their own security and compliance
team review and approve all customizations
that are
being presented to
Online Services

for deployment
.
Include
the c
ustomer
's
Security and
Compliance Review
a
pproval of t
he design
, and

all test details from this
review process.

Monitoring
document

Release Documents

Provide a
ll details related to monitoring the customization, including
logging details and documentation about all instrumentation.


Solution Package

Creation

SharePoint Online

requires the use of
Windows

Solution

Package

(
WSP) files to deploy customizations to
the SharePoint Online environment. A solution package is a compressed .wsp file

Windows

Solution

Package

file


that consists of
the
various resources
necessary for deploying the solution. A custom
solution may include several solution packages to contain all the components of the solution. There are
several advantages of deploying with solution packages
:



The package
s

are

stored
on a
SharePoint

S
erver
, a
nd can be redeployed to existing or new
servers as they are brought online.



The package
s

are

completely self
-
contained and do not generally require tracking of a specific
installation order.



The package
s

can be deployed very quickly to a new
server
farm
for disaster recovery of the
SharePoint Online environment.

Components that can be packaged in a
solution package

.wsp file

include:



Microsoft
.NET Framework assemblies.



Deployment files such as
.
aspx files, master pages,
and
page layouts.



New templates
and definitions for
such components as
lists, libraries, fields,
and
content types.



Configurations that must be
carried out

at the Web
-
server level

(
for example,

the Web.config files
for the registration of Web Part
a
ssemblies).

These
s
olution packages

can be built within the Visual Studio development system or manually. Each
solution package is stored
as

a WSP file, and a custom solution sometimes requires numerous WSP

file
s.
If the development team is designing a solution that require
s

more than
10

WS
P files, the team should
reconsider its architecture. It is difficult to manage and deploy so many
WSP
files within a single
deployment window, and the solution risks rejection because of the complexity for
SharePoint Online

of
managing it.

Some solutions
that are
developed
by third parties

might
not use solution packages
, and yet might be
acceptable to the
Online Services

operations

team that is reviewing the package. H
owever, all custom
solutions
that are
developed by
an in
-
house
customer
development team

must use th
e

WSP packaging
technology
. For further details
about

solution packaging

and WSP

file
s, see

"
Appendix C: Solution
Packaging Resources
" later in this document.

Customization Package Submission

T
he deliver
y of the customization package to
the
Online Services

engineering

team
is
handled by the
customer
'
s
TAM
.
The customization package must be delivered at least 16 business days before
a

scheduled
change

window
,

to ensure
that
the deployment can be
implemented in a timely manner in the
production environment.

Microsoft SharePoint Online Dedicated Custom Solution Policies and Process


23

Custom solution deployments are implemented during
Microsoft
-
defined change

windows.
The c
ustomer
should be aware of
the
scheduled
change

windows when submitting
the
customization package for
re
view.

Each customer receives a change window calendar that contains the available windows during
which customizations can be deployed.

Th
e

16
-
day
lead time
enables
SharePoint Online

to schedule resources, build a lab environment in
preparation for
testing
, and perform testing. It also provides time to obtain approvals from the Change
Advisory Board (CAB)
,

and
to
ensure that

SharePoint Online

has adequate staffing on hand to ensure a
successful deployment.

For m
ore information
about

designated change window
s
,

see
the SharePoint Online Change Calendar
documentation
,

which
is available

from

the customer's

TAM
or the

SharePoint Online

customer
knowledge base site.

Updat
ing

Existing Custom Code

When updating an existing customization and therefore existing docum
entation, the
following should be
provided
in addition to the components detailed in Table 3
:



A summary of what has changed from the previous version
.

This summary must include
what has changed (for example, "Master page layout
change
d
, reference
d

a new CSS file, and
update
d

the underlying JavaScript
.").



Design changes.
If the design has changed and now requires a feature enhancement or other
change to functionality, customers must submit an HLD document.

If existing custom code is being updated
only to address bugs, with no fundamental design
changes, no HLD document is necessary. The customer can provide a heads
-
up five business
days prior to the designated code drop window, through the TAM, and submit the customization
package (including update
s to the source code, deployment guide, and any other component
from the package as needed) for
Online Services

operations

team
to review. The review process
takes up to ten business days.



The
original
solution source code.
As a part of solution analysis,
the
new
source code
is

validated against th
is

original source code to ensure
that
no issues were introduced with the
planned change.



Anticipated problems during upgrade
.

Submit details
about
any errors, rendering issues, or
other problems
that might be
exp
ected when upgrading the customization.



Updated support documentation
.

Include updates for
the
end
-
user troubleshooting guide and
other documents. Describe anything that has changed and any new features that could potentially
require support or monitoring.



Rollback steps.
The

rollback

steps
must
include the necessary scripts
for
retract
ing

the solution

and adding the previous version of the solution
.
Any change to a custom solution requires that the
customer submit a complete new package for review that