Monday, May 21, 2012

Sharepoint - Online vs On-Premise vs Hybrid - Overview

Sharepoint Online

- Easy to set up the service and scale it
- Gives time to focus on business needs and customizations (hardware & backend maintenance is taken care of)
- Accessible anywhere 24x7, secure, backed up
- SharePoint Online only supports Site- and Web-scoped solutions.
- Only partial-trust solutions are supported in SharePoint Online.
- Not 100 percent feature parity with its on-premises counterpart
- Limited Storage

Sharepoint On Premise


- The environment and its governance, customization, and federation strategy is owned by the organization. There is absolute control of servers,     permissions/security, deployment, customization and policies, and federation between line-of-business systems, legacy system integration, and various data sources.
- On Premise hosting also means full control of Security Management. For larger businesses and organizations with highly sensitive data, keeping data warehouses On Premise has been perceived to be the best (if not only) option.
- All documents are saved and treated in a local database, greatly enhances the data security, which is very important for many big companies. With full control, you can pull the outside plug anytime you want on your data being stored On Premise while still being able to access it internally.
- Maintain an in house infrastructure team 24/7 in order to maintain the infrastructure and make sure it stays up and running.

 - Uninstalls, upgrades, or patches has to be managed by in house infrastructure team - costing time and money. Responsibility of in house infrastructure team to monitor and administer the SharePoint environment.

Sharepoint Hybrid


Hybrid SharePoint environments combine on-premises Microsoft SharePoint Server 2010 with Office 365 — Microsoft SharePoint Online. Hybrid environments enable organizations to achieve a higher degree of flexibility than forcing a choice between either an on-premises or cloud model.  Organizations can start to achieve the benefits associated with the use of cloud computing coupled with the customization flexibility and tight data governance of an on-premises system, while delivering a consistent experience to users.

- Organizations wishing to migrate workloads from an existing on-premises environment to the cloud over time, in a phased approach
- Organizations wanting to supplement their cloud environment with additional features or customizations which are currently only possible on-premises
- Compliance or data sovereignty reasons which might stipulate certain data be hosted in a particular location
- Active Directory Single-sign on — giving users the ability to authenticate seamlessly across both the on-premises and Office 365 environments
- Common site and document templates plus a consistent user interface — so that users can easily navigate a familiar user interface across both on-premises and Office 365 environments
- A licensing model that gives organizations the freedom  to deploy SharePoint Online and SharePoint Server.

When you should go for Sharepoint Hybrid :

Requires features not yet available in Office 365
Your portal relies on features such as Performance Point, advanced business intelligence or Records Center.
Use features or advanced configurations not yet available in Office 365 in your on-premises environment, but use Office 365 as the platform for the majority of your content where these features are not required.

Significant investment in customizations
You have a heavily customized on-premises environment (for example using custom-developed code or partner solutions).
Continue to get the value from your existing customization investments on-premises while you migrate eligible customizations to the cloud. Running in a hybrid state affords you time to assess and potentially re-architect your solution for use in Office 365.  Note, however that some integration options — such as access to Line Of Business data — might not be available with the current Office 365 service.

Concerns over global network performance
You have a distributed workforce and concerns over global network performance with your on-premises environment.
Your current on-premises deployment may offer good performance for users physically near your datacenter, but remote users in other worldwide locations may not experience the performance they desire.  A hybrid solution could allow you to locate your Office 365 environment in a Microsoft datacenter closer to your remote users.

Sharepoint 2007 Search Terminology and Architecture

                     Enterprise Search enables collection, indexing, and querying of content. SQL is used to run full-text searches. Enterprise Search also enables extensive crawling and indexing of content and provides a keyword syntax that supports keyword searches. Keywords are words or phrases that are identified as important by the administrators.The underlying search service in the Enterprise Search is the same as the search service in Windows SharePoint Service.




Some parts of the Enterprise Search architecture include :

Query engine The query engine executes queries in a keyword and SQL syntax format against content index and search configuration data.

Index engine The index engine processes blocks of text and properties that are filtered from content sources and also stores these blocks in the property store and content index.

Content index The content index stores information that is related to words and their locations in a content item.

Content source A content source is a collection of start addresses, which represents the content that needs to be crawled by the search index component. A content source also defines the schedule when the content will be crawled as well as the behavior of the crawl.
The Enterprise Search enables various content sources, such as SharePoint, web, file share, exchange folder, and business data content.


Protocol handlers Protocol handlers enable the opening of content sources in their native protocols. These handlers also display the documents and other items that are to be filtered.

IFilters IFilters are used to filter documents and other content source items into blocks of text and properties, after opening them in their original formats.

Other parts of the Enterprise Search architecture include :

Search Configuration Data Search Configuration Data stores information that is used by the Search service. This includes crawl configuration, property schema, and scopes.

Crawl log The status of the crawled content is stored in the crawl log, which also contains the current status of every item in the content index.

Search scopes The search scope provides a method for grouping several search items together. This grouping is based on an element that is common among all the items in the
Search scope. Scopes enhance the search process and enable users to concentrate their search on a smaller group of content in the index, instead of searching through the entire index.
After a search scope has been created, you can add scope rules to it, which define the content that needs to be included in the search scope. Scope rules can be based on the address, property query, or content source.


Property store The property store stores a table that consists of properties and its associated values.

Wordbreakers The query and index engines use wordbreakers to break complex words or phrases into a single word or token.

How Search works in Sharepoint 2007

The index engine requests the Filter Daemon to start filtering the content source. To make this request, the index engine employs a pipe of shared memory.Content crawling that is enabled by Enterprise Search requires the content source to have an associated protocol handler that can read the protocol. The start address of the content source is provided by the index engine, based on which the appropriate protocol handler is invoked by the Filter Daemon. Individual items in the content source are extracted and filtered by protocol handlers and IFilters. The extracted and filtered data is passed back in a text format by the Filter Daemon, through the pipe to the index engine.The properties of the document are saved by the index engine in the property store from which they can be retrieved and sorted. The property store consists of tables, and each row in the table corresponds to an individual document in the full-text index.The actual text of a content item is stored in the content index. Therefore, it can be used for content queries.Document-level security is gathered when a document is crawled and is maintained and enforced by the property store. During the crawl process, the index engine uses wordbreakers and stemmers to process the text and the properties further. The stemming component is used to generate inflected forms of a given word.The index engine also creates an inverted index for full-text searching and removes noise words.The query that needs to be executed is passed by the query engine through a language-specific wordbreaker.If the query is in a language for which no specific wordbreaker is available, a neutral wordbreaker is employed. The neutral wordbreaker performs whitespace-style wordbreaking, in which there are whitespaces in the words and phrases.The words from the wordbreaking process are passed through the stemmer, which generates language-specific inflected forms of a given word. The use of wordbreakers and stemmers enhance the search process, because they generate relevant alternatives to a user's query phrasing. To execute a property-value query, the query engine first checks the index to obtain a list of all possible matches.The properties of the matching documents that are found are loaded from the property store. The properties that have been retrieved are rechecked, to ensure a match against the search query.The query result consists of a list of all the possible matches that are displayed in their order of relevance to the query words. If a user does not have the permission to access a particular search result, it is filtered out of the list before the list is displayed.

Thursday, May 17, 2012

Sharepoint Governance (My perspective)

              There are hundreds of forums and blogs discussing about Sharepoint Governance.I would say it is one of the most overused term in the Sharepoint user community.


How is Governance important for Sharepoint???


From my experience working at Sharepoint Infrastructure side, I feel it is the most important factor to maintain a healthy Sharepoint farm.

Anyone can set up a Sharepoint farm and give any level of permission to its users(that is no big deal).But the lifetime of that farm would be very short.I do agree to the fact that setting up the farm is important.But it is more important to build and follow a strong governance model to maintain a healthy Sharepoint farm.Once your governance plan is in place, the next important thing is User Training.(which I would like to discuss at a different time)

A Governance plan should not be a goal, rather it should be a process and should evolve over a period of time.As we move forward , the governance model should  be modified to accomodate its user requirements.We definitely can use a MSDN governance plan as a starting point or for reference,but it is not neccessary to be the perfect one for your farm.We will have to make changes to it to suit our requirements and user perferences.Spending more time in studying the needs and compliances of your organization and coming up with a good governance plan always has its advantages.
Once again having a governance plan or document is no guarantee for a healthy Sharepoint farm.It needs to be strongly enforced and followed religiously.So we will have to make utmost sure the governance plan is aligned with various things like compliance,user preferences..etc. A governance document should not be a end-point document.The core content should always be the same.But we should be open for changes.(the infrastructure limitations should always be kept in mind while making drastic changes).All corporates would have a governance plan already in place for their prtals and websites.We just need to work on it and bring the Sharepoint governance plan in line with it.

The best governance plan would be the one which can accomodate changes to suit the user needs and which will survive these changes.

In a nutshell,the governance plan is -

how the system is setup,                                                     

how it needs to be maintained and

how the organization adheres to the system.

Once again , let me stress on this point.

A governance plan is not a goal, it should be an evolving process.....



Before you step into planning a Governance plan for your organization,you can use the below for your reference.
Governance overview (SharePoint Server 2010) : http://technet.microsoft.com/en-us/library/cc263356.aspx
Governance in SharePoint Server 2010 : http://technet.microsoft.com/en-us/sharepoint/ff800826.aspx

SharePoint 2007 Capacity Management

Wednesday, May 16, 2012

HTTP Status Codes

The following is a list of Hypertext Transfer Protocol (HTTP) response status codes.

The first digit of the status code specifies one of five classes of response; the bare minimum for an HTTP client is that it recognises these five classes.

1xx Informational
Request received, continuing process.
eg. 100 Continue
This means that the server has received the request headers, and that the client should proceed to send the request body

2xx Success
This class of status codes indicates the action requested by the client was received, understood, accepted and processed successfully.
eg. 200 OK
Standard response for successful HTTP requests.

3xx Redirection
The client must take additional action to complete the request.This class of status code indicates that further action needs to be taken by the user agent in order to fulfil the request.
eg. 301 Moved Permanently
This and all future requests should be directed to the given URI.

4xx Client Error
The 4xx class of status code is intended for cases in which the client seems to have erred.
eg.
400 Bad Request
The request cannot be fulfilled due to bad syntax.
401 Unauthorized
Similar to 403 Forbidden, but specifically for use when authentication is possible but has failed or not yet been provided

5xx Server Error
The server failed to fulfill an apparently valid request.Response status codes beginning with the digit "5" indicate cases in which the server is aware that it has encountered an error or is otherwise incapable of performing the request.

eg. 500 Internal Server Error
A generic error message, given when no more specific message is suitable

Monday, May 14, 2012

How to display Web Part Maintenance Page in SharePoint

The web part page starts behaving strangely or giving you errors due to script errors or web part. This sometimes even stops you to open page in edit mode because of Java Script errors.
There is a very simple way to delete those web parts. Try  appending  ?contents=1 at the end of the URL of respective page and SharePoint opens the Web Part Maintenance Page.

For example, if the URL of page with issue is :
http://MOSServer/Test/default.aspx
then ,the Web Part Maintenance Page url will be
http://MOSServer/Test/default.aspx?contents=1

Thursday, May 10, 2012

Configuring Site Collection Search in Sharepoint



From: http://technet.microsoft.com/en-us/library/cc262700.aspx




The procedures in this section are performed at the site collection level. To perform these procedures, you must be a site collection administrator for the site collection on which you want to perform them.


Create scopes at the site collection level
Site collection administrators can choose to use scopes that were created at the SSP level, copy scopes that were created at the SSP level and modify them, or create new site collection level scopes.


Use the following procedure, along with the decisions you recorded in the Site-collection level scopes section of the Plan the end-user search experience worksheet (http://go.microsoft.com/fwlink/?LinkId=74967&clcid=0x409), to copy shared scopes at the site collection level.


Copy shared scopes
1. On the top-level site of the site collection on which you want to create a scope, click Site actions, point to Site Settings, and then click Modify All Site Settings.


2. On the Site Settings page, in the Site Collection Administration section, click Search scopes.


3. On the View Scopes page, position the cursor over the name of the shared scope you want to copy, and then click Make Copy on the menu that appears.




Use the following procedure, along with the decisions you recorded in the Site-collection level scopes section of the Plan the end-user search experience worksheet (http://go.microsoft.com/fwlink/?LinkId=74967&clcid=0x409), to create scopes at the site collection level.


Create scopes at the site collection level

1. On the top-level site of the site collection on which you want to create a scope, click Site actions, point to Site Settings, and then click Modify All Site Settings.


2. On the Site Settings page, in the Site Collection Administration section, click Search scopes.


3. On the View Scopes page, click New Scope.


4. On the Create Scope page, in the Title and Description section, type a brief title for the scope that will best explain it to your users. You can also type a fuller description for reference by site administrators.


5. Ignore the Display Groups section for now. We will assign display groups to scopes later in this article.


6. In the Target Results Page section, select one of the following:


· Use the default Search Results Page. Select this option if you want search results from this scope to be presented by using the standard Search Results page.


· Specify a different page for searching this scope. Select this option if you want search results from this scope to be presented on a custom page. If you select this option, type the URL for the custom Search Results page in the Target results page box.


7. Click OK.


Create scope rules at the site collection level
Use the following procedure, along with the decisions you recorded in the Site-collection level scopes section of the Plan the end-user search experience worksheet (http://go.microsoft.com/fwlink/?LinkId=74967&clcid=0x409), to create scope rules.


The following table describes the scope rule types that you can choose from when creating a site-collection level scope rule. For simplicity, a separate procedure is provided for each scope rule type.






Use the following procedure to open the Add Scope Rule page.


Open the Add Scope Rule page
1. On the top-level site of the site collection on which you want to create a scope rule, click Site actions, point to Site Settings, and then click Modify All Site Settings.


2. On the Site Settings page, in the Site Collection Administration section, click Search scopes.


3. On the View Scopes page, position the cursor over the scope that you want to edit, click the arrow that appears, and then click Edit Properties and Rules on the menu that appears.




4. On the Scope Properties and Rules page, in the Rules section, click New rule.


Use the following procedure to create scope rules by using the Web address scope rule type.

Create scope rules by using the Web address scope rule type

1. On the Add Scope Rule page, in the Scope Rule Type section, select Web Address.


2. In the Web Address section, select one of the following options and provide the address you want to associate with this rule:


· Folder. Select this option if you want to include or exclude items in the folder and subfolders of the indicated URL (for example, http://site/subsite/folder).


· Hostname. Select this option if you want to specify a host name. All items in the host name will be included or excluded from the scope (according to the behavior rules).


· Domain or subdomain. Select this option if you want to specify a domain or subdomain (for example, widgets.contoso.com). All items in the domain or subdomain will be included in or excluded from the scope.


3. In the Behavior section, select one of the following options:


· Include. Select this option if you want the rule to be applied (if another rule precludes its inclusion, it won't be included). The Include option is analogous to the logical operator AND.


· Require. Select this option if you want the rule to be applied regardless of other rules. The Require option is analogous to the logical operator OR.


· Exclude. Select this option if you want items that match this rule to be excluded from the scope. The Exclude option is analogous to the logical operator AND NOT.


4. Click OK.


Use the following procedure to create scope rules by using the Property Query scope rule type.


Create scope rules by using the Property Query scope rule type


1. On the Add Scope Rule page, in the Scope Rule Type section, select Property Query.


2. In the Property Query section, select the managed property that you want to use to limit the scope from the Add property restrictions list.


3. In the = box, type the string (value) that the managed property needs to match.


4. In the Behavior section, select one of the following options:


· Include. Select this option if you want the rule to be applied (if another rule precludes its inclusion, it won't be included). The Include option is analogous to the logical operator AND.


· Require. Select this option if you want the rule to be applied regardless of other rules. The Require option is analogous to the logical operator OR.


· Exclude. Select this option if you want items that match this rule to be excluded from the scope. The Exclude option is analogous to the logical operator AND NOT.


5. Click OK.


Use the following procedure to create scope rules by using the All content scope rule type.


Create scope rules by using the All content scope rule type


1. On the Add Scope Rule page, in the Scope Rule Type section, select All Content.


2. Click OK.


Manage display groups


To support a customized search experience, you can set up new display groups with which to associate your scopes, and you can assign scopes to the default display groups. Site administrators can also control the order in which scopes appear within a particular display group. After you create a display group, designers can modify the Search Box Web Part to display it.

Create a new display group


Use the following procedure, along with the decisions you recorded in the Display groups section of the Plan the end-user search experience worksheet (http://go.microsoft.com/fwlink/?LinkId=74967&clcid=0x409), to create display groups at the site collection level and to assign the scopes you want to them.


Create display groups


1. On the top-level site of the site collection on which you want to create a display group, click Site actions, point to Site Settings, and then click Modify All Site Settings.


2. On the Site Settings page, in the Site Collection Administration section, click Search scopes.


3. On the View Scopes page, click New Display Group.


4. On the Create Scope Display Group page, type a title and description that easily identifies the purpose of the group.


5. In the Scopes section, select the check box next to each scope that you want to include in this display group. You can manage the ordering of the scopes in the group by using the Position from Top lists.


6. In the Default Scope section, in the Default Scope list, select the scope that you want to be applied if users do not make a choice on their own.


7. Click OK.


Assign scopes to default display groups


Use the following procedure, along with the decisions you recorded in the Display groups section of the Plan the end-user search experience worksheet (http://go.microsoft.com/fwlink/?LinkId=74967&clcid=0x409), to assign scopes to the default Search Drop-down and Advanced Search display groups.


Assign scopes to default display groups


1. On the top-level site of the site collection on which you want to assign scopes, click Site actions, point to Site Settings, and then click Modify All Site Settings.


2. On the Site Settings page, in the Site Collection Administration section, click Search scopes.


3. On the View Scopes page, in the Title column, click Search Dropdown.


4. On the Edit Scope Display Group page, in the Scopes section, select the check boxes for the scopes you want to be included in this display group, and clear the check boxes for the scopes you want to remove from this display group.


5. Optionally use the Position from Top lists to specify the order in which the scopes will appear to the user for this display group.


6. Click OK.


7. On the View Scopes page, in the Title column, click Advanced Search.


8. On the Edit Scope Display Group page, in the Scopes section, select the check boxes for the scopes you want to be included in this display group, and clear the check boxes for the scopes you want to remove from this display group.


9. Optionally use the Position from Top lists to specify the order in which the scopes will appear to the user for this display group.


10. Click OK.


Modify the Search Box Web Part for a new display group


Use the following procedure to modify the Search Box Web Part for a new display group.


Modify the Search Box Web Part for a new display group


1. Go to the Search Center page on the site collection on which you want to modify the Search Box Web Part.


2. Click Site actions, and then click Edit Page.


3. In the search box, click Edit, and then click Modify Shared Web Part.


4. In the Search Box tool pane, click the plus sign (+) next to Miscellaneous.


5. In the Scope Display Group text box, type the name of the display group that you want to use, and then click Apply.


6. Click OK to close the tool pane.


7. On the Search Center page, click either Publish or Check In to Share Draft, depending on your site permissions and workflow.


Create keywords and Best Bets


Search keywords and Best Bets enable you to provide two important features to help your users get the search results they need:


· Search keywords enable you to create a glossary of important terms within your organization. When a user types the keyword in a search query, the definition that has been created for that keyword is displayed at the top of the Search Results page.


· Best Bets enable you to prominently present editorially selected search results. Best Bets are URLs to pages, documents, or external Web sites that you associate with particular search keywords. When a user types a keyword in a search query that has one or more Best Bets, the Search Results page prominently displays the Best Bet URLs, including the title and description of each one.


Best Bets are most helpful in situations in which a site administrator wants to promote specific pages. Because the Best Bet URLs are displayed prominently on the Search Results page, end users may be more inclined to view them.


Use the following procedure, along with the decisions you recorded in the Keywords and Best Bets section of the Plan the end-user search experience worksheet (http://go.microsoft.com/fwlink/?LinkId=74967&clcid=0x409), to create keywords and Best Bets.


Create keywords and Best Bets


1. On the top-level site of the site collection on which you want to create keywords and Best Bets, click Site actions, point to Site Settings, and then click Modify All Site Settings.


2. On the Site Settings page, in the Site Collection Administration section, click Search keywords.


3. On the Manage Keywords page, click Add Keyword.


4. On the Add Keyword page, in the Keyword Information section, in the Keyword Phrase box, type the keyword phrase you want to create.


5. In the Synonyms box, type the synonyms you want to associate with this keyword phrase. You can type more than one synonym by separating them with semicolons.


6. If you want to associate a Best Bet with this keyword, in the Best Bets section, click Add Best Bet. Otherwise, skip to step 13.


7. If this is the first Best Bet you will create on this site collection, skip to step 9. Otherwise, in the Add Best Bet dialog box, do one of the following:


· To create a new Best Bet, select Add new best bet and then skip to step 9.


· To select an existing Best Bet, select Select existing best bet, click the Best Bet you want from the Select best bets from the list below box, and then click OK. Skip to step 13.


8. In the URL box, type the URL you want to associate with this Best Bet.


9. In the Title box, type the title you want to associate with this Best Bet. This title appears in the Select best bets from the list below box, when selecting an existing Best Bet.


10. In the Description box, type a description for this Best Bet. This description appears with the Best Bet on the Search Results page.


11. Click OK.


12. If you want to create a definition for this keyword, in the Keyword Definition section, type the definition that you want to appear next to Best Bets for this keyword on the Search Results page (optional).


13. In the Contact section, type the user name of the person to inform when the keyword is past its review date (optional).


14. In the Publishing section, you can optionally choose end and review dates for this keyword.


15. Click OK.


16. Repeat steps 4 through 16 to create additional keywords and best bets.

Wednesday, May 2, 2012

MOSS 2007 to SharePoint 2010 Upgrade


Upgrading to SharePoint 2010 Products includes many steps that must be performed during the appropriate phase of the upgrade process.

I) Before upgrade
Before you attempt an upgrade, perform the following steps:

1)    Run the pre-upgrade checker to identify and fix potential upgrade issues in your environment.

The pre-upgrade checker is a command-line tool that you run in the previous version environment to find any potential issues for upgrade and to review recommendations and best practices.
STSADM.EXE -o preupgradecheck [[-rulefiles "rule file name"] | [-listrulefiles]] [-localonly]

By using the pre-upgrade checker, you can find information like the following:
1.      A list of all servers and components in the farm, and whether the servers meet requirements for upgrading (64-bit, Windows Server 2008).
2.      The alternate access mapping URLs that are being used in the farm.
3.      A list of all site definitions, site templates, features, and language packs that are installed in the farm.
4.       Whether there are customizations in the farm that are not supported (such as database schema modifications).
5.      Whether there are any database or site orphans in the farm.
6.      Whether there are missing or invalid configuration settings in the farm (such as a missing Web.config file, invalid host names, or invalid service accounts).
7.      Whether the databases meet requirements for upgrade — for example, databases are set to read/write, and any databases and site collections that are stored in Windows Internal Database are not larger than 4 GB.

2)    Choose an upgrade approach: in-place, database attach, or a hybrid of the two.

In-place upgrade approach

Upgrade occurs on the same computer on which Office SharePoint Server 2007 or Windows SharePoint Services 3.0 is installed.
Database attach upgrade to a new farm approach
Content and SSP (Office SharePoint Server only) databases are backed up on SQL Server. A new SharePoint Server 2010 farm is created, and then the databases are attached to the new farm to upgrade the data


Hybrid approach

You can combine aspects of an in-place and database attach upgrade to get better upgrade performance and mitigate downtime.

3)    Identify all customizations in your environment.
Use the pre-upgrade checker and a comparison tool such as WinDiff on a test farm to identify all customizations. For more information, see the Test Your Upgrade Process model
4)    Back up all databases by using SQL Server tools before you begin the upgrade process.
Use the SQL Server tools to back up all databases before you perform an upgrade.

5)    Test your upgrade process on a virtual or physical test farm, and address any issues that you find.
Before you perform an upgrade, be sure that you have tested the upgrade process and addressed any issues that you found during testing.

6)    Optional Restructure your content or farms.



II) During upgrade
After you finish the pre-upgrade steps and have tested the upgrade process for your environment and addressed any issues, you are ready to upgrade the production environment.
In-place upgrade
For an in-place upgrade, perform the following steps:
1)    Run Setup to install SharePoint 2010 Products on all servers in your farm.
· Run Setup to install SharePoint 2010 Products on all servers in your farm. Start with the server that is hosting the SharePoint Central Administration Web site. Do not run the SharePoint Products Configuration Wizard until you have run Setup on all front-end Web servers and application servers in the farm.
2)    Install any language packs required for your farm.

3)    Run the SharePoint Products Configuration Wizard to begin the upgrade process.
· Run the SharePoint Products Configuration Wizard to begin the upgrade process. Again, start with the server that is hosting Central Administration. Pause at the page that notifies you to run the wizard on other servers in the farm. Run the wizard on all front-end Web servers and application servers in the farm, pausing at the same page on each server. When all servers are at the same point in the wizard, complete the wizard on the first server in the farm. This begins the upgrade process for all data in the farm. When the upgrade is complete on the first server in the farm, continue the SharePoint Products Configuration Wizard on the remaining servers.
4)    Optional: Use Visual Upgrade to convert site collections to the SharePoint 2010 Products look.

Database attach upgrade
· Create a new SharePoint 2010 Products farm.
· Back up the databases on the previous version farm.
· Attach the databases to the new farm to begin the upgrade process.



III) After upgrade
After you run the upgrade, take the following steps to identify and fix any issues:
After upgrade, you need to verify that the upgrade finished, verify that the sites have been upgraded correctly, and identify and fix any issues. These steps are the same whether you are performing a test or production upgrade.
1)    Review the log files to check for issues and to verify that upgrade finished.
Review the following log files to find any errors or warnings and address the issues before you allow users access to the upgraded sites:
· The SharePoint Products Configuration Wizard log file.
· The upgrade log file.
2)    Review upgraded sites and fix any issues.
Review the upgraded sites to make sure that all custom elements in the sites appear as expected.

3)     Optional: Restructure your content or farms.

4)    Optional: Use Visual Upgrade to convert site collections to the SharePoint 2010 Products look.







IV) Before or after upgrade (Optional)

Restructure content and farms


Restructuring tools and techniques
Restructuring during upgrade is a common activity. There are third-party tools available to help you move documents, lists, and sites between site collections or server farms. There is also the mergedb operation for Stsadm to move entire site collections into a different database or the import/export and backup/restore commands to move site collections to a different farm.
1)     Choose mergedb when you need to rebalance the number of sites in your databases to increase upgrade performance for the databases.
2)     Choose import/export when you are restructuring the organization of your content. You can restructure content in either the previous version or your SharePoint 2010 Products farm.
3)     Choose site collection backup/restore to move individual site collections in either version.

Considerations for merging farms

If you are merging several farms (such as moving from several divisional farms to a central corporate farm, or from several smaller farms to a single large farm), you must determine your approach for the following:

1)     Currently, you have several URLs pointing to the different farms. Do you keep that structure, or do you merge URLs in addition to farms?

2)     For the best experience, Office SharePoint Server 2007 or Windows SharePoint Services 3.0 with the April 2009 cumulative update is recommended. This update, along with Service Pack 2, includes the ability to store alternate access mapping settings in each content database so that Web applications can exist on the same farm without merging URLs.

Use Visual Upgrade to convert site collections to the SharePoint 2010 Products look
A new feature that is available with upgrade allows the IT administrator or site owner to determine when and whether the new look for SharePoint 2010 Products will be used for a particular site collection. IT administrators can make a choice to either adopt the new look for all sites during upgrade, leave the choice to site owners after upgrade, or retain the old look for all sites. If the IT administrator chooses to allow the site owners to decide, after a site has been upgraded by using an in-place upgrade, an option is available in the site user interface to preview the SharePoint 2010 Products look for the site.
1)     If the owner likes how the site looks and functions, the owner can finalize the visual upgrade.
2)     If the owner wants the site to retain the old look, the owner can revert to the previous version look.
By default, the previous version look is retained.



Migration Tools
There are several Microsoft partners who have brought out tools for migrating site content across SharePoint versions.  Some of them include Tzunami, Metalogix, Avepoint etc.  Each of these tools has different sets of functionality and capabilities.

Some of these tools could be considered in specific situations such as:
-          Integrating content from multiple instances into a single instance
-          Building a SharePoint 2010 installation from scratch and migrating only specific pieces of content from other SharePoint instances.
-          Side-by-side co-existence of multiple versions of SharePoint. (SharePoint 2010 and MOSS 2007)

Powershell vs STSADM for Solution Deployment in Sharepoint 2010


Though Powershell is the new buzzword for Sharepoint Administrators(with Sharepoint 2010),we still can do most of these admin activities using the stsadm command line tool.Let us walk through how we used to do these activities in MOSS 2007 and how it is performed in Sharepoint 2010

STSADM Commands

1) To add solution to the Farm:

stsadm –o addsolution –filename "C:\Deployment\MySharePointSolutionPackage.wsp"

2) To deploy the solution

stsadm –o deploysolution –name MySharePointSolutionPackage.wsp –url http://webapplication/ –allowgacdeployment –immediate

3) To upgrade a solution

stsadm –o upgradesolution –name MySharePointSolutionPackage.wsp –filename "C:\Deployment\MySharePointSolutionPackage.wsp" –immediate

4) To retract and remove a solution:

stsadm –o retractsolution –name MySharePointSolutionPackage.wsp –url http://webapplication/ –immediate 
stsadm –o deletesolution –name MySharePointSolutionPackage.wsp

Powershell Solution Cmdlets

1) To add solution to the Farm:

Add-SPSolution –LiteralPath "C:\Deployment\MySharePointSolutionPackage.wsp"

To add a Sandboxed solution(adding to the site collection)

Add-SPUserSolution –LiteralPath "C:\Deployment\MySharePointSolutionPackage.wsp" –Site http://webapplication/sitecollection

2) To install ( deploy in stsadm) a Farm Solution:

Install-SPSolution –Identity MySharePointSolutionPackage.wsp –WebApplication http://webapplication/ –GACDeployment

To install ( deploy in stsadm)  a Sandboxed Solution (installing to the site collection):

Install-SPUserSolution –Identity MySharePointSolutionPackage.wsp –Site http://webapplication/sitecollection

3) To update (upgrade in stsadm) a Farm solution :

Update-SPSolution –Identity MySharePointSolution.wsp –LiteralPath “C:\Deployment\MySharePointSolutionPackage.wsp” –GacDeployment

To update (upgrade in stsadm) a Sandbox solution (updating to the site collection) :

Update-SPUserSolution –Identity MySharePointSolution.wsp –Site http://webapplication/site –ToSolution MySharePointSolutionPackage.wsp

4) To uninstall and remove FARM level solutions :

Uninstall-SPSolution –Identity MySharePointSolution.wsp –WebApplication http://webapplication/ 

Remove-SPSolution –Identity MySharePointSolution.wsp

To uninstall and remove Sandbox solutions (uninstall and remove from the site collection):

Uninstall-SPUserSolution –Identity MySharePointSolution.wsp –Site http://webapplication/sitecollection 

Remove-SPUserSolution –Identity MySharePointSolution.wsp –Site http://webapplication/sitecollection

Trivia :

To get a list of all of the powershell cmdlets :
Get-Command –noun *SPSolution*

To run all of the Administrative jobs that are queued:
Start-SPAdminJob

Orphaned sites in MOSS 2007

There has been issues related to orphaned items present in Sharepoint sites. In order to detect and delete the orphaned items you can use the below commands:
Detecting  an orphan site


To detect orphaned items :
stsadm -o databaserepair -url http://sharepointsite/ -databasename [name of DB where orphaned site is present]
Deleting an orphan site
To delete orphaned items :
stsadm -o databaserepair -url http://sharepointsite/  -databasename [name of DB where orphaned site is present] -deletecorruption
Reference :  http://technet.microsoft.com/en-us/library/cc263282.aspx