<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Nik Patel&#039;s SharePoint World</title>
	<atom:link href="http://nikspatel.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nikspatel.wordpress.com</link>
	<description>An adventure in SharePoint and Microsoft in general.</description>
	<lastBuildDate>Sun, 22 Apr 2012 15:11:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='nikspatel.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Nik Patel&#039;s SharePoint World</title>
		<link>http://nikspatel.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://nikspatel.wordpress.com/osd.xml" title="Nik Patel&#039;s SharePoint World" />
	<atom:link rel='hub' href='http://nikspatel.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Office 365 and SharePoint Online Guide for On-Premise SharePoint Professionals</title>
		<link>http://nikspatel.wordpress.com/2012/04/09/office-365-and-sharepoint-online-guide-and-resources-for-sharepoint-on-premise-architects/</link>
		<comments>http://nikspatel.wordpress.com/2012/04/09/office-365-and-sharepoint-online-guide-and-resources-for-sharepoint-on-premise-architects/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 01:26:00 +0000</pubDate>
		<dc:creator>nikspatel</dc:creator>
				<category><![CDATA[Office 365]]></category>

		<guid isPermaLink="false">http://nikspatel.wordpress.com/?p=1730</guid>
		<description><![CDATA[Last Updated: Based on March 2012 Office 365 Update NOTE: Please note that unless it&#8217;s stated, this article provides overview of SharePoint Online Standard for Office 365 Enterprise Customers. I personally think, this is most common deployment model for SharePoint Online for Enterprises. If you are experienced On-Premise SharePoint 2010 Architect and just getting into [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1730&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Last Updated: Based on March 2012 Office 365 Update</strong></p>
<p><strong>NOTE: Please note that unless it&#8217;s stated, this article provides overview of SharePoint Online Standard for Office 365 Enterprise Customers. I personally think, this is most common deployment model for SharePoint Online for Enterprises.</strong></p>
<p>If you are experienced On-Premise SharePoint 2010 Architect and just getting into Office 365 and SharePoint Online, this article will provide high level overview and basic differences between On-Premise SharePoint implementation vs SharePoint Online features in Office 365. Since Office 365 and SharePoint online are ever-changing landscape, I will try my best to update this article as Microsoft release more updates in future.</p>
<p>Although you can visit my compilation of <a href="http://nikspatel.wordpress.com/2012/04/09/niks-office-365-and-sharepoint-online-resources/" target="_blank">Office 365 and SharePoint 2010 resources</a>, following three resources are most important for any one wants get up to speed with SharePoint Online. I personally think, these are must have resources for any SharePoint Online Architects.</p>
<ul>
<li>Office 365 for Enterprise Service Descriptions – <a href="http://www.microsoft.com/download/en/details.aspx?id=13602">http://www.microsoft.com/download/en/details.aspx?id=13602</a></li>
<li>Office 365 for Dedicated Subscription Plans – <a href="http://www.microsoft.com/download/en/details.aspx?id=18128">http://www.microsoft.com/download/en/details.aspx?id=18128 </a></li>
<li>Phil Wicklund&#8217;s Microsoft SharePoint 2010: Deploying Cloud-Based Solutions Book- <a href="http://www.amazon.com/Microsoft-SharePoint-2010-Cloud-Based-Organizations/dp/073566210X">http://www.amazon.com/Microsoft-SharePoint-2010-Cloud-Based-Organizations/dp/073566210X</a> (Read my review on Amazon for this brilliant resource)</li>
</ul>
<p><strong>Office 365 and SharePoint Online Overview</strong></p>
<ul type="disc">
<li>Office 365 can be licensed in one of the three models &#8211; for professionals &amp; small businesses, for midsized businesses &amp; enterprises, and for education, Education model is free.</li>
<li>SharePoint Online comes in 2 flavors &#8211; Standard and Dedicated</li>
<li>SharePoint Online Standard Plans in Office 365
<ul type="circle">
<li>SharePoint Online features in enterprise licenses
<ul type="disc">
<li>E1 =&gt; Basic Collaboration Portal, Office Web Apps for View Only</li>
<li>E2 =&gt; E1 + Office Web Apps for Edit</li>
<li>E3 =&gt; E2 + Advanced SharePoint Services like Excel, Access, Visio, and Forms, Office Professional Plus</li>
</ul>
</li>
</ul>
<ul type="circle">
<li>SharePoint Online Standalone Plans
<ul type="disc">
<li>SharePoint Online Standalone Plan 1 included in E1 and E2</li>
<li>SharePoint Online Standalone Plan 2 included in E3 and E4 &#8211; Same as E3 minus Office Web Apps for Edit</li>
</ul>
</li>
</ul>
</li>
<li>Software and Hardware Requirements
<ul type="circle">
<li>See Microsoft SharePoint Online for Enterprises &#8211; Service Description for Browser &amp; Desktop Client Software Requirements by each Operating System &#8211; Page 9-10 on March 2012 Update</li>
</ul>
</li>
<li>Tools &#8211; Microsoft Office 365 Desktop Setup
<ul>
<li>Free Office desktop setup tool is required for all workstations that use rich Office clients like Outlook, Word, or Excel to access documents from Office 365. It would also automatically configure Outlook and Microsoft Lync to use with Office 365.</li>
<li>It is important to note that this tool is not an authentication or single sign-in service.</li>
</ul>
</li>
<li>Microsoft Office Support
<ul type="circle">
<li>2007 &#8211; Excel, Outlook, PowerPoint, Word</li>
<li>2010 &#8211; Access, Excel, InfoPath, Outlook, OneNote, PowerPoint, SharePoint Designer, Word, SharePoint Workspace, Project Professional</li>
</ul>
</li>
<li>SLA
<ul type="circle">
<li>99.9% uptime guarantee</li>
<li>SPO Data backed up every 12 hours and retained for 14 days</li>
<li>6 hours RTO &#8211; recovery time objective, resume service within 6 hours after service disruption</li>
<li>1 hour RPO &#8211; recovery point objective, restore copy of data that is less than 1 hr old</li>
</ul>
</li>
</ul>
<p><strong>SharePoint Online Storage Guidelines and Software Boundaries for Enterprise Tenant</strong></p>
<ul>
<li>Max storage allowed per tenant &#8211; 25 TB per tenant</li>
<li>Allocated Storage (pooled)
<ul>
<li>Applies to all the Site Collections per tenant</li>
<li>Initial Storage &#8211; 10 GB base customer storage + 500 MB per E1-E4 user license/internal user + No additional storage for external user (e.g. an organization with 1000 internal users and 200 external users by default would have (1000&#215;500) + (200&#215;0) = 500,000 MB = 500 GB + 10 GB = 510 GB initial storage)</li>
<li>Additional storage available at a cost per GB per Month, No minimal purchase limitation &#8211; $0.20 USD/GB/month</li>
</ul>
</li>
<li>Minimum Users &#8211; 50</li>
<li>Maximum Number of AD Users &#8211; 500,000 AD Objects</li>
<li>External Users (PALs &#8211; Partner Access Licenses) &#8211; 50 PALs included per tenant, Current feature preview allows for upto 1000 external users but MS may charge for additional PALs beyond 50 in future Update</li>
<li>Site Collection storage quota  &#8211; 24 MB initial, Maximum allowed up to 100 GB Per site collection</li>
<li>My Site storage quota &#8211; 500 MB per my site, this can&#8217;t be adjusted, this does not count towards tenant&#8217;s overall storage pool</li>
<li>Sandbox resource quota &#8211; 300 + 200 per number of licensed user seats. e.g. 25 seat licensed environment, server resource quota is 300 + (200&#215;25) = 5,300, This is fixed, can&#8217;t be purchased additional resource quota.</li>
<li># of Site Collections Per Tenant &#8211; 300 Non-My Site Site Collections</li>
<li>File Upload Limit &#8211; 250 MB per file</li>
</ul>
<p><strong>Authentication and User Management</strong></p>
<ul>
<li>Anonymous Users for public sites</li>
<li>Cloud based Identity &#8211; Office 365 Accounts (@onmicrosoft.com)
<ul>
<li>Only global administrator or user management administrator role can managed users</li>
<li>Manually create users in Office 365. These accounts will have @[mycompanyName].onmicrosoft.com format</li>
<li>Creating Users, office 365 would assign random passwords for each users. User must change their password after they login to Office 365 very first time.</li>
</ul>
</li>
<li>Identity federation with on-premises Active Directory domain
<ul>
<li>Either register your domain with Office 365 or Use @[mycompanyName].onmicrosoft.com domain</li>
<li>Use Active Directory Synchronization (DirSync) Tool to crawl your domain and creates copies of users in Office 365</li>
<li>AD synchronization simply replicate users and provisions copies on on-premise  identities in MS Online&#8217;s User Store. It doesn&#8217;t synchronize passwords and by default, it doesn&#8217;t accommodate  single sign on. Users has simply two accounts, two passwords, and the federated identity is simply mapped to the on premise identity.</li>
<li>To accommodate single sign on, you can configure ADFS 2.0 server and proxy in your domain and configure Active Directory Federation trust with Microsoft ADFS 2.0 server to federate identities with the Office 365 federation gateway and facilitate single sign on for on premise users. Federated identity is not used for authentication, Authentication takes place on trusted  on-premised identity provider. Exchange Online and Lync Online requires local identity to attach mail boxes.</li>
<li>DirSync can only Synchronize a Single Forest. If you have more than 1 forest in your AD, you need to pick the forest with your user accounts or plans on a forest consolidation.</li>
</ul>
</li>
<li>External Sharing Identities
<ul>
<li>This Site Collection Level  Feature enables company to invite external users to view, share, and collaborate on their sites</li>
<li>MS Supports invited external users sign in using MS Online ID services like Windows Live ID including @live.com, @hotmail.com, or @msn.com, Once external user receive their invitation from SharePoint Online, they have to login to the SPO either using Hotmail or MS Online Service ID.</li>
<li>External users can use their business email address as long as their email user name associated with Live ID system.</li>
</ul>
</li>
</ul>
<p><strong>Authorization, Security Groups, Security Roles, and Site Membership</strong></p>
<ul type="circle">
<li>Security Groups in SharePoint Online
<ul type="disc">
<li>Office 365 Global Security Groups
<ul>
<li>These groups created by global administrator</li>
<li>If you have many users and if they need to have permissions across more than one SharePoint Online Site Collection, this is preferred method.</li>
<li>On premise AD groups can be mapped to the Global Security Groups when AD synchronization is configured. Group membership for Synchronized groups will be updated every 3 hours</li>
</ul>
</li>
<li>SharePoint Online Groups
<ul type="square">
<li>Same as On-Premise SharePoint</li>
</ul>
</li>
</ul>
</li>
<li>Security Roles in SharePoint Online
<ul type="circle">
<li>Office 365 Global Administrator</li>
<li>SharePoint Online Service Administrator &#8211; Office 365 Global Administrator with SharePoint Online License</li>
<li>Site Collection Level Role &#8211; Site Collection Administrator</li>
<li>Site Level Roles &#8211; Site Owners, Site Contributors, Site Visitors</li>
</ul>
</li>
</ul>
<p><strong>SharePoint Online Features Overview</strong></p>
<ul>
<li>SharePoint Online Administration
<ul>
<li>Allows you to create Private Site Collection under two managed paths &#8211; sites and teams. Custom managed paths are not allowed in SharePoint Online.</li>
<li>Allows you to specify Storage and Resource Quota per Site Collection.</li>
<li>SharePoint Online doesn&#8217;t support customers to use of Windows PowerShell for service administration.</li>
<li>SharePoint Online comes with pre-defined list of blocked files. You can&#8217;t manage list of blocked file types.</li>
</ul>
</li>
<li>URL Naming
<ul>
<li>URL structure for SPO sites is based on name of your company provided during sign up. This name can&#8217;t be changed. e.g. if your company domain name is contoso, URL would be &#8211; <a href="https://contoso.sharepoint.com">https://contoso.sharepoint.com</a></li>
<li>Vanity URLs are not supported for intranet zone sites or SPO private site collection.</li>
<li>You can register domain and apply Vanity URLs to your SPO public web sites.</li>
</ul>
</li>
<li>Single Signon from Browser
<ul>
<li>IE automatically configures SPO sites as trusted sites when users install the service connector. After users singing with the Office 365 application, they will not be prompted for their username &amp; password again when they visit SharePoint Online Sites &#8211; Admin, My Site, and Main Root Site Collection</li>
<li>Other browsers like Firefox or Chrome would prompt username &amp; password for SPO sites</li>
</ul>
</li>
<li>Service Applications Partitioned for Each Tenant
<ul>
<li>Secure Store Service</li>
<li>Business Data Connectivity Service for WCF Connectors</li>
<li>Managed Metadata Service</li>
<li>Search Service</li>
</ul>
</li>
<li>Communities
<ul>
<li>Supported capabilities are My Sites, My Profile,  Ask me About, Status Updates, Recent Activities, Colleague Suggestions, Enterprise Wikis, Blogs, Newsfeed, Note Board, Organization Browser, Content Tagging, Tag Cloud, Tag Profiles, Ratings, Comments, I Like It</li>
</ul>
<ul>
<li>Profiles are either created when new user is created from Office 365 UI or during profile import from Active Directory.</li>
<li>You can brand My Site Host and Individual user My Sites with Custom Sandbox Solutions. It is important to note that when users provisions their My Site first time, it would take default branding based on OOB My Site template. User must upload Sandbox solutions to apply branding to their My Sites. Individual end-users can use SharePoint Designer to update branding on case by case basis as well. This should be avoided.</li>
</ul>
</li>
<li>Composites
<ul>
<li>Supports methods of customizations and development are Browser Customization, BCS connection to external data sources via WCF endpoint, Sandbox Solutions using Server<br />
Side Object Model, Access Databases in Access Service, No Code Solutions using SharePoint Designer 2010 including workflows, List &amp; Library InfoPath Forms including Sandbox Solutions with InfoPath Code, Silverlight, JavaScript Client Object Model, jQuery Integration, and Content Editor &amp; Content Query Web Parts</li>
</ul>
<ul>
<li>Fully trusted Farm Level Solutions are not supported in SharePoint Online Standard. Only dedicated version allows fully trusted solutions with proper code review.</li>
</ul>
<ul>
<li>BCS in SharePoint Online allows connection to external data sources via WCF endpoint in both read-write manner, It doesn&#8217;t support direct connection to SQL Azure (WCF endpoint is required)</li>
</ul>
<ul>
<li>Although Access Services is supported in SPO, Access reporting is not supported because SSRS is not available for SharePoint Online. Access reporting requires SSRS.</li>
</ul>
<ul>
<li>SharePoint Online doesn&#8217;t allow publishing InfoPath forms that require full trust or farm level deployment.</li>
</ul>
<ul>
<li>Developer Dashboard is not available in SharePoint Online for customers.</li>
</ul>
</li>
<li>Content
<ul>
<li>Supported capabilities are Document Libraries, Browser Based Document Editing, Managed Metadata Service, Document Sets, Document Center Site Template, Metadata Driven Navigation, Unique Document ID Service, Shared Content Types across multiple Site Collections, Content Organizer</li>
<li>SharePoint Online doesn&#8217;t support Record Management, Records Center Site Template, and Information Rights management</li>
</ul>
<ul>
<li>SharePoint Online doesn&#8217;t support Word Automation Services and Open XML SDK</li>
<li>SharePoint Online doesn&#8217;t support WCM publishing approval Workflow along with Variations for Internet sites. These features are available only for Private Site Collection and Intranet environment.</li>
</ul>
<ul>
<li>Managed Metadata Service provides multiple taxonomies and folksonomies from tenant-level Term Store service. All Site Collections would share same term store. SharePoint Online service administrator can delegate Term Store management from SPO Admins page.</li>
</ul>
<ul>
<li>SharePoint Online does not support auditing capabilities to log the opening and downloading of files in document library.</li>
<li>Enterprise Content Types across multiple site collections can be created from <a href="http://%7brootsitecollectionUrl%7d/sites/contenttypehub">http://{rootsitecollectionUrl}/sites/contenttypehub</a></li>
</ul>
</li>
<li>Insights
<ul>
<li>Supported capabilities are Excel Services with REST-based APIs, KPI Web parts, and Visio Services</li>
</ul>
<ul>
<li>SharePoint Online doesn&#8217;t support Performance Point Services</li>
</ul>
<ul>
<li>SharePoint Online doesn&#8217;t support Power Pivot for SharePoint and Excel</li>
</ul>
<ul>
<li>SharePoint Online doesn’t support Business Intelligence Center Site Template, Chart Web Parts, and Data Connection Libraries</li>
</ul>
</li>
<li>Search
<ul>
<li>Supported capabilities are Basic and Enterprise Search Center Site Templates, Metadata Driven Refinement, Phonetic Search, People &amp; Expertise  Search, Documents View In Browser, Best Bets, Site Collection level Search Scopes</li>
</ul>
<ul>
<li>SharePoint Online supports only Enterprise Search, It doesn&#8217;t support FAST Search including Thumbnails &amp; Previews, Deep refinement, Relevancy tuning, Visual Best Bets</li>
</ul>
<ul>
<li>By default, Search Service is partitioned and enabled for each tenant. Enterprise Search just works without any additional configuration required by tenant. By default, all the content is indexable and searchable. You can configure content is not searchable at the document library or list level, not site level.</li>
</ul>
<ul>
<li>No administrative access to the Search Service Application, You can&#8217;t create additional tenant level Content Sources, Search Scopes, Crawl Rules etc.</li>
</ul>
<ul>
<li>SharePoint Online only supports site collection level Search Scopes</li>
</ul>
<ul>
<li>SharePoint Online doesn&#8217;t support Federated Search</li>
</ul>
<ul>
<li>SharePoint Online supports search across all site collections, irrespective of which site collection content resides in. Microsoft already provides default enterprise search center site. You can access talent level default Search Center from <a href="http://%7brootsitecollectionUrl%7d/search">http://{rootsitecollectionUrl}/search</a></li>
</ul>
<ul>
<li>SharePoint Online Standard doesn&#8217;t support indexing content outside of SharePoint.</li>
<li>Indexing occurs automatically every 5 minutes. SharePoint Online Crawler setting is to crawl content every 5 minutes.</li>
<li>SharePoint Online include PDF iFilter. PDF documents and content with PDF files will be picked up and included in main Search Index, PDF files open in Adobe PDF software.</li>
</ul>
</li>
<li>Sites
<ul>
<li>SharePoint Online supports most of all capabilities from Sites area including Lists, Libraries, Large List scalabilities, Web Parts, MUI, Security Permissions Management, Audience Targeting, and Site Templates</li>
<li>Web Analytics Service is not supported in SharePoint Online.</li>
</ul>
</li>
<li>Office Web Apps
<ul>
<li>Office Web Apps are included part of SharePoint Online as an preconfigured service to access and view Word, Excel, PowerPoint, and One Notes documents. This is by default available for all the users with SPO licenses</li>
</ul>
<ul>
<li>Office Web App License is required to Edit Word, Excel, PowerPoint, and One Notes from the browser.</li>
<li>Users with Office Web App License can create new Office documents via the Office Web Apps in conjunction with associated document library content types and do not have Office installed on the desktop.</li>
</ul>
</li>
<li>Public Site
<ul>
<li>Office 365 customers can create only 1 simple public web site per tenancy. Once it&#8217;s created, customers can apply a Vanity URL by registering additional domain.</li>
<li>Public site does not use SharePoint Publishing Portal framework. These features are supported only for Intranet Sites to brand Intranet Sites with master page framework in private site collections.</li>
<li>Public Web Site is configured by built-in Site Designer Ribbon Tool.</li>
<li>SharePoint Designer 2010 can&#8217;t be used to edit public web site. SPD 2010 can be used to edit only private site collection sites.</li>
</ul>
</li>
<li>Recycle Bin Capabilities
<ul>
<li>Items supported &#8211; Site Collections, Sites, Lists, Libraries, Folders, List Items, Documents, Web Part Pages</li>
<li>Site &amp; Site Collection Recycle Bin capability works same as On-Premise for Lists, Libraries, Folder, List Items, Documents, and Web Part Pages Restore</li>
<li>Site Collection Recycle Bin capability works same as On-Premise Sites Restore from Site Collection Administration Section</li>
</ul>
<ul>
<li>New SharePoint Online Tenant specific capability &#8211; Tenant level Recycle Bin to restore Site Collection from SPO Admin Page</li>
</ul>
</li>
</ul>
<br />Filed under: <a href='http://nikspatel.wordpress.com/category/office-365/'>Office 365</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikspatel.wordpress.com/1730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikspatel.wordpress.com/1730/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikspatel.wordpress.com/1730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikspatel.wordpress.com/1730/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikspatel.wordpress.com/1730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikspatel.wordpress.com/1730/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikspatel.wordpress.com/1730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikspatel.wordpress.com/1730/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikspatel.wordpress.com/1730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikspatel.wordpress.com/1730/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikspatel.wordpress.com/1730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikspatel.wordpress.com/1730/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikspatel.wordpress.com/1730/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikspatel.wordpress.com/1730/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1730&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikspatel.wordpress.com/2012/04/09/office-365-and-sharepoint-online-guide-and-resources-for-sharepoint-on-premise-architects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/efcfc6292651ed012fb002db664cdc9d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">nikspatel</media:title>
		</media:content>
	</item>
		<item>
		<title>Nik&#8217;s Office 365 and SharePoint Online Resources</title>
		<link>http://nikspatel.wordpress.com/2012/04/09/niks-office-365-and-sharepoint-online-resources/</link>
		<comments>http://nikspatel.wordpress.com/2012/04/09/niks-office-365-and-sharepoint-online-resources/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 00:39:11 +0000</pubDate>
		<dc:creator>nikspatel</dc:creator>
				<category><![CDATA[Office 365]]></category>

		<guid isPermaLink="false">http://nikspatel.wordpress.com/?p=1734</guid>
		<description><![CDATA[Welcome to my online resources for Office 365 and SharePoint Online. As I come across more resources and great online articles, I am planning to maintain this list over the time. Please bookmark this article and hopefully it would provide one stop for all Office 365 resources for SharePoint Architects. Plans &#38; Pricing Office 365 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1734&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Welcome to my online resources for Office 365 and SharePoint Online.</p>
<p>As I come across more resources and great online articles, I am planning to maintain this list over the time. Please bookmark this article and hopefully it would provide one stop for all Office 365 resources for SharePoint Architects.</p>
<p>Plans &amp; Pricing</p>
<ul>
<li>Office 365 Home -  <a href="http://www.microsoft.com/en-us/office365">http://www.microsoft.com/en-us/office365</a></li>
<li>SharePoint Online Plans &#8211; <a href="http://www.microsoft.com/en-us/office365/sharepoint-online.aspx#fbid=S-Zm_I32oBi">http://www.microsoft.com/en-us/office365/sharepoint-online.aspx#fbid=S-Zm_I32oBi</a></li>
<li>Office 365 Plans &#8211; <a href="http://www.microsoft.com/en-us/office365/all-plans.aspx#fbid=S-Zm_I32oBi">http://www.microsoft.com/en-us/office365/all-plans.aspx#fbid=S-Zm_I32oBi</a></li>
<li>SharePoint Online Plans Compared to Office 365 &#8211; <a href="http://g.microsoftonline.com/0BXPS00EN/1182">http://g.microsoftonline.com/0BXPS00EN/1182</a></li>
<li>Office 365 Deployment Readiness Tool &#8211; <a href="http://community.office365.com/en-us/f/183/p/2285/8155.aspx">http://community.office365.com/en-us/f/183/p/2285/8155.aspx</a></li>
</ul>
<p>Microsoft Resources</p>
<ul>
<li>MSDN SharePoint Online Developer Resource Center &#8211; <a href="http://msdn.microsoft.com/en-us/sharepoint/gg153540.aspx">http://msdn.microsoft.com/en-us/sharepoint/gg153540.aspx </a></li>
<li>TechNet SharePoint Online Administration Center &#8211; <a href="http://technet.microsoft.com/en-us/sharepoint/gg144571.aspx">http://technet.microsoft.com/en-us/sharepoint/gg144571.aspx</a></li>
<li>SharePoint Online End User Resources &#8211; <a href="http://office.microsoft.com/en-us/sharepoint-help/sharepoint-online-for-office-365-for-enterprises-FX102052854.aspx">http://office.microsoft.com/en-us/sharepoint-help/sharepoint-online-for-office-365-for-enterprises-FX102052854.aspx</a></li>
<li>Office 365 TechNet Library &#8211; <a href="http://technet.microsoft.com/en-us/library/hh852576.aspx">http://technet.microsoft.com/en-us/library/hh852576.aspx</a></li>
<li>Office 365 TechNet Library - Deployment Guide for Enterprises &#8211; <a href="http://technet.microsoft.com/en-us/library/hh852466.aspx">http://technet.microsoft.com/en-us/library/hh852466.aspx</a></li>
<li>Office 365 Developer Training Course &#8211; <a href="http://msdn.microsoft.com/en-us/Office365TrainingCourse">http://msdn.microsoft.com/en-us/Office365TrainingCourse</a></li>
<li>Office 365 ITPro Videos &#8211; <a href="http://technet.microsoft.com/en-us/edge/office-365-jump-start-01-microsoft-office-365-overview-for-it-pros">http://technet.microsoft.com/en-us/edge/office-365-jump-start-01-microsoft-office-365-overview-for-it-pros</a></li>
<li>Power User &#8211; SharePoint Online for enterprises Help and How-to &#8211; <a href="http://office.microsoft.com/en-us/sharepoint-online-enterprise-help/?CTT=97">http://office.microsoft.com/en-us/sharepoint-online-enterprise-help/?CTT=97</a></li>
</ul>
<p>Office 365 Updates &amp; Office 365 Community</p>
<ul>
<li>Office 365 Community &#8211; <a href="http://community.office365.com/en-us/default.aspx">http://community.office365.com/en-us/default.aspx</a></li>
<li>Office 365 &#8211; SharePoint Online blogs &#8211; <a href="http://community.office365.com/en-us/b/office_365_technical_blog/archive/tags/SharePoint+Online/default.aspx">http://community.office365.com/en-us/b/office_365_technical_blog/archive/tags/SharePoint+Online/default.aspx</a></li>
<li>Office 365 Technical Blog &#8211; <a href="http://community.office365.com/en-us/b/office_365_technical_blog/default.aspx">http://community.office365.com/en-us/b/office_365_technical_blog/default.aspx</a></li>
<li>Office 365 Service Updates &#8211; <a href="http://community.office365.com/en-us/w/office_365_service_updates/974.aspx">http://community.office365.com/en-us/w/office_365_service_updates/974.aspx</a></li>
<li>Feb 2012 &#8211; SPO Update &#8211; <a href="http://community.office365.com/en-us/b/office_365_technical_blog/archive/2012/02/21/sharepoint-online-service-update.aspx">http://community.office365.com/en-us/b/office_365_technical_blog/archive/2012/02/21/sharepoint-online-service-update.aspx</a></li>
</ul>
<p>Microsoft Downloads</p>
<ul>
<li>Office 365 Downloads &#8211; <a href="http://www.microsoft.com/download/en/office-365.aspx?q=office+365">http://www.microsoft.com/download/en/office-365.aspx?q=office+365</a></li>
<li>Office 365 for Enterprise Service Descriptions &#8211; <a href="http://www.microsoft.com/download/en/details.aspx?id=13602">http://www.microsoft.com/download/en/details.aspx?id=13602</a></li>
<li>Office 365 for Dedicated Subscription Plans &#8211; <a href="http://www.microsoft.com/download/en/details.aspx?id=18128">http://www.microsoft.com/download/en/details.aspx?id=18128 </a></li>
<li>Office 365 Deployment Guide for Enterprises &#8211; <a href="http://www.microsoft.com/download/en/details.aspx?id=26509">http://www.microsoft.com/download/en/details.aspx?id=26509</a></li>
<li>SharePoint Online for Office 365: Developer Guide &#8211; <a href="http://www.microsoft.com/download/en/details.aspx?id=17069">http://www.microsoft.com/download/en/details.aspx?id=17069</a></li>
<li>Hybrid SharePoint Environments with Office 365 &#8211; <a href="http://www.microsoft.com/download/en/details.aspx?id=27580">http://www.microsoft.com/download/en/details.aspx?id=27580</a></li>
<li>Security in Office 365 White Paper &#8211; <a href="http://www.microsoft.com/download/en/details.aspx?id=26552">http://www.microsoft.com/download/en/details.aspx?id=26552</a></li>
<li>Office 365 Single Sign-On with AD FS 2.0 whitepaper &#8211; <a href="http://www.microsoft.com/download/en/details.aspx?id=28971">http://www.microsoft.com/download/en/details.aspx?id=28971</a></li>
<li>Office 365 Developer Training Kit &#8211; June 2011 Update &#8211; <a href="http://www.microsoft.com/download/en/details.aspx?id=14889">http://www.microsoft.com/download/en/details.aspx?id=14889</a></li>
</ul>
<p>Great Articles</p>
<ul>
<li>SharePoint Online planning guide for Office 365 for enterprises &#8211; <a href="http://office.microsoft.com/en-us/sharepoint-online-enterprise-help/sharepoint-online-planning-guide-for-office-365-for-enterprises-HA101988931.aspx">http://office.microsoft.com/en-us/sharepoint-online-enterprise-help/sharepoint-online-planning-guide-for-office-365-for-enterprises-HA101988931.aspx</a></li>
<li>SharePoint Online: software boundaries and limits &#8211; <a href="http://office.microsoft.com/en-us/sharepoint-online-enterprise-help/sharepoint-online-software-boundaries-and-limits-HA102694293.aspx">http://office.microsoft.com/en-us/sharepoint-online-enterprise-help/sharepoint-online-software-boundaries-and-limits-HA102694293.aspx</a></li>
<li>Introduction to Business Connectivity Services in SharePoint Online &#8211; <a href="http://msdn.microsoft.com/en-us/library/hh412217.aspx">http://msdn.microsoft.com/en-us/library/hh412217.aspx</a></li>
<li>SharePoint Online: An Overview for Developers &#8211; <a href="http://msdn.microsoft.com/en-us/library/gg317460.aspx">http://msdn.microsoft.com/en-us/library/gg317460.aspx</a></li>
<li>Customizing SharePoint Online Using SharePoint Designer 2010 &#8211; <a href="http://msdn.microsoft.com/en-us/library/gg454744.aspx">http://msdn.microsoft.com/en-us/library/gg454744.aspx</a></li>
<li>Migrating Content Between SharePoint Online Site collections &#8211; <a href="http://blogs.msdn.com/b/microsoft_cloud/archive/2012/03/11/migrating-content-between-sharepoint-online-site-collections.aspx">http://blogs.msdn.com/b/microsoft_cloud/archive/2012/03/11/migrating-content-between-sharepoint-online-site-collections.aspx</a></li>
<li>Fabian&#8217;s Excellent Article Series on BCS &amp; SharePoint Online &#8211; <a href="http://www.sharepointfabian.com/blog/Lists/Posts/Post.aspx?List=a4668dd2%2D4dac%2D4cce%2Dbaf0%2Dddb1ea4f2d5e&amp;ID=214">http://www.sharepointfabian.com/blog/Lists/Posts/Post.aspx?List=a4668dd2%2D4dac%2D4cce%2Dbaf0%2Dddb1ea4f2d5e&amp;ID=214</a></li>
<li>Sharing SharePoint Online Site with External Users &#8211; <a href="http://office.microsoft.com/en-us/sharepoint-online-enterprise-help/share-a-site-with-external-users-HA102476183.aspx">http://office.microsoft.com/en-us/sharepoint-online-enterprise-help/share-a-site-with-external-users-HA102476183.aspx</a></li>
</ul>
<br />Filed under: <a href='http://nikspatel.wordpress.com/category/office-365/'>Office 365</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikspatel.wordpress.com/1734/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikspatel.wordpress.com/1734/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikspatel.wordpress.com/1734/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikspatel.wordpress.com/1734/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikspatel.wordpress.com/1734/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikspatel.wordpress.com/1734/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikspatel.wordpress.com/1734/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikspatel.wordpress.com/1734/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikspatel.wordpress.com/1734/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikspatel.wordpress.com/1734/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikspatel.wordpress.com/1734/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikspatel.wordpress.com/1734/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikspatel.wordpress.com/1734/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikspatel.wordpress.com/1734/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1734&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikspatel.wordpress.com/2012/04/09/niks-office-365-and-sharepoint-online-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/efcfc6292651ed012fb002db664cdc9d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">nikspatel</media:title>
		</media:content>
	</item>
		<item>
		<title>SharePoint Error while Creating Site Collections or Sites &#8211; Cannot complete this action</title>
		<link>http://nikspatel.wordpress.com/2012/03/13/sharepoint-error-while-creating-site-collections-or-sites-cannot-complete-this-action/</link>
		<comments>http://nikspatel.wordpress.com/2012/03/13/sharepoint-error-while-creating-site-collections-or-sites-cannot-complete-this-action/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 21:48:06 +0000</pubDate>
		<dc:creator>nikspatel</dc:creator>
				<category><![CDATA[Dev General]]></category>

		<guid isPermaLink="false">http://nikspatel.wordpress.com/?p=1705</guid>
		<description><![CDATA[Yesterday I came across weird error while provisioning sites programmatically from the WCF service &#8211; Cannot complete this action. The reason why this error was weird because I was able to execute exact same code from console application to provision site collection by running code block as an user in farm administration group. Since my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1705&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday I came across weird error while provisioning sites programmatically from the WCF service &#8211; <strong>Cannot complete this action</strong>. The reason why this error was weird because I was able to execute exact same code from console application to provision site collection by running code block as an user in farm administration group. Since my WCF service was running under farm admin account, I was running exactly same code using exact same identity.</p>
<p>In theory, this code should work but it seems like SharePoint doesn&#8217;t work same for WCF and Console Application.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/1-cannot-complete-this-action.gif"><img title="1-Cannot Complete this action" src="http://nikspatel.files.wordpress.com/2012/03/1-cannot-complete-this-action.gif?w=734&#038;h=501" alt="" width="734" height="501" /></a></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/2-cannot-complete-this-action.gif"><img title="2-Cannot Complete this action" src="http://nikspatel.files.wordpress.com/2012/03/2-cannot-complete-this-action.gif?w=1024&#038;h=323" alt="" width="1024" height="323" /></a></p>
<p>After spending couple of hours troubleshooting usual service accounts settings, WCF services configuration, security permissions checks, and Google search, finally I stumbled upon MSDN Blog and KB article written in 2005 for WSS 2.o SP2.</p>
<ul>
<li><a href="http://blogs.msdn.com/b/mpoulson/archive/2005/12/02/499504.aspx">http://blogs.msdn.com/b/mpoulson/archive/2005/12/02/499504.aspx</a></li>
<li><a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;909455">http://support.microsoft.com/default.aspx?scid=kb;EN-US;909455 </a></li>
</ul>
<p>Basically these articles suggests that even though accounts might have enough permission to execute code, explicit impersonation is required to make successful SharePoint actions. Apparently this kind of impersonation requires even at the sites, lists, and document libraries level.</p>
<p>After wrapping up my site collections provisioning code with impersonation, I was able to successfully execute code in the WCF service.</p>
<p><pre class="brush: csharp;">
using System.Security.Principal
....
WindowsImpersonationContext wic = WindowsIdentity.GetCurrent().Impersonate();
//implement OM code here
wic.Undo();
</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/3-impersonation-with-current-user.gif"><img title="3-Impersonation with Current User" src="http://nikspatel.files.wordpress.com/2012/03/3-impersonation-with-current-user.gif?w=596&#038;h=410" alt="" width="596" height="410" /></a></p>
<p>I was really surprised that ages old articles helped me to resolve SharePoint 2010 programmatic issues without much explanation by KB article. Since farm account has sufficient rights to perform farm level operations, it simply doesn&#8217;t make sense to explicitly impersonate with farm account again in code. I am still trying to figure out what exactly required impersonation, what exactly enhanced security in framework means, and why farm account explicit impersonation required even though WCF service was running under same account which has full privileges to perform farm level actions. My search for correct explanation continues.</p>
<p>Hope this really helps someone. It took me while to figure it out and stumble upon correct solution or I should rather say, peculiar situation. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br />Filed under: <a href='http://nikspatel.wordpress.com/category/sharepoint-2010/development/dev-general/'>Dev General</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikspatel.wordpress.com/1705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikspatel.wordpress.com/1705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikspatel.wordpress.com/1705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikspatel.wordpress.com/1705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikspatel.wordpress.com/1705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikspatel.wordpress.com/1705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikspatel.wordpress.com/1705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikspatel.wordpress.com/1705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikspatel.wordpress.com/1705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikspatel.wordpress.com/1705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikspatel.wordpress.com/1705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikspatel.wordpress.com/1705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikspatel.wordpress.com/1705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikspatel.wordpress.com/1705/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1705&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikspatel.wordpress.com/2012/03/13/sharepoint-error-while-creating-site-collections-or-sites-cannot-complete-this-action/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/efcfc6292651ed012fb002db664cdc9d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">nikspatel</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/1-cannot-complete-this-action.gif" medium="image">
			<media:title type="html">1-Cannot Complete this action</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/2-cannot-complete-this-action.gif" medium="image">
			<media:title type="html">2-Cannot Complete this action</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/3-impersonation-with-current-user.gif" medium="image">
			<media:title type="html">3-Impersonation with Current User</media:title>
		</media:content>
	</item>
		<item>
		<title>Checklist for Designing and Implementing SharePoint 2010 Extranets &#8211; High Level Items to Consider</title>
		<link>http://nikspatel.wordpress.com/2012/03/11/checklist-for-designing-and-implementing-sharepoint-2010-extranets-things-to-consider/</link>
		<comments>http://nikspatel.wordpress.com/2012/03/11/checklist-for-designing-and-implementing-sharepoint-2010-extranets-things-to-consider/#comments</comments>
		<pubDate>Sun, 11 Mar 2012 03:04:32 +0000</pubDate>
		<dc:creator>nikspatel</dc:creator>
				<category><![CDATA[Admin General]]></category>

		<guid isPermaLink="false">http://nikspatel.wordpress.com/?p=1677</guid>
		<description><![CDATA[I have been designing SharePoint extranets since MOSS 2007 days and it&#8217;s been amazing to see that even though on surface each extranet projects are approached same way, each and every extranet projects provides different architectural challenges. Recently I have attended Jeremy Thake&#8217;s webinar on what items needs to consider while designing extranet systems &#8211; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1677&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have been designing SharePoint extranets since MOSS 2007 days and it&#8217;s been amazing to see that even though on surface each extranet projects are approached same way, each and every extranet projects provides different architectural challenges. Recently I have attended <a href="http://www.made4the.net/default.aspx" target="_blank">Jeremy Thake&#8217;s </a>webinar on what items needs to consider while designing extranet systems &#8211; <a href="http://www.slideshare.net/jthake/how-to-create-a-secure-efficient-extranet-user-experience" target="_blank">Governing your Extranet for a better user experience</a> and I was surprised to learn many new facet of SharePoint 2010 extranet design.</p>
<p>His webinar motivated to write detailed article on my experience and high level items needs to be considered while designing and implementing SharePoint 2010 extranets. Hopefully this article would provide general checklist &amp; guidelines require to design SharePoint 2010 extranets.</p>
<p><strong>Understand Extranet Type based on Business Requirements &amp; Usage Scenarios</strong></p>
<ul>
<li>Define the User Personas - Employees, Partners, Vendors/Customers</li>
<li>Externally Available Intranets or Collaborative Sites for Employees without requiring logging into VPN or Corporate Network &#8211; Extranets for Remote Employees</li>
<li>Typically extranets are platform shared with external users such as partners, vendors, and customers
<ul>
<li>Shared Collaborative environment with Partners or Customers &#8211; External facing Team Sites (e.g. Customer Portal, Partner Portal)</li>
</ul>
<ul>
<li>Internet facing read only documents, wiki sites, or shared collaboration environment &#8211; Publishing Feature (e.g. Marketing Sites, School Portal, Blogs &amp; Discussion Forums)</li>
</ul>
</li>
</ul>
<p><strong>Typical Extranet Project/Implementation Team</strong></p>
<ul>
<li>Part-time involvement from IT Teams &#8211; Infrastructure Team, Security Team, Network Team</li>
<li>Ideal Full-time Project Team &#8211; Product Owner, Business Analyst/Project Manager, SharePoint Architect, SharePoint Administrator, More than 1 SharePoint Developer, SharePoint Quality Assurance, User Experience Architect</li>
</ul>
<p><strong>Infrastructure Considerations</strong></p>
<ul>
<li>Core SharePoint Infrastructure &amp; Network Topology &#8211; UAG, Firewalls, DMZ, Servers, Network, DNS, Databases, SAN</li>
<li>Extranet Network Topology
<ul>
<li>Typically decides where would be SharePoint Servers located &#8211; In corporate network or DMZ</li>
</ul>
<ul>
<li>Typically decides high level SharePoint Server Topology and SharePoint Architecture</li>
</ul>
<ul>
<li>Topologies to Consider &#8211; Edge Firewall Topology, Back-to-Back Firewall Topology, or Split Back-to-Back Firewall Topology &#8211; e.g. Configure UAG in DMG to protect extranet farm hosted in corporate farm using Edge Firewall Topology</li>
</ul>
</li>
<li>Server and Farm Topology
<ul>
<li>Single Farm vs. Multiple Farms
<ul>
<li>Do you really require separate farm? &#8211; Impact on licensing, hardware, security, physical data separation etc.</li>
<li>Options are Single farm with same sites serving both intranet and extranet (e.g. Same Web Application serving both intranet/extranet in Single Farm), different sites for intranet or extranet environment (e.g. Multiple Web Applications in serving both intranet/extranet in Single Farm), or Multiple farms for physical separation (e.g. Multiple Web Applications serving intranet and extranet in different Farm)</li>
</ul>
</li>
<li>SharePoint Farm Architecture &#8211; Web Front Ends, App Servers, DB Servers
<ul>
<li>Hardware vs. Software Load Balancer for Web Front Ends</li>
<li>Install SSL certificate on SharePoint web application</li>
</ul>
</li>
<li>Cross-Farm Infrastructure for Multiple Farms
<ul>
<li>Shared SharePoint Services &#8211; User Profiles Service, Search Service, Managed Metadata Service etc.</li>
</ul>
</li>
<li>Virtualization, High Availability,  Backup-Restore Approach, and Disaster Recovery</li>
<li>Global Availability and Latency &#8211; WAN Acceleration with Central Farm vs. Global Farms in Multiple Locations with Data/Documents Replications</li>
</ul>
</li>
</ul>
<p><strong>Security and Identity Management Considerations</strong></p>
<ul>
<li>Identity Management System
<ul>
<li>Internal and External Accounts should be in separate identity management system.</li>
<li>Understand Types of Users
<ul>
<li>Internal Users &#8211; in most cases, it&#8217;s AD</li>
<li>Extranet System Managed Users &#8211; AD, ADLDS, SQL, LADAP</li>
<li>Extranet System Federated Users &#8211; ADFS</li>
<li>Extranet System Open ID or Social System Users &#8211; Live ID, Google, Facebook, Twitter, LinkedIn etc.</li>
</ul>
</li>
<li>Sample Configurations
<ul>
<li>Single AD with Same OU or Multiple OU for both Internal and External Accounts &#8211; Windows Authentication is sufficient</li>
<li>Multiple AD with Two-way Trust for both internal and External Accounts &#8211; Windows Authentication is sufficient</li>
<li>Multiple AD with Single-way Trust for both internal and External Accounts  &#8211; Requires Claims &amp; LDAP FBA</li>
<li>AD for Internal Users and ADLDS FBA for external Accounts  -  Requires Claims based authentication</li>
<li>AD for Internal Users and SQL/ASP.NET FBA for external Accounts  &#8211; Requires Claims based authentication</li>
<li>AD for Internal Users and ADFS (Web based SSO federation) for external Accounts &#8211; Requires Claims based authentication</li>
<li>AD for Internal Users and Windows Live ID for external Accounts &#8211; Requires Claims based authentication</li>
</ul>
</li>
</ul>
</li>
<li>Authentication &#8211; Account/Identity Management
<ul>
<li>It is important to note that SharePoint doesn&#8217;t perform Authentication</li>
</ul>
<ul>
<li>Decide whether to use Classic (Windows &#8211; NTLM or Kerberos with Internal AD) or Claims (LDAP/SQL/FBA/ADFS/ADLDS etc.) based Authentication.</li>
</ul>
<ul>
<li>It is important to note that regardless of what Authentication Source or Authentication Type is, SharePoint treats all users as SPUser object. SPUser object would contain user token based on authentication type or authentication source.</li>
</ul>
<ul>
<li>Does Kerberos need to be  enabled to pass credentials to the internal systems? Claims are built to avoid Kerberos delegation to pass Claims without concerns of multiple-hops.</li>
</ul>
</li>
<li>Login Experience
<ul>
<li>Classics Authentication &#8211; Mixed-Mode Authentication - MOSS 2007 way
<ul>
<li>When to use? Different protocols like HTTP or HTTPS for internal vs. external users, separate environments or URLs for internal and external users, Single Sign on for internal users in corporate network</li>
</ul>
</li>
</ul>
<ul>
<li>Claims Authentication &#8211; Multi-Mode Authentication &#8211; New in SharePoint 2010, Provides option to Choose Authentication Type before Login Prompt
<ul>
<li>When to use? Single URL for both internal &amp; external users (There is exception &#8211; if both internal &amp; external users are in same AD or multiple AD with two-way trust with windows authentication can have single URL), Must be used for Live ID, Must be used to federate between two organizations,</li>
</ul>
</li>
</ul>
<ul>
<li>Custom Login Page
<ul>
<li>Most customer facing application requires custom branded login page. Requires custom development for branded login page. Out of box login options may not be sufficient for externally facing portals.</li>
<li>Optionally use Third-Party SharePoint Protection &amp; Reverse-Proxy lookup Tools like UAG as long as these tools supports authenticate logic for all configured identity management systems.</li>
</ul>
</li>
</ul>
</li>
<li>Authorization &#8211; Site Membership
<ul>
<li>Unlike Authentication, SharePoint performs Authorization by assigning SPUser object to SharePoint Security Groups</li>
<li>Two Kind of Authorizations driven by Site Taxonomy
<ul>
<li>Shared Sites/Pages like Yahoo and Dedicated Sites for customers</li>
<li>Driven by Customer SLA &amp; Sites Hierarchy &#8211; Separate/Dedicated Site Collection for each Customer Site or Single/Shared Site Collection for Multiple Customers</li>
</ul>
</li>
<li>Protecting Content
<ul>
<li>Driven by User Personas, User Types, and Site Hierarchy</li>
<li>Site Level Permissions Inheritance &#8211; Inherit Security or Break Security</li>
<li>Site Security Groups -Use Out of box Security Groups or Create New Security Groups based on Out of box Permissions</li>
</ul>
</li>
<li>Site Membership
<ul>
<li>Consider Automated Security Group and Site Membership Provisioning and Cleanup Process</li>
<li>Either Assign Users or Groups to the SharePoint Security Groups
<ul>
<li>Assign AD or ADLDS Groups to the SharePoint Site Security Groups, AD Groups are recommended for account maintenance if users are in AD. Map these AD groups to SharePoint Security Group for ease of Site Membership management</li>
<li>Assign individual users to the SharePoint Site Security Groups &#8211; This may require for ADFS</li>
</ul>
</li>
<li>Define process to delegate site membership, Make business users/site owners to manage site membership</li>
<li>If external users or customers are managing site membership, Use People Picker filtering mechanism to restrict external users visibility in internal directories. Use stsadm -Peoplepicker-searchadcustomquery for AD. Implement custom filtering in Find methods of FBA/ASP.NET Membership Providers</li>
</ul>
</li>
</ul>
</li>
<li>User Life Cycle Process
<ul>
<li>In most cases, extranet environments are controlled environment which doesn&#8217;t require user registration process. User registration typically requires for public facing internet sites.</li>
<li>Needs to define process for User Provisioning &amp; Decommissioning
<ul>
<li>Define business process to request provisioning new users &#8211; both in bulk &amp; individual</li>
<li>Define needs for Shared User Accounts or Dedicated User Account</li>
<li>Consider Auto User Provisioning Process  and Decommissioning Process</li>
</ul>
</li>
<li>Self-Service User Management &#8211; Needs to define self-service or IT managed User management process - how user would reset their passwords, how users would request access to the sites, how users would be given access to the sites etc.</li>
<li>User Monitoring &amp; Auditing &#8211; It&#8217;s a process challenge, external users not sneaking in from back door &#8211; Proper User Validation, Expiration, and De-Provisioning  (e.g. Verify users once a 3 months), Either build custom tools or use third-party ISV products for Identity Management</li>
</ul>
</li>
</ul>
<p><strong>Information Architecture Considerations</strong></p>
<ul>
<li>Logical Architecture, Site Hierarchy, Site Taxonomy
<ul>
<li>Web Application, DNS, Host Header, and Application Pool
<ul>
<li>Single or Multiple  SharePoint Web Apps</li>
<li>When would you require Single SharePoint Application? &#8211; Single URL</li>
<li>When would you require Separate SharePoint Application? &#8211; different URLs or Authentication Settings</li>
</ul>
</li>
<li>Site Collection vs. Sites &#8211; Extranet Sites Hierarchy and Number of Sites based on Taxonomy
<ul>
<li>In most cases, SLAs, Security Isolation &amp; Data Protection drives this design. Use Site Collection if Security is boundary and users will have full control. If dedicated content database is important, use site collection as well.</li>
<li>Use Sites for Shared Access scenario where multiple customers will have read-only access to the content or contribute access to shared data. As long as customers can&#8217;t manage security, you are OK having this model.</li>
<li>Plan to use dedicated Site Collection for customer/partner centric portals. You can use SharePoint Multi-Tenancy framework as well for host named site collections. This is how Office 365 or Hosted/Cloud environments work.</li>
</ul>
</li>
<li>Single Site to serve All Customers or Dedicated Sites for Each Customer
<ul>
<li>Review business requirements to see if there are needs for dedicated collaborative environments like document libraries, calendars, contacts, SharePoint lists etc. This will require Multiple Site Hierarchy.</li>
<li>If business requirements drive design for personalized web parts, data views, dashboards driven by user identity, it may require Single Site or Few Sites based on site types.</li>
</ul>
</li>
</ul>
</li>
<li>Navigation &#8211; Cross Site  Navigation and Cross Site-Collection Navigation</li>
<li>Site Life Cycle Management
<ul>
<li>Needs to define process for  New Site Provisioning and Site Decommissioning
<ul>
<li>How does site would be provisioned? IT managed; User Managed through IT defined workflow, User Managed through browser based site templates etc.</li>
<li>Define business process to request provisioning new sites &#8211; both in bulk &amp; individual
<ul>
<li>Site Decommissioning Process &#8211; Consider archiving site, instead of deleting it</li>
</ul>
<ul>
<li>Consider Auto Site Provisioning and Decommissioning Process</li>
</ul>
</li>
</ul>
</li>
<li>Needs to define process of extending or maintaining existing sites with new features</li>
<li>Site Auditing &#8211; Build tools to audit site provisioning, site membership, site maintenance, and  site decommissioning</li>
<li>Multiple ways to define site templates in SharePoint &#8211; Site Definitions,  Feature Stapling, Web Templates, Coded Site Templates based on blank site templates and activating/maintaining features programmatically
<ul>
<li>One way to speed up initial site design &#8211; Use out of box site templates (e.g. team site or blank site) with browser based customizations to speed up initial site template design working with business owners, Save site as template, and import saved site template wsps into Visual Studio to create base Site Template. This process would work only for non-publishing sites. Publishing feature disables save as site template.</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>Content &#8211; Site and Page Contents Considerations</strong></p>
<ul>
<li>Page Design &#8211; Page Templates &#8211; Content Pages
<ul>
<li>Site Pages vs. Application Pages vs. Page Layouts
<ul>
<li>Site Pages &#8211; If users are expected to add/remove web parts, personalize page, or requires web parts</li>
<li>Application Pages &#8211; Administrative Pages</li>
<li>Page Layouts &#8211; If users are expected to manage contents on page or users are expected to create pages based on pre-defined formats.</li>
</ul>
</li>
<li>For the publishing driven sites, needs to define content approval process, content authoring process, and content deployment strategies</li>
</ul>
</li>
<li>Collaborative Content
<ul>
<li>Collaboration with Customers &#8211; Document Libraries, Annoucements, Calendar, Contacts, Team Sites</li>
<li>Rich Media &#8211; Audios and Videos, should define Digital Asset Management strategies</li>
</ul>
</li>
<li>Rollup Views
<ul>
<li>Content Query Web Part &#8211; within site collection</li>
</ul>
<ul>
<li>Lightning Conductor Third-party web parts &#8211; cross site collection</li>
<li>Custom Search Based API - cross site collection</li>
</ul>
</li>
<li>Data &#8211; Integration with other systems within organization
<ul>
<li>Define systems to integrate &#8211; SAP, CRM, Lotus Notes, Other SharePoint Farms (e.g. IT Intranet, Document Warehouses), and Third Party Systems</li>
<li>Each System would provide its own challenge to access data from SharePoint, May require developing custom web services interface or BCS for platform Integration</li>
<li>Does external users requires data interactivity &#8211; Reporting, KPIs, Scorecards, Dashboards etc.? Do external user’s credentials pass through to the Business intelligence systems? &#8211; This may require SSRS, Excel Services, Performance Point Services, Visio Services, BCS or other mechanisms with Kerberos or Claims enabled authentication</li>
<li>Data Security &#8211; Define process to expose internal data securely to the customers
<ul>
<li>Would customer credentials  pass through to the internal systems? &#8211; this would require Kerberos enabled on the SharePoint</li>
<li>Access Internal Systems based on User/Site Metadata/Personalization and Service Accounts instead of passing user credentials to the data source systems, requires proper metadata governance, metatada mapping, and metadata sync process</li>
</ul>
</li>
</ul>
</li>
<li>Search
<ul>
<li>Decide to use Fast Search vs. Enterprise Search capability vs. Custom Search Driven Components</li>
</ul>
<ul>
<li>Searching data from multiple internal systems may require BCS/LOB connectivity for platform integration with metadata targeted custom search API</li>
</ul>
<ul>
<li>Allows you to target information to customer by external user expertise and based on user profiles</li>
</ul>
</li>
</ul>
<p><strong>Other Major Considerations</strong></p>
<ul>
<li>User Personalization and Preferences
<ul>
<li>Define User Personalization Data Store &#8211; SharePoint User Profiles vs. SQL Server Users DB vs. Custom Tools</li>
</ul>
<ul>
<li>Use User Metadata to target specific contents and implement personalization</li>
</ul>
<ul>
<li>May require tools to Sync User Metadata with Source Systems</li>
</ul>
<ul>
<li>May require tools to manage User Maintained Metadata and Preferences</li>
</ul>
</li>
<li>Metadata
<ul>
<li>Application Metadata &#8211; Store in web.config, web application configuration store etc.</li>
<li>Site Metadata &#8211; Store in SharePoint site property bag properties</li>
</ul>
<ul>
<li>User Metadata &#8211; Store in User Profiles, SQL Servers, and AD/ADLDS properties etc.</li>
</ul>
</li>
<li>Licensing
<ul>
<li>Work with your Microsoft reps for licencing impact, Each organization would affect different way</li>
<li>Per User CAL &#8211; Internal vs. External Facing</li>
</ul>
</li>
<li>Social Integration
<ul>
<li>Any Social Integration &#8211; Twitter, Facebook, LinkedIn, Google+ etc.</li>
</ul>
</li>
<li>Mobility Access
<ul>
<li>Target Platform &#8211; Blackberry, IPhone, Android, Windows Mobile</li>
</ul>
<ul>
<li>Any support for Mobile Device Access, HTML 5, MAC OS, iOS for cross-platforms and cross-device support.</li>
</ul>
<ul>
<li>Plant to integrate open standards like Jquery, Avoid Plugins like Adobe Flash or Silverlight for UI which not supported on iOS as of now</li>
</ul>
</li>
<li>Cross-Browser Support
<ul>
<li>Define Browser Support Standards for IE, Chrome, Firefox &#8211; Checkout SharePoint 2010 Level 1 and Level 2 browser support and see if any custom tools needs to incorporated</li>
<li>Do you really need to use Silverlight or Adobe Flash? May be HTML 5, CSS 3 for industry standards</li>
<li>Target Standard Screen Resolution &#8211; 1024&#215;768 vs. 1280&#215;1024</li>
</ul>
</li>
<li>Look and Feel &#8211; Branding
<ul>
<li>Custom Master Pages, CSS, Images, JavaScript, jQuery files etc.</li>
</ul>
<ul>
<li>UX Experience &#8211; AJAX vs. Jquery vs. Silverlight vs. HTML5 vs. JavaScript</li>
</ul>
<ul>
<li>Concept Design to Wireframes &#8211; Design Wireframes for pages, sub sites, and content pages</li>
</ul>
<ul>
<li>Style Guide &#8211; Microsoft Metro look &amp; feel vs. Corporate Style Guide</li>
</ul>
</li>
<li>Custom Development - Methodology and Environments
<ul>
<li>Build out Multiple Environments &#8211; Individual Developer VMs, Integration, Staging, Authoring, Production</li>
<li>Implement Coding Guidelines and Adhere Standards</li>
</ul>
<ul>
<li>Plan to standardize Code Organization in Visual Studio &#8211; Many Codeplex tools available to enable RAD</li>
<li>Plan to Use Source Code Control Management like TFS</li>
</ul>
<ul>
<li>Plan to perform Unit Testing, Automated Build Management, and Continuous Integration for Proper Release Management.</li>
</ul>
<ul>
<li>Plan to standardize Code Deployment using PowerShell Scripts vs. Manual PS Commands &#8211; Packaging using Features &amp; Solutions Framework</li>
</ul>
</li>
<li>Production Diagnosis &#8211; Logging and Auditing
<ul>
<li>Review out of box diagnostics and logging options &#8211; ULS, Event Logs, Developer Dashboards</li>
</ul>
<ul>
<li>Plan to build IT Support and Monitoring Framework &#8211; Error Handling, Logging</li>
</ul>
</li>
<li>Performance
<ul>
<li>Caching &#8211; ASP.NET Caching vs. Page Output Caching vs. Custom Caching Components</li>
</ul>
<ul>
<li>Browser Optimizations &#8211; CSS Optimizations</li>
</ul>
<ul>
<li>Plan to perform Load Testing</li>
</ul>
</li>
<li>Anti-Virus
<ul>
<li>Plan to use SharePoint specific Anti-Virus product to scan external user uploaded documents.</li>
<li>Consider blocking Infected Documents</li>
</ul>
</li>
<li>Localization &#8211; Global Platform
<ul>
<li>Decide to use Different UI experience for different regions or  Consistent UI experience at all regions</li>
</ul>
<ul>
<li>Multi- Lingual Sites vs. MUI vs. Both vs. ASP.NET Custom Globalization Resource Files
<ul>
<li>Variations and Content Translation Tools</li>
<li>Sites in specific language and currency</li>
</ul>
</li>
</ul>
</li>
<li>Web Analytics
<ul>
<li> SharePoint Out of box Web Analytics or Custom ISV tools</li>
</ul>
<ul>
<li>SharePoint Web Analytics not useful &#8211; Per Site Collection or Per Site, Instead Integrate with Web Trend or Google Analytics or ISV tools</li>
</ul>
</li>
<li>End-User Training and Adoption
<ul>
<li>Plan to have proper documentation, online help, and system adoption plans</li>
<li>Plan to have proper communication and notifications for updates or new features rollout</li>
<li>Plan to have initial Pilot program, product roadshow, or adoption programs</li>
</ul>
</li>
<li>IT Support and Monitoring
<ul>
<li>Plan to have feedback forums for external users to submit incidents and general system help</li>
</ul>
<ul>
<li>Plan to have dedicated IT support team to respond user incidents in timely manner</li>
</ul>
</li>
</ul>
<br />Filed under: <a href='http://nikspatel.wordpress.com/category/sharepoint-2010/administration/admin-general/'>Admin General</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikspatel.wordpress.com/1677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikspatel.wordpress.com/1677/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikspatel.wordpress.com/1677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikspatel.wordpress.com/1677/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikspatel.wordpress.com/1677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikspatel.wordpress.com/1677/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikspatel.wordpress.com/1677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikspatel.wordpress.com/1677/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikspatel.wordpress.com/1677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikspatel.wordpress.com/1677/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikspatel.wordpress.com/1677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikspatel.wordpress.com/1677/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikspatel.wordpress.com/1677/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikspatel.wordpress.com/1677/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1677&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikspatel.wordpress.com/2012/03/11/checklist-for-designing-and-implementing-sharepoint-2010-extranets-things-to-consider/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/efcfc6292651ed012fb002db664cdc9d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">nikspatel</media:title>
		</media:content>
	</item>
		<item>
		<title>Step by Step – Building and Consuming Custom WCF Services Hosted in IIS using WCF Application Approach</title>
		<link>http://nikspatel.wordpress.com/2012/03/07/step-by-step-building-and-consuming-custom-wcf-services-hosted-in-iis-using-wcf-application-approach/</link>
		<comments>http://nikspatel.wordpress.com/2012/03/07/step-by-step-building-and-consuming-custom-wcf-services-hosted-in-iis-using-wcf-application-approach/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 03:06:49 +0000</pubDate>
		<dc:creator>nikspatel</dc:creator>
				<category><![CDATA[Dev General]]></category>

		<guid isPermaLink="false">http://nikspatel.wordpress.com/?p=1638</guid>
		<description><![CDATA[If you are building WCF Services to extend, consume, or deliver SharePoint data, one of the biggest decisions as a SharePoint Architect you have to make is where you would host WCF Services. As I have shown in one of my previous articles, two most popular approaches are hosting WCF services in SharePoint and IIS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1638&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you are building WCF Services to extend, consume, or deliver SharePoint data, one of the biggest decisions as a SharePoint Architect you have to make is where you would host WCF Services. As I have shown in one of my <a href="http://nikspatel.wordpress.com/2012/02/29/deploying-custom-wcf-service-to-iis-vs-sharepoint/" target="_blank">previous articles</a>, two most popular approaches are hosting WCF services in SharePoint and IIS and it requires high level architectural decisions. There are several different ways you can create IIS hosted WCF Services using several Visual Studio templates like WCF Service Application, WCF Service Library, WCF Service Project Item, or WCF Service Web Site templates. One of the reasons I like WCF Service Application approach is it provides clear separation and methodological approach to organize source code in specific code library and deploy WCF services in separate IIS Inetpub directory to facilitate team based development.</p>
<p>This article will demonstrate creating WCF Services using Visual Studio WCF Service Application template, host WCF services in the IIS by publishing from Visual Studio, and consume WCF services in SharePoint Web parts to display Shared document library data.</p>
<p><strong>Step 1 =&gt; Create WCF Service using Visual Studio as WCF Service Application</strong><br />
Create New Project &#8211; Visual # -&gt; WCF -&gt; WCF Service Application &#8211; Niks.SP2010.IISHostedWCFService</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/1-iis-hosted-wcf-service-project.gif"><img class="alignnone size-full wp-image-1639" title="1-IIS Hosted WCF Service Project" src="http://nikspatel.files.wordpress.com/2012/03/1-iis-hosted-wcf-service-project.gif" alt="" width="955" height="554" /></a></p>
<p>By default, WCF Service Application would add four items &#8211; web.config, service1.svc, service1.svc.cs, and Iservice1.cs. Iservice1 is service interface and service1.svc.cs is service class implementation.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/2-default-wcf-service-project-structure.gif"><img class="alignnone size-full wp-image-1640" title="2-Default WCF Service Project Structure" src="http://nikspatel.files.wordpress.com/2012/03/2-default-wcf-service-project-structure.gif" alt="" width="255" height="129" /></a></p>
<p>Delete default service1.svc and Iservice1.cs. Remove all the service1 references from the web.config file especially service behavior configuration.</p>
<p>Add New WCF Service Project Item by right clicking on Project and Add New Item. From the Add New Item window, select Web and select WCF Service. Specify IISHostedWCFService.svc and Add item to the project.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/3-wcf-project-item.gif"><img class="alignnone size-full wp-image-1645" title="3-WCF Project Item" src="http://nikspatel.files.wordpress.com/2012/03/3-wcf-project-item.gif" alt="" width="955" height="554" /></a></p>
<p>This would add three items &#8211; IISHostedWCFService.svc, IISHostedWCFService.svc.cs, IIISHostedWCFService.cs</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/4-iis-hosted-wcf-project-structure.gif"><img class="alignnone size-full wp-image-1646" title="4-IIS Hosted WCF Project Structure" src="http://nikspatel.files.wordpress.com/2012/03/4-iis-hosted-wcf-project-structure.gif" alt="" width="256" height="129" /></a></p>
<p>Implement business logic in IIISHostedWCFService.cs and IISHostedWCFService.svc.cs. Since this type of service will be hosted in IIS, you need to use Client Side Object Model unless it&#8217;s deployed to the IIS on SharePoint Servers. If IIS hosted service is hosted in IIS on SharePoint box, it can use Server Side Object Model.</p>
<p>Since this WCF service will be hosted on dedicated non-SharePoint IIS web servers, it would use Client Side Object Model to  access SharePoint data from remote machines. You can standardize client object model installation using the client object model redistributable on non-SharePoint Servers. This will install three DLLs on the GAC &#8211; Microsoft.SharePoint.Client, Microsoft.SharePoint.Client.Runtime, and Microsoft.SharePoint.Client.Runtime.Resources DLLs.</p>
<ul>
<li>SP2010 RTM COM Redistributable &#8211; <a href="http://www.microsoft.com/download/en/details.aspx?id=21786">http://www.microsoft.com/download/en/details.aspx?id=21786</a></li>
<li>SP2010 SP 1 COM Redistributable - <a href="http://www.microsoft.com/download/en/details.aspx?id=26624">http://www.microsoft.com/download/en/details.aspx?id=26624</a></li>
</ul>
<p>Reference Client Object Model DLLs in the Project</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/5-rerference-client-dll.gif"><img class="alignnone size-full wp-image-1647" title="5-Rerference Client DLL" src="http://nikspatel.files.wordpress.com/2012/03/5-rerference-client-dll.gif" alt="" width="467" height="383" /></a></p>
<p>Define the Service Contract and Data Contract in IIISHostedWCFService.cs</p>
<p><pre class="brush: csharp;">

[ServiceContract]
public interface IIISHostedWCFService
{
    [OperationContract]
    List&lt;DocumentData&gt; GetLists();
}

[DataContract]
public class DocumentData
{
    [DataMember]
    public int ID { get; set; }
    [DataMember]
    public string Title { get; set; }
}

</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/6-wcf-service-interface.gif"><img class="alignnone size-full wp-image-1648" title="6-WCF Service Interface" src="http://nikspatel.files.wordpress.com/2012/03/6-wcf-service-interface.gif" alt="" width="464" height="464" /></a></p>
<p>Implement the Service Contract – IISHostedWCFService.svc.cs</p>
<p><pre class="brush: csharp;">

public List&lt;DocumentData&gt; GetLists()
{
    List&lt;DocumentData&gt; docData = new List&lt;DocumentData&gt;();
    string siteURL = &quot;&lt;a href=&quot;http://sp2010vm/&quot;&gt;http://sp2010vm&lt;/a&gt;&quot;;
    string documentListName = &quot;Shared Documents&quot;;

    using (ClientContext clientContext = new ClientContext(siteURL))
    {
        NetworkCredential credentials = new NetworkCredential
            (ConfigurationManager.AppSettings[&quot;SvcAccountId&quot;],
            ConfigurationManager.AppSettings[&quot;SvcAccountPassword&quot;],
            ConfigurationManager.AppSettings[&quot;SvcAccountDomain&quot;]);
        clientContext.Credentials = credentials;

        List list = clientContext.Web.Lists.GetByTitle(documentListName);
        var camlQuery = new CamlQuery { ViewXml = &quot;&lt;View/&gt;&quot; };

        ListItemCollection listItems = list.GetItems(camlQuery);
        clientContext.Load(listItems);
        clientContext.ExecuteQuery();

        foreach (ListItem listitem in listItems)
        {
            docData.Add(new DocumentData() { ID = Convert.ToInt32(listitem[&quot;ID&quot;]), Title = listitem[&quot;Title&quot;].ToString() });
        }
        }

    return docData;
}

</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/7-wcf-service-implemetation.gif"><img class="alignnone size-full wp-image-1649" title="7-WCF Service Implemetation" src="http://nikspatel.files.wordpress.com/2012/03/7-wcf-service-implemetation.gif" alt="" width="970" height="553" /></a></p>
<p>Update Your Web.Config as following for WCF service security mode, bindings, service behaviors, and endpoints. Additionally, it enables windows authentication, disables impersonation, and allows all users to access web service.</p>
<p><pre class="brush: xml;">

&lt;configuration&gt;
  &lt;system.serviceModel&gt;
    &lt;bindings&gt;
      &lt;basicHttpBinding&gt;
        &lt;binding name=&quot;BasicHttpEndpointBinding&quot;&gt;
          &lt;security mode=&quot;TransportCredentialOnly&quot;&gt;
            &lt;transport clientCredentialType=&quot;Ntlm&quot;&gt;
              &lt;extendedProtectionPolicy policyEnforcement=&quot;Never&quot; /&gt;
            &lt;/transport&gt;
          &lt;/security&gt;
        &lt;/binding&gt;
      &lt;/basicHttpBinding&gt;
    &lt;/bindings&gt;
    &lt;services&gt;
      &lt;service behaviorConfiguration=&quot;Niks.SP2010.IISHostedWCFService.IISHostedWCFServiceBehavior&quot;
        name=&quot;Niks.SP2010.IISHostedWCFService.IISHostedWCFService&quot;&gt;
        &lt;endpoint address=&quot;basic&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;BasicHttpEndpointBinding&quot; name=&quot;basicBindingConfig&quot;
                  contract=&quot;Niks.SP2010.IISHostedWCFService.IIISHostedWCFService&quot; /&gt;
      &lt;/service&gt;
    &lt;/services&gt;
    &lt;behaviors&gt;
      &lt;serviceBehaviors&gt;
        &lt;behavior name=&quot;Niks.SP2010.IISHostedWCFService.IISHostedWCFServiceBehavior&quot;&gt;
          &lt;serviceMetadata httpGetEnabled=&quot;true&quot; /&gt;
          &lt;serviceDebug includeExceptionDetailInFaults=&quot;true&quot; /&gt;
        &lt;/behavior&gt;
      &lt;/serviceBehaviors&gt;
    &lt;/behaviors&gt;
  &lt;/system.serviceModel&gt;
  &lt;system.web&gt;
    &lt;compilation debug=&quot;true&quot; /&gt;
    &lt;authentication mode=&quot;Windows&quot; /&gt;
    &lt;identity impersonate=&quot;false&quot; /&gt;
  &lt;/system.web&gt;
  &lt;system.webServer&gt;
    &lt;security&gt;
      &lt;authorization&gt;
        &lt;remove users=&quot;*&quot; roles=&quot;&quot; verbs=&quot;&quot; /&gt;
        &lt;add accessType=&quot;Allow&quot; users=&quot;*&quot; /&gt;
      &lt;/authorization&gt;
    &lt;/security&gt;
  &lt;/system.webServer&gt;
&lt;/configuration&gt;

</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/8-wcf-service-web-config-service-model-section.gif"><img class="alignnone size-full wp-image-1650" title="8-WCF Service Web config Service Model Section" src="http://nikspatel.files.wordpress.com/2012/03/8-wcf-service-web-config-service-model-section.gif" alt="" width="1002" height="555" /></a></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/9-wcf-service-web-config-security-and-impersonation-section.gif"><img class="alignnone size-full wp-image-1651" title="9-WCF Service Web config Security and Impersonation Section" src="http://nikspatel.files.wordpress.com/2012/03/9-wcf-service-web-config-security-and-impersonation-section.gif" alt="" width="433" height="323" /></a></p>
<p><strong>Step 2 =&gt; Deploy WCF Service in IIS 7</strong><br />
Once WCF Service logic is implemented, next logical step is to publish the WCF service application to the IIS.</p>
<p>In IIS 7, create new web site -&gt; Site Name &#8211; IISHostedWCFService, ApplicationPool &#8211; IISHostedWCFService, Port-9999, Physical directory &#8211; C:\inetpub\wwwroot\IISHostedWCFService</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/10-iis-web-site.gif"><img class="alignnone size-full wp-image-1652" title="10-IIS Web Site" src="http://nikspatel.files.wordpress.com/2012/03/10-iis-web-site.gif" alt="" width="448" height="440" /></a></p>
<p>In IIS, change the App pool identity to &#8211; Niks\Administrator from default AppPoolIdentity</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/11-iis-application-pool.gif"><img class="alignnone size-full wp-image-1653" title="11-IIS Application Pool" src="http://nikspatel.files.wordpress.com/2012/03/11-iis-application-pool.gif" alt="" width="658" height="382" /></a></p>
<p>In IIS, disable anonymous authentication and enable windows authentication. Allow all users in authorization section.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/12-iis-web-site-authentication.gif"><img class="alignnone size-full wp-image-1654" title="12-IIS Web Site Authentication" src="http://nikspatel.files.wordpress.com/2012/03/12-iis-web-site-authentication.gif" alt="" width="959" height="502" /></a></p>
<p>In VS, Publish WCF Service -&gt; Web Deploy, service URL &#8211; http://localhost:9999, site/app name &#8211; IISHostedWCFService, Mark IIS as destination and Publish, it will copy SVC, BIN directory, and web.config to inetpub physical directory &#8211; IISHostedWCFService. Please note that when you are making changes in IIS authentication or authorization options, it would change web.config in IIS virtual folder, it wouldn&#8217;t change in visual studio web.config. Republishing from Visual Studio, may overwrite web.config in IIS virtual folder.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/14-publish-wcf-from-visual-studio.gif"><img class="alignnone size-full wp-image-1655" title="14-Publish WCF from Visual Studio" src="http://nikspatel.files.wordpress.com/2012/03/14-publish-wcf-from-visual-studio.gif" alt="" width="421" height="577" /></a></p>
<p><strong>Step 3 =&gt; Test the WCF Service</strong><br />
To Test the WCF Service Interface, In IIS web site content view, right click and browse WCF file.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/13-browse-wcf-service.gif"><img class="alignnone size-full wp-image-1656" title="13-Browse WCF Service" src="http://nikspatel.files.wordpress.com/2012/03/13-browse-wcf-service.gif" alt="" width="788" height="384" /></a></p>
<p>If your SharePoint Web Application IIS web site is not enabled for anonymous authentication or claims based authentication, it would ask you for the credential and should take you to the WCF interface &#8211; http://localhost:9999/IISHostedWCFService.svc. Click on the Link &#8211; http://sp2010vm.niks.local:9999/IISHostedWCFService.svc?wsdl to see the service contract information.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/15-wcf-service.gif"><img class="alignnone size-full wp-image-1657" title="15-WCF Service" src="http://nikspatel.files.wordpress.com/2012/03/15-wcf-service.gif" alt="" width="716" height="490" /></a></p>
<p><strong>Step 4 =&gt; Consume the WCF Service from SharePoint</strong><br />
In real world scenarios, you would be consuming WCF services from the non-SharePoint remote applications like CRM, SQL Server SSIS Packages, ASP.NET, Silverlight, or Console Utilities. For the demonstration purpose, I will consume Custom WCF Service from the SharePoint web application. Create new empty SharePoint Project – Niks.SP2010.IISHostedWCFServiceClient</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/16-iis-hosted-wcf-service-client-project.gif"><img class="alignnone size-full wp-image-1658" title="16-IIS Hosted WCF Service Client Project" src="http://nikspatel.files.wordpress.com/2012/03/16-iis-hosted-wcf-service-client-project.gif" alt="" width="955" height="554" /></a></p>
<p>Reference the WCF Service by right clicking project and Add Service Reference. Enter WCF Service Address – http://sp2010vm.niks.local:9999/IISHostedWCFService.svc and Click Go to discover. Add Proper Namespace and click OK to add WCF Service Proxy in Visual Studio.</p>
<p> <a href="http://nikspatel.files.wordpress.com/2012/03/17-adding-service-reference.gif"><img class="alignnone size-full wp-image-1659" title="17-Adding Service Reference" src="http://nikspatel.files.wordpress.com/2012/03/17-adding-service-reference.gif" alt="" width="535" height="436" /></a></p>
<p>Addingt Service reference would add app.config file in the project and WCF binding’s entries for &lt;system.serviceModel&gt;. To Consume WCF Service from SharePoint User Interface, Add Visual Web Part.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/18-wcf-service-client-project-structure.gif"><img title="18-WCF Service Client Project Structure" src="http://nikspatel.files.wordpress.com/2012/03/18-wcf-service-client-project-structure.gif?w=354&#038;h=212" alt="" width="354" height="212" /></a></p>
<p>In Visual Web Part Code, invoke the WCF Service proxy, pass the user credential to the service, and call service method to return list of documents by populating ASP.NET data grid. Following code would invoke service and run WCF Service under user context.</p>
<p><pre class="brush: csharp;">

protected void Page_Load(object sender, EventArgs e)
{
    Niks.SP2010.IISHostedWCFServiceClient.IISHostedWCFService.IISHostedWCFServiceClient client
        = new Niks.SP2010.IISHostedWCFServiceClient.IISHostedWCFService.IISHostedWCFServiceClient();

    Niks.SP2010.IISHostedWCFServiceClient.IISHostedWCFService.DocumentData[] docData = client.GetLists();
    gvDocData.DataSource = docData;
    gvDocData.DataBind();
    client.Close();
}

</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/19-wcf-service-client-web-part-code.gif"><img class="alignnone size-full wp-image-1661" title="19-WCF Service Client Web Part Code" src="http://nikspatel.files.wordpress.com/2012/03/19-wcf-service-client-web-part-code.gif" alt="" width="843" height="413" /></a></p>
<p>Final step to call WCF Service properly during runtime, copy App.Config &lt;System.ServiceModel&gt; section to the SharePoint Web Application. By default, it’s using basicHttpBinding binding &amp; NTLM as authentication method. Please note that WCF Service endpoint is http://sp2010vm.niks.local:9999/IISHostedWCFService.svc.</p>
<p><pre class="brush: xml;">

&lt;configuration&gt;
    &lt;system.serviceModel&gt;
        &lt;bindings&gt;
            &lt;basicHttpBinding&gt;
                &lt;binding name=&quot;basicBindingConfig&quot; closeTimeout=&quot;00:01:00&quot; openTimeout=&quot;00:01:00&quot;
                    receiveTimeout=&quot;00:10:00&quot; sendTimeout=&quot;00:01:00&quot; allowCookies=&quot;false&quot;
                    bypassProxyOnLocal=&quot;false&quot; hostNameComparisonMode=&quot;StrongWildcard&quot;
                    maxBufferSize=&quot;65536&quot; maxBufferPoolSize=&quot;524288&quot; maxReceivedMessageSize=&quot;65536&quot;
                    messageEncoding=&quot;Text&quot; textEncoding=&quot;utf-8&quot; transferMode=&quot;Buffered&quot;
                    useDefaultWebProxy=&quot;true&quot;&gt;
                    &lt;readerQuotas maxDepth=&quot;32&quot; maxStringContentLength=&quot;8192&quot; maxArrayLength=&quot;16384&quot;
                        maxBytesPerRead=&quot;4096&quot; maxNameTableCharCount=&quot;16384&quot; /&gt;
                    &lt;security mode=&quot;TransportCredentialOnly&quot;&gt;
                        &lt;transport clientCredentialType=&quot;Ntlm&quot; proxyCredentialType=&quot;None&quot;
                            realm=&quot;&quot; /&gt;
                        &lt;message clientCredentialType=&quot;UserName&quot; algorithmSuite=&quot;Default&quot; /&gt;
                    &lt;/security&gt;
                &lt;/binding&gt;
            &lt;/basicHttpBinding&gt;
        &lt;/bindings&gt;
        &lt;client&gt;
            &lt;endpoint address=&quot;&lt;a href=&quot;http://sp2010vm.niks.local:9999/IISHostedWCFService.svc/basic&quot;&gt;http://sp2010vm.niks.local:9999/IISHostedWCFService.svc/basic&lt;/a&gt;&quot;
                binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;basicBindingConfig&quot;
                contract=&quot;IISHostedWCFService.IIISHostedWCFService&quot; name=&quot;basicBindingConfig&quot; /&gt;
        &lt;/client&gt;
    &lt;/system.serviceModel&gt;
&lt;/configuration&gt;

</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/20-wcf-service-client-web.gif"><img class="alignnone size-full wp-image-1662" title="20-WCF Service Client Web" src="http://nikspatel.files.wordpress.com/2012/03/20-wcf-service-client-web.gif" alt="" width="784" height="500" /></a></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/21-consuming-web-app-config-settings.gif"><img class="alignnone size-full wp-image-1664" title="21-Consuming Web App Config Settings" src="http://nikspatel.files.wordpress.com/2012/03/21-consuming-web-app-config-settings.gif" alt="" width="1024" height="336" /></a></p>
<p>Once web.config is properly configured, open the SharePoint Web Application and add Custom Web Part on the page. It should display list of all the documents title in Grid View</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/03/22-consuming-web-app-ui1.gif"><img class="alignnone size-full wp-image-1665" title="22-Consuming Web App UI" src="http://nikspatel.files.wordpress.com/2012/03/22-consuming-web-app-ui1.gif" alt="" width="540" height="259" /></a></p>
<p><strong>Additional Resources</strong></p>
<ul>
<li>Deploying an Internet Information Services-Hosted WCF Service &#8211; <a href="http://msdn.microsoft.com/en-us/library/aa751792.aspx">http://msdn.microsoft.com/en-us/library/aa751792.aspx</a></li>
<li>Getting Started Building a WCF Web Service using WCF Service Application with Slightly different approach than mine  &#8211; <a href="http://blogs.msdn.com/b/ericwhite/archive/2010/05/11/getting-started-building-a-wcf-web-service.aspx">http://blogs.msdn.com/b/ericwhite/archive/2010/05/11/getting-started-building-a-wcf-web-service.aspx</a></li>
<li>Hosting WCF Service in IIS using WCF Library Approach &#8211; <a href="http://blogs.msdn.com/b/amitlale/archive/2007/05/21/hosting-wcf-service-in-iis.aspx">http://blogs.msdn.com/b/amitlale/archive/2007/05/21/hosting-wcf-service-in-iis.aspx</a></li>
<li>Hosting a WCF Service in IIS using WCF Service Web Site Approach &#8211; <a href="http://blogs.msdn.com/b/trobbins/archive/2006/11/27/how-to-hosting-a-wcf-service-in-iis.aspx">http://blogs.msdn.com/b/trobbins/archive/2006/11/27/how-to-hosting-a-wcf-service-in-iis.aspx</a></li>
</ul>
<br />Filed under: <a href='http://nikspatel.wordpress.com/category/sharepoint-2010/development/dev-general/'>Dev General</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikspatel.wordpress.com/1638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikspatel.wordpress.com/1638/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikspatel.wordpress.com/1638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikspatel.wordpress.com/1638/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikspatel.wordpress.com/1638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikspatel.wordpress.com/1638/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikspatel.wordpress.com/1638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikspatel.wordpress.com/1638/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikspatel.wordpress.com/1638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikspatel.wordpress.com/1638/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikspatel.wordpress.com/1638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikspatel.wordpress.com/1638/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikspatel.wordpress.com/1638/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikspatel.wordpress.com/1638/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1638&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikspatel.wordpress.com/2012/03/07/step-by-step-building-and-consuming-custom-wcf-services-hosted-in-iis-using-wcf-application-approach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/efcfc6292651ed012fb002db664cdc9d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">nikspatel</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/1-iis-hosted-wcf-service-project.gif" medium="image">
			<media:title type="html">1-IIS Hosted WCF Service Project</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/2-default-wcf-service-project-structure.gif" medium="image">
			<media:title type="html">2-Default WCF Service Project Structure</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/3-wcf-project-item.gif" medium="image">
			<media:title type="html">3-WCF Project Item</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/4-iis-hosted-wcf-project-structure.gif" medium="image">
			<media:title type="html">4-IIS Hosted WCF Project Structure</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/5-rerference-client-dll.gif" medium="image">
			<media:title type="html">5-Rerference Client DLL</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/6-wcf-service-interface.gif" medium="image">
			<media:title type="html">6-WCF Service Interface</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/7-wcf-service-implemetation.gif" medium="image">
			<media:title type="html">7-WCF Service Implemetation</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/8-wcf-service-web-config-service-model-section.gif" medium="image">
			<media:title type="html">8-WCF Service Web config Service Model Section</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/9-wcf-service-web-config-security-and-impersonation-section.gif" medium="image">
			<media:title type="html">9-WCF Service Web config Security and Impersonation Section</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/10-iis-web-site.gif" medium="image">
			<media:title type="html">10-IIS Web Site</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/11-iis-application-pool.gif" medium="image">
			<media:title type="html">11-IIS Application Pool</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/12-iis-web-site-authentication.gif" medium="image">
			<media:title type="html">12-IIS Web Site Authentication</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/14-publish-wcf-from-visual-studio.gif" medium="image">
			<media:title type="html">14-Publish WCF from Visual Studio</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/13-browse-wcf-service.gif" medium="image">
			<media:title type="html">13-Browse WCF Service</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/15-wcf-service.gif" medium="image">
			<media:title type="html">15-WCF Service</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/16-iis-hosted-wcf-service-client-project.gif" medium="image">
			<media:title type="html">16-IIS Hosted WCF Service Client Project</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/17-adding-service-reference.gif" medium="image">
			<media:title type="html">17-Adding Service Reference</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/18-wcf-service-client-project-structure.gif" medium="image">
			<media:title type="html">18-WCF Service Client Project Structure</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/19-wcf-service-client-web-part-code.gif" medium="image">
			<media:title type="html">19-WCF Service Client Web Part Code</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/20-wcf-service-client-web.gif" medium="image">
			<media:title type="html">20-WCF Service Client Web</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/21-consuming-web-app-config-settings.gif" medium="image">
			<media:title type="html">21-Consuming Web App Config Settings</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/03/22-consuming-web-app-ui1.gif" medium="image">
			<media:title type="html">22-Consuming Web App UI</media:title>
		</media:content>
	</item>
		<item>
		<title>Step by Step &#8211; Building and Consuming Custom WCF Services hosted in SharePoint</title>
		<link>http://nikspatel.wordpress.com/2012/02/29/step-by-step-building-custom-wcf-services-hosted-in-sharepoint-part-i/</link>
		<comments>http://nikspatel.wordpress.com/2012/02/29/step-by-step-building-custom-wcf-services-hosted-in-sharepoint-part-i/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 06:11:39 +0000</pubDate>
		<dc:creator>nikspatel</dc:creator>
				<category><![CDATA[Dev General]]></category>

		<guid isPermaLink="false">http://nikspatel.wordpress.com/?p=1556</guid>
		<description><![CDATA[If you are developing enterprise level custom solutions based on SharePoint framework, you would come across scenarios where you have to expose and access SharePoint data from remote applications like CRM, ASP.NET, Silverlight, or other SharePoint applications. SharePoint 2010 Out of box allows multiple ways to interact with SharePoint data from remote applications like Client [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1556&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you are developing enterprise level custom solutions based on SharePoint framework, you would come across scenarios where you have to expose and access SharePoint data from remote applications like CRM, ASP.NET, Silverlight, or other SharePoint applications. SharePoint 2010 Out of box allows multiple ways to interact with SharePoint data from remote applications like Client Object Model, REST based API, ASP.NET SOAP web services etc. As we all come across, these options are not sufficient in real world scenarios and it would require writing custom WCF Services.</p>
<p>As you can read from<a href="http://nikspatel.wordpress.com/2012/02/29/deploying-custom-wcf-service-to-iis-vs-sharepoint/" target="_blank"> earlier article</a>, one of the great things about WCF services are they can be hosted and deployed multiple ways. One of the options are SharePoint 2010 allows custom WCF service hosted in SharePoint Root ISAPI directory. In this article, I will walkthrough step by step process of setting up custom WCF service project as SharePoint Solution, how it can be deployed to the SharePoint 2010, and how it can be consumed from the SharePoint web parts.</p>
<p>The Custom WCF Service built in this article returns list of documents name and title information from the Shared Document Library in the root site collection web site and displays on the SharePoint Site using web parts interface.</p>
<p><strong>Step 1 =&gt; Setup WCF Service Project to host in SharePoint</strong></p>
<p>Create New Empty SharePoint Project &#8211; Niks.SP2010.SPHostedWCFService and Select &#8220;Deploy as a Farm Solution&#8221;. This approach will deploy WCF service in SharePoint Root, ISAPI directory.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/1-create-wcf-service-project1.gif"><img title="1-Create WCF Service Project" src="http://nikspatel.files.wordpress.com/2012/02/1-create-wcf-service-project1.gif?w=955&#038;h=554" alt="" width="955" height="554" /></a></p>
<p>Add WCF Service Project Item by right clicking on Project and Add New Item.</p>
<p>From the Add New Item window, select C# and select WCF Service. Specify SPHostedWCFService.cs and Add item to the project.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/2-add-wcf-service-project-item1.gif"><img class="alignnone size-full wp-image-1586" title="2-Add WCF Service Project Item" src="http://nikspatel.files.wordpress.com/2012/02/2-add-wcf-service-project-item1.gif" alt="" width="955" height="554" /></a></p>
<p>This should add three files in the project &#8211; web.config, ISPHostedWCFService.cs, and SPHostedWCFService.cs. Please note that ISPHostedWCFService is service interface and SPHostedWCFService is class implementation.</p>
<p>App.config should look like this.</p>
<p><pre class="brush: xml;">
&lt;configuration&gt;
    &lt;system.serviceModel&gt;
        &lt;behaviors&gt;
            &lt;serviceBehaviors&gt;
                &lt;behavior name=&quot;Niks.SP2010.SPHostedWCFService.SPHostedWCFServiceBehavior&quot;&gt;
                    &lt;serviceMetadata httpGetEnabled=&quot;true&quot; /&gt;
                    &lt;serviceDebug includeExceptionDetailInFaults=&quot;false&quot; /&gt;
                &lt;/behavior&gt;
            &lt;/serviceBehaviors&gt;
        &lt;/behaviors&gt;
        &lt;services&gt;
            &lt;service behaviorConfiguration=&quot;Niks.SP2010.SPHostedWCFService.SPHostedWCFServiceBehavior&quot;
                name=&quot;Niks.SP2010.SPHostedWCFService.SPHostedWCFService&quot;&gt;
                &lt;endpoint address=&quot;&quot; binding=&quot;wsHttpBinding&quot; contract=&quot;Niks.SP2010.SPHostedWCFService.ISPHostedWCFService&quot;&gt;
                    &lt;identity&gt;
                        &lt;dns value=&quot;localhost&quot; /&gt;
                    &lt;/identity&gt;
                &lt;/endpoint&gt;
                &lt;endpoint address=&quot;mex&quot; binding=&quot;mexHttpBinding&quot; contract=&quot;IMetadataExchange&quot; /&gt;
                &lt;host&gt;
                    &lt;baseAddresses&gt;
                        &lt;add baseAddress=&quot;&lt;a href=&quot;http://localhost:8732/Design_Time_Addresses/Niks.SP2010.SPHostedWCFService/SPHostedWCFService/&quot;&gt;http://localhost:8732/Design_Time_Addresses/Niks.SP2010.SPHostedWCFService/SPHostedWCFService/&lt;/a&gt;&quot; /&gt;
                    &lt;/baseAddresses&gt;
                &lt;/host&gt;
            &lt;/service&gt;
        &lt;/services&gt;
    &lt;/system.serviceModel&gt;
&lt;/configuration&gt;
</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/3-wcf-service-app.gif"><img class="alignnone size-full wp-image-1571" title="3-WCF Service App" src="http://nikspatel.files.wordpress.com/2012/02/3-wcf-service-app.gif" alt="" width="1024" height="497" /></a></p>
<p>Next step is to compile the Project and find the PublicKeyToken using sn.exe from command prompt. This is required for next steps for full assembly reference in WCF Service file. Running this command prompt, would return public key token &#8211; 9a823b7ed0a910a2 for this WCF Web Service</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/4-wcf-service-public-key-token.gif"><img class="alignnone size-full wp-image-1572" title="4-WCF Service Public Key Token" src="http://nikspatel.files.wordpress.com/2012/02/4-wcf-service-public-key-token.gif" alt="" width="624" height="242" /></a></p>
<p>Unfortunately there is no &#8221;WCF Service&#8221; SharePoint Project Item available in Visual Studio. You can download CKSDEV codeplex solution which would ease adding WCF Service SPI in Visual Studio.</p>
<p>Since I wanted to go with manual way (which is easy by the way), To host WCF Service in SharePoint ISAPI folder, right click on project and Add SharePoint Mapped folder &#8211; ISAPI. Within ISAPI folder, add SPHostedWCFService folder to host custom WCF web service and add two text files and rename them as SPHostedWCFService.svc and web.config</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/5-wcf-service-project-structure1.gif"><img title="5-WCF Service Project Structure" src="http://nikspatel.files.wordpress.com/2012/02/5-wcf-service-project-structure1.gif?w=296&#038;h=209" alt="" width="296" height="209" /></a></p>
<p>Add following lines in SPHostedWCFService.svc, Specify correct PublicKeyToken derived from earliar step.</p>
<p><pre class="brush: xml;">
&lt;%@ Assembly Name=&quot;Niks.SP2010.SPHostedWCFService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9a823b7ed0a910a2&quot;%&gt;
&lt;%@ ServiceHost Service=&quot;Niks.SP2010.SPHostedWCFService.SPHostedWCFService&quot; %&gt;
</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/6-sphostedwcfservice-svc.gif"><img class="alignnone size-full wp-image-1574" title="6-SPHostedWCFService SVC" src="http://nikspatel.files.wordpress.com/2012/02/6-sphostedwcfservice-svc.gif" alt="" width="913" height="91" /></a></p>
<p>Add following in web.config in ISAPI folder</p>
<p><pre class="brush: xml;">
&lt;configuration&gt;
  &lt;system.serviceModel&gt;
    &lt;serviceHostingEnvironment aspNetCompatibilityEnabled=&quot;true&quot;/&gt;
    &lt;bindings&gt;
      &lt;basicHttpBinding&gt;
        &lt;binding name=&quot;customBasicHttpBinding&quot;&gt;
          &lt;security mode=&quot;TransportCredentialOnly&quot;&gt;
            &lt;transport clientCredentialType=&quot;Ntlm&quot;/&gt;
          &lt;/security&gt;
        &lt;/binding&gt;
      &lt;/basicHttpBinding&gt;
    &lt;/bindings&gt;
    &lt;behaviors&gt;
      &lt;serviceBehaviors&gt;
        &lt;behavior name=&quot;customBasicBehavior&quot;&gt;
          &lt;serviceMetadata httpGetEnabled=&quot;true&quot; /&gt;
          &lt;serviceDebug includeExceptionDetailInFaults=&quot;false&quot; /&gt;
        &lt;/behavior&gt;
      &lt;/serviceBehaviors&gt;
    &lt;/behaviors&gt;
    &lt;services&gt;
      &lt;service behaviorConfiguration=&quot;customBasicBehavior&quot;
        name=&quot;Niks.SP2010.SPHostedWCFService.SPHostedWCFService&quot;&gt;
        &lt;endpoint address=&quot;&quot; binding=&quot;basicHttpBinding&quot;
        bindingConfiguration=&quot;customBasicHttpBinding&quot;
        contract=&quot;Niks.SP2010.SPHostedWCFService.ISPHostedWCFService&quot;&gt;
          &lt;identity&gt;
            &lt;dns value=&quot;localhost&quot; /&gt;
          &lt;/identity&gt;
        &lt;/endpoint&gt;
        &lt;host&gt;
          &lt;baseAddresses&gt;
            &lt;add baseAddress=&quot;&lt;a href=&quot;http://localhost/_layouts/WorkflowDemonstration&quot;&gt;http://localhost/_layouts/WorkflowDemonstration&lt;/a&gt;&quot; /&gt;
          &lt;/baseAddresses&gt;
        &lt;/host&gt;
      &lt;/service&gt;
    &lt;/services&gt;
  &lt;/system.serviceModel&gt;
&lt;/configuration&gt;
</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/10-wcf-service-web-config-part-i1.gif"><img title="10-WCF Service Web Config Part I" src="http://nikspatel.files.wordpress.com/2012/02/10-wcf-service-web-config-part-i1.gif?w=588&#038;h=253" alt="" width="588" height="253" /></a><br />
<a href="http://nikspatel.files.wordpress.com/2012/02/11-wcf-service-web-config-part-ii.gif"><img class="alignnone size-full wp-image-1576" title="11-WCF Service Web Config Part II" src="http://nikspatel.files.wordpress.com/2012/02/11-wcf-service-web-config-part-ii.gif" alt="" width="655" height="487" /></a></p>
<p><strong>Step 2 =&gt; Implement Business Logic in WCF Service</strong></p>
<p>Once basic project is setup, next logical step would be implementing business logic in WCF Service. Each WCF Service has to define two steps &#8211; Interface and Implementation.</p>
<p>Define the Service Contract and Data Contract in ISPHostedWCFService.cs</p>
<p><pre class="brush: csharp;">
[ServiceContract]
public interface ISPHostedWCFService
{
    [OperationContract]
    List&lt;DocumentData&gt; GetLists();
}

[DataContract]
public class DocumentData
{
    [DataMember]
    public string Name { get; set; }
    [DataMember]
    public string Title { get; set; }
}
</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/8-wcf-service-interface1.gif"><img title="8-WCF Service Interface" src="http://nikspatel.files.wordpress.com/2012/02/8-wcf-service-interface1.gif?w=432&#038;h=487" alt="" width="432" height="487" /></a></p>
<p>Implement the Service Contract &#8211; SPHostedWCFService.cs</p>
<p>In this WCF Service, since I am hosting WCF Service on the SharePoint farm, I am using Server Side Object Model to access Shared Documents document library from the root site collection web site and return documents information in the business object collection.</p>
<p>Since SharePoint is ASP.NET web application, please ensure to set each service method &#8211; AspNetCompatibilityRequirements to either Required or Allowed for ASP.NET compatability as shown in following code snippet.</p>
<p><pre class="brush: csharp;">
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class SPHostedWCFService : ISPHostedWCFService
{
    public List&lt;DocumentData&gt; GetLists()
    {
        List&lt;DocumentData&gt; docData = new List&lt;DocumentData&gt;();

        string siteURL = &quot;&lt;a href=&quot;http://sp2010vm/&quot;&gt;http://sp2010vm&lt;/a&gt;&quot;;
        string documentListName = &quot;Shared Documents&quot;;

        using (SPSite spSite = new SPSite(siteURL))
        {
            SPDocumentLibrary spLibrary = (SPDocumentLibrary)spSite.RootWeb.Lists.TryGetList(documentListName);
            foreach (SPListItem listitem in spLibrary.Items)
            {
                docData.Add(new DocumentData() { Name = listitem.Name, Title = listitem.Title});
            }
        }

        return docData;
    }
}
</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/9-wcf-service-implementation.gif"><img class="alignnone size-full wp-image-1580" title="9-WCF Service Implementation" src="http://nikspatel.files.wordpress.com/2012/02/9-wcf-service-implementation.gif" alt="" width="870" height="531" /></a></p>
<p><strong>Step 3 =&gt; Deploy WCF Service in SharePoint</strong></p>
<p>Once WCF Service logic is implemented, next logical step is to package the WCF service solution and deploy it to the SharePoint. This step is similar to any other SharePoint WSPs. This step requires packaging WCF SharePoint solution and deploys it through Visual Studio or Solutions &amp; Features Framework API as Farm level solution. Deploying solution would provision Niks.SP2010.SPHostedWCFService.dll into GAC and Niks.SP2010.SPHostedWCFService folder wtih WCF endpoint in SharePoint Root ISAPI directory.</p>
<p>To Test the WCF Service Interface, Click on the URL &#8211; http://SP2010VM/_vti_bin/SPHostedWCFService/SPHostedWCFService.svc</p>
<p>If your SharePoint Web Application IIS web site is not enabled for anonymous authentication or claims based authentication, it would ask you for the credential. Click on the Link &#8211; http://sp2010vm.niks.local/_vti_bin/SPHostedWCFService/SPHostedWCFService.svc?wsdl to see the service contract information.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/18-wcf-service-contract.gif"><img class="alignnone size-full wp-image-1581" title="18-WCF Service Contract" src="http://nikspatel.files.wordpress.com/2012/02/18-wcf-service-contract.gif" alt="" width="932" height="488" /></a></p>
<p><strong>Step 4 =&gt; Consume WCF Service from SharePoint</strong></p>
<p>In real world scenarios, you would be consuming WCF services from the non-SharePoint remote applications like CRM, SQL Server SSIS Packages, ASP.NET, Silverlight, or Console Utilities. For the demonstration purpose, I will consume Custom WCF Service from the SharePoint web application.Create new empty SharePoint Project &#8211; Niks.SP2010.SPHostedWCFServiceClient</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/12-create-wcf-service-client-project.gif"><img title="12-Create WCF Service Client Project" src="http://nikspatel.files.wordpress.com/2012/02/12-create-wcf-service-client-project.gif?w=955&#038;h=554" alt="" width="955" height="554" /></a></p>
<p>Reference the WCF Service by right clicking project and Add Service Reference. Enter WCF Service Address  &#8211; http://SP2010VM/_vti_bin/SPHostedWCFService/SPHostedWCFService.svc and and Click Go to discover. Add Proper Namespace and click OK to add WCF Service Proxy in Visual Studio</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/13-reference-wcf-service1.gif"><img title="13-Reference WCF Service" src="http://nikspatel.files.wordpress.com/2012/02/13-reference-wcf-service1.gif?w=686&#038;h=436" alt="" width="686" height="436" /></a></p>
<p>Adding reference to the WCF Service, would add app.config file in the project which needs to be copied to the SharePoint Web Application Web.Config file. To Consume WCF Service from SharePoint User Inteface, Add Visual Web Part</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/14-wcf-client-project-structure.gif"><img title="14-WCF Client Project Structure" src="http://nikspatel.files.wordpress.com/2012/02/14-wcf-client-project-structure.gif?w=285&#038;h=258" alt="" width="285" height="258" /></a></p>
<p>In Visual Web Part Code, invoke the WCF Service proxy, pass the user credential to the service, and call service method to return list of documents by populating ASP.NET data grid. Following code would invoke service and run WCF Service under user context.</p>
<p><pre class="brush: plain;">
protected void Page_Load(object sender, EventArgs e)
{
    Niks.SP2010.SPHostedWCFServiceClient.SPHostedWCFService.SPHostedWCFServiceClient client
        = new Niks.SP2010.SPHostedWCFServiceClient.SPHostedWCFService.SPHostedWCFServiceClient();
    client.ClientCredentials.Windows.AllowedImpersonationLevel =
        System.Security.Principal.TokenImpersonationLevel.Impersonation;

    Niks.SP2010.SPHostedWCFServiceClient.SPHostedWCFService.DocumentData[] docData = client.GetLists();
    gvDocData.DataSource = docData;
    gvDocData.DataBind();
    client.Close();
}
</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/15-web-part-wcf-client-code.gif"><img title="15-Web Part WCF Client Code" src="http://nikspatel.files.wordpress.com/2012/02/15-web-part-wcf-client-code.gif?w=843&#038;h=452" alt="" width="843" height="452" /></a></p>
<p>Final step to call WCF Service properly during runtime, Copy App.Config &lt;System.ServiceModel&gt; section to the SharePoint Web Application. By default, it&#8217;s using basicHttpBinding binding &amp; NTLM as authentication method. Please note that WCF Service endpoint is ttp://sp2010vm.niks.local/_vti_bin/SPHostedWCFService/SPHostedWCFService.svc.</p>
<p><pre class="brush: plain;">
&lt;configuration&gt;
    &lt;system.serviceModel&gt;
        &lt;bindings&gt;
            &lt;basicHttpBinding&gt;
                &lt;binding name=&quot;BasicHttpBinding_ISPHostedWCFService&quot; closeTimeout=&quot;00:01:00&quot;
                    openTimeout=&quot;00:01:00&quot; receiveTimeout=&quot;00:10:00&quot; sendTimeout=&quot;00:01:00&quot;
                    allowCookies=&quot;false&quot; bypassProxyOnLocal=&quot;false&quot; hostNameComparisonMode=&quot;StrongWildcard&quot;
                    maxBufferSize=&quot;65536&quot; maxBufferPoolSize=&quot;524288&quot; maxReceivedMessageSize=&quot;65536&quot;
                    messageEncoding=&quot;Text&quot; textEncoding=&quot;utf-8&quot; transferMode=&quot;Buffered&quot;
                    useDefaultWebProxy=&quot;true&quot;&gt;
                    &lt;readerQuotas maxDepth=&quot;32&quot; maxStringContentLength=&quot;8192&quot; maxArrayLength=&quot;16384&quot;
                        maxBytesPerRead=&quot;4096&quot; maxNameTableCharCount=&quot;16384&quot; /&gt;
                    &lt;security mode=&quot;TransportCredentialOnly&quot;&gt;
                        &lt;transport clientCredentialType=&quot;Ntlm&quot; proxyCredentialType=&quot;None&quot;
                            realm=&quot;&quot; /&gt;
                        &lt;message clientCredentialType=&quot;UserName&quot; algorithmSuite=&quot;Default&quot; /&gt;
                    &lt;/security&gt;
                &lt;/binding&gt;
            &lt;/basicHttpBinding&gt;
        &lt;/bindings&gt;
        &lt;client&gt;
            &lt;endpoint address=&quot;&lt;a href=&quot;http://sp2010vm.niks.local/_vti_bin/SPHostedWCFService/SPHostedWCFService.svc&quot;&gt;http://sp2010vm.niks.local/_vti_bin/SPHostedWCFService/SPHostedWCFService.svc&lt;/a&gt;&quot;
                binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;BasicHttpBinding_ISPHostedWCFService&quot;
                contract=&quot;SPHostedWCFService.ISPHostedWCFService&quot; name=&quot;BasicHttpBinding_ISPHostedWCFService&quot; /&gt;
        &lt;/client&gt;
    &lt;/system.serviceModel&gt;
&lt;/configuration&gt;
</pre></p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/16-wcf-service-model-in-sharepoint-webconfig.gif"><img title="16-WCF Service Model in SharePoint Webconfig" src="http://nikspatel.files.wordpress.com/2012/02/16-wcf-service-model-in-sharepoint-webconfig.gif?w=876&#038;h=493" alt="" width="876" height="493" /></a> <a href="http://nikspatel.files.wordpress.com/2012/02/19-main-web-config.gif"><img title="19-Main Web Config" src="http://nikspatel.files.wordpress.com/2012/02/19-main-web-config.gif?w=1024&#038;h=334" alt="" width="1024" height="334" /></a></p>
<p>Once web.config is properly configured, open the SharePoint Web Application and add Custom Web Part on the page. It should display list of all the documents name &amp; title in Grid View</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/17-web-part-showing-list-of-documents.gif"><img title="17-Web Part showing List of Documents" src="http://nikspatel.files.wordpress.com/2012/02/17-web-part-showing-list-of-documents.gif?w=782&#038;h=223" alt="" width="782" height="223" /></a></p>
<p><strong>Important Notes regarding Updating WCF Service Interface &amp; Implementation</strong></p>
<ul>
<li>If you are changing any logic in WCF Service contract implementation, you don&#8217;t have to refresh Service Reference from the Client.</li>
<li>If you have changed WCF Service Contract Interface or Business Objects Definitions, you don&#8217;t have to refresh Service Reference from the Client using Visual Studio</li>
</ul>
<p><strong>Additional References &#8211; Hosting WCF Services in SharePoint</strong></p>
<ul>
<li>Sahil Malik&#8217;s Apress Book &#8211; Building Solutions for SharePoint 2010 &#8211; Writing Custom WCF Services, Chapter 5, Page 155</li>
<li>McGraw Hill&#8217;s Microsoft Sharepoint 2010 Web Applications Complete Reference Book &#8211; Add a SharePoint-Hosted WCF Service, Chapter 11 &#8211; Workflow, Page 246</li>
<li>Microsoft SharePoint 2010 Development with Visual Studio 2010: Expert Cookbook, Chapter 6, Page 237</li>
<li>SharePoint 2010 Foundation SDK &#8211; Creating a Custom WCF Service in SharePoint Foundation using WCF Library Project Item &#8211; <a href="http://msdn.microsoft.com/en-us/library/ff521581.aspx">http://msdn.microsoft.com/en-us/library/ff521581.aspx</a></li>
<li>SharePoint 2010: Create Custom WCF Service using CKSDEV Project Item &#8211; <a href="http://ranaictiu-technicalblog.blogspot.com/2011/03/sharepoint-2010-create-custom-wcf.html">http://ranaictiu-technicalblog.blogspot.com/2011/03/sharepoint-2010-create-custom-wcf.html</a></li>
<li>Hosting WCF Service Inside SharePoint 2010 &#8211; Similar Approach as Mine &#8211; <a href="http://mstecharchitect.blogspot.com/2010/03/hosting-wcf-service-inside-sharepoint.html">http://mstecharchitect.blogspot.com/2010/03/hosting-wcf-service-inside-sharepoint.html</a></li>
</ul>
<br />Filed under: <a href='http://nikspatel.wordpress.com/category/sharepoint-2010/development/dev-general/'>Dev General</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikspatel.wordpress.com/1556/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikspatel.wordpress.com/1556/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikspatel.wordpress.com/1556/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikspatel.wordpress.com/1556/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikspatel.wordpress.com/1556/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikspatel.wordpress.com/1556/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikspatel.wordpress.com/1556/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikspatel.wordpress.com/1556/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikspatel.wordpress.com/1556/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikspatel.wordpress.com/1556/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikspatel.wordpress.com/1556/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikspatel.wordpress.com/1556/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikspatel.wordpress.com/1556/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikspatel.wordpress.com/1556/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1556&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikspatel.wordpress.com/2012/02/29/step-by-step-building-custom-wcf-services-hosted-in-sharepoint-part-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/efcfc6292651ed012fb002db664cdc9d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">nikspatel</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/1-create-wcf-service-project1.gif" medium="image">
			<media:title type="html">1-Create WCF Service Project</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/2-add-wcf-service-project-item1.gif" medium="image">
			<media:title type="html">2-Add WCF Service Project Item</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/3-wcf-service-app.gif" medium="image">
			<media:title type="html">3-WCF Service App</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/4-wcf-service-public-key-token.gif" medium="image">
			<media:title type="html">4-WCF Service Public Key Token</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/5-wcf-service-project-structure1.gif" medium="image">
			<media:title type="html">5-WCF Service Project Structure</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/6-sphostedwcfservice-svc.gif" medium="image">
			<media:title type="html">6-SPHostedWCFService SVC</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/10-wcf-service-web-config-part-i1.gif" medium="image">
			<media:title type="html">10-WCF Service Web Config Part I</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/11-wcf-service-web-config-part-ii.gif" medium="image">
			<media:title type="html">11-WCF Service Web Config Part II</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/8-wcf-service-interface1.gif" medium="image">
			<media:title type="html">8-WCF Service Interface</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/9-wcf-service-implementation.gif" medium="image">
			<media:title type="html">9-WCF Service Implementation</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/18-wcf-service-contract.gif" medium="image">
			<media:title type="html">18-WCF Service Contract</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/12-create-wcf-service-client-project.gif" medium="image">
			<media:title type="html">12-Create WCF Service Client Project</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/13-reference-wcf-service1.gif" medium="image">
			<media:title type="html">13-Reference WCF Service</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/14-wcf-client-project-structure.gif" medium="image">
			<media:title type="html">14-WCF Client Project Structure</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/15-web-part-wcf-client-code.gif" medium="image">
			<media:title type="html">15-Web Part WCF Client Code</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/16-wcf-service-model-in-sharepoint-webconfig.gif" medium="image">
			<media:title type="html">16-WCF Service Model in SharePoint Webconfig</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/19-main-web-config.gif" medium="image">
			<media:title type="html">19-Main Web Config</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/17-web-part-showing-list-of-documents.gif" medium="image">
			<media:title type="html">17-Web Part showing List of Documents</media:title>
		</media:content>
	</item>
		<item>
		<title>Hosting Custom WCF Services in IIS vs SharePoint</title>
		<link>http://nikspatel.wordpress.com/2012/02/29/deploying-custom-wcf-service-to-iis-vs-sharepoint/</link>
		<comments>http://nikspatel.wordpress.com/2012/02/29/deploying-custom-wcf-service-to-iis-vs-sharepoint/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 05:04:20 +0000</pubDate>
		<dc:creator>nikspatel</dc:creator>
				<category><![CDATA[Dev General]]></category>

		<guid isPermaLink="false">http://nikspatel.wordpress.com/?p=1551</guid>
		<description><![CDATA[Please note that this article refers to Custom WCF Services built to access SharePoint data or extend SharePoint Operations and what items needs to considered while making decision of hosting in IIS or SharePoint environment. With SharePoint 2010, Microsoft has allowed SharePoint developers an option of hosting Custom WCF Services in SharePoint 2010 environment. Additionally, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1551&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Please note that this article refers to Custom WCF Services built to access SharePoint data or extend SharePoint Operations and what items needs to considered while making decision of hosting in IIS or SharePoint environment.</strong></p>
<p>With SharePoint 2010, Microsoft has allowed SharePoint developers an option of hosting Custom WCF Services in SharePoint 2010 environment. Additionally, WCF Services can be hosted in IIS as well. As with many other Microsoft technologies, developers and administrators faces decision making process whether to deploy custom WCF Services in SharePoint or IIS. Unfortunately, I haven&#8217;t come across any official guidance in this matter from Microsoft and most of the articles on TechNet or MSDN demonstrate custom WCF service hosted in SharePoint 2010.</p>
<p>In this article, I will try to list high level items needs to consider while making decision on deploying WCF Service in IIS or SharePoint.</p>
<p><strong>Hosting WCF Service in IIS</strong></p>
<ul>
<li>Can be deployed to dedicated IIS web servers, non-SharePoint servers to utilize dedicated RAM</li>
<li>WCF Service would run in its own worker process or application pool</li>
<li>WCF Service can have separate authentication and authorization mechanism than SharePoint Implementation.</li>
<li>WCF Service can be configured with impersonate = false to run WCF Service logic as application pool service account.</li>
<li>If you are accessing or processing SharePoint data from WCF services, you must use REST based API or client side object model to integrate with SharePoint implementation unless you are deploying WCF services as dedicated IIS web site on SharePoint Servers.</li>
<li>Needs to deploy WCF service on multiple IIS servers with load balancer to provide high availability</li>
<li>WCF Service hosted on separate IIS server wouldn&#8217;t interfere with SharePoint processes and chew up RAM required by SharePoint operations</li>
</ul>
<p><strong>Hosting WCF Service in SharePoint</strong></p>
<ul>
<li>Runs in SharePoint Web Application&#8217;s worker process</li>
<li>Deployed to SharePoint servers in the farm using SharePoint solutions framework</li>
<li>WCF Service would have to use same authentication and authorization mechanism as SharePoint Implementation.</li>
<li>WCF Service can’t be configured with impersonate = false since impersonation is enabled by default in SharePoint 2010. This allows calling application to run WCF service in user context and return security trimmed data.</li>
<li>If you are accessing or processing SharePoint data from WCF services, it provides best performance because it runs under SharePoint worker process and can use Server Side Object Model</li>
<li>WCF Service is already deployed to all the WFE servers and provides high availability by using SharePoint inbuilt load balancer</li>
<li>WCF Service hosted in SharePoint worker process would share RAM with SharePoint operations and it may degrade SharePoint performance and scalability</li>
<li>If your web application is configured with claims based authentication, it is important to remember that IIS website is configured to have anonymous access. Since your WCF endpoints would be hosted in SharePoint web application, it may receive requests from anonymous users. It is always best practice to check if user is authorized user in WCF service implementation.</li>
</ul>
<p>Based on above items, hosting WCF Services on dedicated IIS servers would make great case for centralized enterprise services library especially when performance, security, scalability, authentication, and authorization model matters most. This would allow hosting all the custom WCF Services in single environment managed by single team whether they are based on SharePoint or not.</p>
<p>Best use case to deploy WCF Service in SharePoint is to extend SharePoint capabilities and run WCF Services in User Context like out of box WCF Services hosted in ISAPI directory (e.g. Client.svc or ListData.svc or ASMX files). Additionally, hosting WCF services would allow you to use Administrative SharePoint APIs which isn’t available in Client Object Model or REST based API. E.g. User Profile Services API are not available through client object model and if your WCF service is maintaining User Profiles, you have to use Server Side Object Model and hosting custom WCF Service in SharePoint would make more sense.</p>
<p>And, here is the Kicker. You can also host WCF Services as dedicated IIS web sites on the SharePoint Servers to use best of both worlds. This would allow performing Administrative SharePoint operations using Server Side Object Model with dedicated worker process, impersonation model, authentication model, and authorization model. Recently I wrote SharePoint Site Provisioning WCF web service which needed to run under farm account (impersonation = false), anonymous authentication disabled, and perform Administrative APIs using Server Side Object Model. This was perfect case where I needed to host WCF services on IIS servers on SharePoint Servers.</p>
<p>Hopefully this article would help making intelligent decisions while hosting custom WCF Service based on SharePoint Framework.</p>
<br />Filed under: <a href='http://nikspatel.wordpress.com/category/sharepoint-2010/development/dev-general/'>Dev General</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikspatel.wordpress.com/1551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikspatel.wordpress.com/1551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikspatel.wordpress.com/1551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikspatel.wordpress.com/1551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikspatel.wordpress.com/1551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikspatel.wordpress.com/1551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikspatel.wordpress.com/1551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikspatel.wordpress.com/1551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikspatel.wordpress.com/1551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikspatel.wordpress.com/1551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikspatel.wordpress.com/1551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikspatel.wordpress.com/1551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikspatel.wordpress.com/1551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikspatel.wordpress.com/1551/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1551&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikspatel.wordpress.com/2012/02/29/deploying-custom-wcf-service-to-iis-vs-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/efcfc6292651ed012fb002db664cdc9d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">nikspatel</media:title>
		</media:content>
	</item>
		<item>
		<title>Decision Time &#8211; Deactivate SharePoint Foundation Web Application Service on Central Admin or Deploy Custom Solutions from Central Admin</title>
		<link>http://nikspatel.wordpress.com/2012/02/24/deactivate-sharepoint-foundation-web-application-service-on-central-admin-or-deploy-custom-solutions-from-central-admin/</link>
		<comments>http://nikspatel.wordpress.com/2012/02/24/deactivate-sharepoint-foundation-web-application-service-on-central-admin-or-deploy-custom-solutions-from-central-admin/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 12:24:13 +0000</pubDate>
		<dc:creator>nikspatel</dc:creator>
				<category><![CDATA[Admin General]]></category>

		<guid isPermaLink="false">http://nikspatel.wordpress.com/?p=1528</guid>
		<description><![CDATA[Note: This article only applies to central admin server used for Application Tier in SharePoint Farm. I recently came across very interesting error while deploying solutions and activating features using powershell on one of our farm&#8217;s central admin server. What surprised me that we were using same approach to deploy our code from central admin [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1528&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Note: This article only applies to central admin server used for Application Tier in SharePoint Farm.</strong></p>
<p>I recently came across very interesting error while deploying solutions and activating features using powershell on one of our farm&#8217;s central admin server. What surprised me that we were using same approach to deploy our code from central admin server since last couple of months and suddenly it&#8217;s stopped working while activating features and throwing error.</p>
<p>Enable-SPFeature : The Feature is not a Farm Level Feature and is not found in a Site level defined by the Url. At D:\Deploy\SPSolutionDeploymentScript.ps1:287 char:22 + Enable-SPFeature &lt;&lt;&lt;&lt;  –identity $webFeatureName -URL $spWeb.url -Confirm:$false + CategoryInfo: InvalidData: (Microsoft.Share&#8230;etEnableFeature:SPCmdletEnableFeature) [Enable-SPFeature], SPCmdletException + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletEnableFeature</p>
<p>Looking at the error, it was clear that PowerShell wasn&#8217;t able to find SharePoint Features and Solutions framework API on the server. What I didn&#8217;t know was what would or which SharePoint Service application would enable this framework on the server. My first guess was to reach out to our SharePoint admin to see if he is aware of any recent changes on the central admin server configuration. Additionally, I tried to deploy and activate features through one of the WFE servers and it worked fine. As I was waiting for admin response, I have reached out to greater SharePoint community via twitter. My good friends from SharePoint Twitter communities, both <a href="http://www.sharepointdan.com/" target="_blank">Dan Usher</a> (@usher) and <a href="http://claytoncobb.wordpress.com/" target="_blank">Clayton Cobb</a> (@warrtalon) came to rescue right away and first clue was SharePoint Foundation Web Application Service may not be running. While I was trying to confirm whether this service was running earlier and stopped recently causing feature activation issues, I received response from Admin that this service was indeed stopped and he may have stopped recently.</p>
<p>Well, problem is solved and resolution is clear. We just needed to activate the SharePoint Foundation Web Application Service to resolve the issue. But, as we were exchanging information on twitter, I have realized that this could be major SharePoint release management decision. As an Admin, we would like to disable the SharePoint Foundation Web Application Service on the central admin server. Disabling SharePoint Foundation Web Application Service on central admin server seems one of the best practices since it isn&#8217;t used to serve pages to the end-users and disabling this service would conserve server memory for other dedicated SharePoint application tier services enabled on Central Admin/Application Server.</p>
<p>In General, here are the guidelines I have came to conclusion whenever I come across similar situation in future.</p>
<ul>
<li>It is still best approach to deploy code and activate features from central admin. This would allow central admin server as a main administrative consoles for both configurations and custom deployment.</li>
<li>It is still best practice to disable the SharePoint Foundation Web Application Service on the Central Admin Server to avoid additional performance overhead by running less SharePoint Web Application IIS worker processes</li>
<li>Since you have to activate SharePoint Foundation Web Application Service on the Central Admin Server to deploy code from the Central Admin Server, It would be great practice to enable the Service during deployment process and disable during normal runtime. It would be nice to have a deployment tasks to enable the service, deploy custom solutions, and disable the service.</li>
<li>One last point, there is nothing written on stone or as a best practice to deploy code from central admin, it is just my preferred method to centralize administrative tasks in one place. If your situation is different and able to deploy custom solutions from the WFE servers running SharePoint Foundation Web Application Service, you are covered.</li>
</ul>
<p>Here is another great article recommendaed by Dan Usher and it provides same architectural insights faced by SharePoint Architects and IT Pros in real world &#8211; <a href="http://blogs.technet.com/b/speschka/archive/2010/11/27/beware-of-default-solution-deployments-for-custom-claims-providers-in-sharepoint-2010.aspx">http://blogs.technet.com/b/speschka/archive/2010/11/27/beware-of-default-solution-deployments-for-custom-claims-providers-in-sharepoint-2010.aspx</a></p>
<br />Filed under: <a href='http://nikspatel.wordpress.com/category/sharepoint-2010/administration/admin-general/'>Admin General</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikspatel.wordpress.com/1528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikspatel.wordpress.com/1528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikspatel.wordpress.com/1528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikspatel.wordpress.com/1528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikspatel.wordpress.com/1528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikspatel.wordpress.com/1528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikspatel.wordpress.com/1528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikspatel.wordpress.com/1528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikspatel.wordpress.com/1528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikspatel.wordpress.com/1528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikspatel.wordpress.com/1528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikspatel.wordpress.com/1528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikspatel.wordpress.com/1528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikspatel.wordpress.com/1528/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1528&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikspatel.wordpress.com/2012/02/24/deactivate-sharepoint-foundation-web-application-service-on-central-admin-or-deploy-custom-solutions-from-central-admin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/efcfc6292651ed012fb002db664cdc9d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">nikspatel</media:title>
		</media:content>
	</item>
		<item>
		<title>Enable ASP.NET Session State on SharePoint 2010 Application</title>
		<link>http://nikspatel.wordpress.com/2012/02/12/enable-asp-net-session-state-on-sharepoint-2010-application/</link>
		<comments>http://nikspatel.wordpress.com/2012/02/12/enable-asp-net-session-state-on-sharepoint-2010-application/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 05:26:13 +0000</pubDate>
		<dc:creator>nikspatel</dc:creator>
				<category><![CDATA[Dev General]]></category>

		<guid isPermaLink="false">http://nikspatel.wordpress.com/?p=1503</guid>
		<description><![CDATA[ASP.NET Session state is disabled by default in SharePoint 2010 installation. Although it may not require in typical SharePoint 2010 installations, there may be need in custom solutions &#38; web parts built on top of SharePoint 2010 framework where developers required persisting information per user session. How ASP.NET Session State really works in SharePoint? As [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1503&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>ASP.NET Session state is disabled by default in SharePoint 2010 installation. Although it may not require in typical SharePoint 2010 installations, there may be need in custom solutions &amp; web parts built on top of SharePoint 2010 framework where developers required persisting information per user session.</p>
<p><strong>How ASP.NET Session State really works in SharePoint?</strong></p>
<p>As many of you are aware, ASP.NET allows persisting session states in three different medium &#8211; on server memory as a inproc which would require server &amp; load balancer affinity, on SQL Server to persist session in database, or on Session State Server to persist session on dedicated server memory. Both SQL Server and Session State Server would support server farm environment and because SharePoint is the multi-server farm environment based on ASP.NET framework, by default, it can be enabled to use SQL Server and SqlSessionStateStore provider to persist session state using ASP.NET Session State Service Application.</p>
<p><strong>Should I really worry if ASP.NET Session State is enabled on my SharePoint farm?</strong></p>
<p>ASP.NET Session State Service as SharePoint Session State Management depends on many factors including how many concurrent users will be accessing site, or heavy vs. average vs. low usage of session objects. If you really need to persist user session information and if you can store them in other mediums like cookies, ASP.NET Session state may not be necessary. Since SharePoint is built on top of ASP.NET framework, ASP.NET Session State Service would be ideal place to persist user sessions. Since ASP.NET Sessions gets stored in the SQL Server, heavy usage of session state may require detailed database planning, regular truncating/maintenance/cleanup of expired session state data, or fine tuning of default 60 minute session expiration time. Great thing about this service is even though it&#8217;s enabled on whole farm, it&#8217;s not used unless specific application is activated to use session state and you have full control &amp; visibility of how ASP.NET sessions gets stored in SharePoint.</p>
<p><strong>How do I enable ASP.NET Session State in SharePoint?</strong></p>
<p>ASP.NET Session state is available to the SharePoint environment by enabling &#8220;SharePoint Server ASP.NET Session State Service&#8221; service application on the SharePoint farm. You can&#8217;t enable this service application using central administration browser interface. You must enable it using PowerShell command.</p>
<p><span style="text-decoration:underline;"><em>Step 1: Enable ASP.NET Session State Service</em></span></p>
<p>To enable ASP.NET session state, log on the Central Admin Server using Farm Admin Account, and</p>
<ul>
<li>Either Run PowerShell command &#8220;Enable-SPSessionStateService –DefaultProvision&#8221; to create service application with default state. By default, this will create service application database with &#8220;SessionStateService_&lt;GUID&gt;”, on the same database server where farm configuration database is located using windows credentials of the logged in user.</li>
<li>Or Run PowerShell command &#8220;Enable-SPSessionStateService -DatabaseServer YourDBServerName -DatabaseName YourDBName&#8221; to create service application with specific database name on non-SharePoint configuration database server. For more details and additional parameters, please visit Enable-SPSessionStateService <a href="http://technet.microsoft.com/en-us/library/ff607857.aspx">http://technet.microsoft.com/en-us/library/ff607857.aspx</a>.</li>
</ul>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/1-enable-sessionstate.gif"><img title="1-Enable SessionState" src="http://nikspatel.files.wordpress.com/2012/02/1-enable-sessionstate.gif?w=668&#038;h=91" alt="" width="668" height="91" /></a></p>
<p>By enabling Session State Service on your farm,</p>
<p>It would create database on specified server &#8211; SessionStateService_&lt;GUID&gt;</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/2-sessionstate-db.gif"><img title="2-SessionState DB" src="http://nikspatel.files.wordpress.com/2012/02/2-sessionstate-db.gif?w=1024&#038;h=535" alt="" width="1024" height="535" /></a></p>
<p>It would create SharePoint Server ASP.NET Session State Service in Manage Service Applications</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/4-aspnet-sessionstate-service-application.gif"><img title="4-ASPNET SessionState Service Application" src="http://nikspatel.files.wordpress.com/2012/02/4-aspnet-sessionstate-service-application.gif?w=800&#038;h=556" alt="" width="800" height="556" /></a></p>
<p>It would add module in all web applications on farm &#8211; &lt;add name=&#8221;Session&#8221; type=&#8221;System.Web.SessionState.SessionStateModule&#8221; /&gt;</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/3-sessionstate-module-in-web.gif"><img title="3-SessionState Module in Web" src="http://nikspatel.files.wordpress.com/2012/02/3-sessionstate-module-in-web.gif?w=890&#038;h=266" alt="" width="890" height="266" /></a></p>
<p>It would add sessionstate entry in all web applications on farm</p>
<p>&lt;sessionState mode=&#8221;SQLServer&#8221; timeout=&#8221;60&#8243; allowCustomSqlDatabase=&#8221;true&#8221; sqlConnectionString=&#8221;Data Source=SP2010VM;Initial Catalog=SessionStateService_1079ab25364440b0b38b15ad2392b6d0;Integrated Security=True;Enlist=False;Connect Timeout=15&#8243; /&gt;</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/8-sessionstate-in-web-config.gif"><img class="alignnone size-full wp-image-1511" title="8-SessionState in Web Config" src="http://nikspatel.files.wordpress.com/2012/02/8-sessionstate-in-web-config.gif" alt="" width="890" height="180" /></a></p>
<p><span style="text-decoration:underline;"><em>Step 2: Activate ASP.NET Session State on SharePoint Web Application</em></span></p>
<p>By enabling ASP.NET session state service in the SharePoint farm, every SharePoint web application in the farm ready to use ASP.NET session framework. To ensure SharePoint web application gets activated to persist ASP.NET sessions, you have to manually update Web.Config file for the specific SharePoint web application on all servers in the farm.  - &lt;pages enableSessionState=&#8221;true&#8221;</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/5-enablesessionstate-in-web.gif"><img title="5-EnableSessionState in Web" src="http://nikspatel.files.wordpress.com/2012/02/5-enablesessionstate-in-web.gif?w=890&#038;h=266" alt="" width="890" height="266" /></a></p>
<p><span style="text-decoration:underline;"><em>Step 3: Although this may not be necessary, performing IISReset on all the servers would help resetting all the sessions.</em></span></p>
<p><strong>How would you use ASP.NET Session State Service in Code?</strong></p>
<p>This is straightforward. You can access ASP.NET session state object using HTTPConext.Current.Session and use the ASP.NET session state same as typically ASP.NET Session Management. Here is the sample code which would create new ASP.NET session object called &#8220;SampleSessionKey&#8221;, if it doesn&#8217;t exists.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/6-sessionstate-code.gif"><img title="6-SessionState Code" src="http://nikspatel.files.wordpress.com/2012/02/6-sessionstate-code.gif?w=710&#038;h=423" alt="" width="710" height="423" /></a></p>
<p>After above code runs, this is what you would see in the ASP.NET Session State Service Application database. By default, it would create session for 60 minutes. If you want to increase or decrease session expiration, you have to pass &#8220;SessionTimeout&#8221; parameter while creating ASP.NET Session State Service using Enable-SPSessionStateService command.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/02/7-sessionstate-in-db.gif"><img title="7-SessionState in DB" src="http://nikspatel.files.wordpress.com/2012/02/7-sessionstate-in-db.gif?w=1024&#038;h=535" alt="" width="1024" height="535" /></a></p>
<p><strong>Additional References</strong></p>
<ul>
<li>Session State Management in SharePoint &#8211; <a href="http://msdn.microsoft.com/en-us/library/ff648090.aspx">http://msdn.microsoft.com/en-us/library/ff648090.aspx </a></li>
<li>Using Session State in SharePoint 2010 &#8211; <a href="http://blogs.msdn.com/b/markarend/archive/2010/05/27/using-session-state-in-sharepoint-2010.aspx">http://blogs.msdn.com/b/markarend/archive/2010/05/27/using-session-state-in-sharepoint-2010.aspx</a></li>
<li>How to enable Session State in SharePoint 2010 &#8211; <a href="http://moustafa-arafa.blogspot.com/2010/05/how-to-enable-session-state-in.html">http://moustafa-arafa.blogspot.com/2010/05/how-to-enable-session-state-in.html</a></li>
<li>Enable session state for SharePoint Server 2010 and Foundation &#8211; <a href="http://code-journey.com/2011/enable-session-state-for-sharepoint-server-2010-and-foundation/">http://code-journey.com/2011/enable-session-state-for-sharepoint-server-2010-and-foundation/</a></li>
<li>SharePoint 2010 Session Management &#8211; <a href="http://blog.petercarson.ca/Pages/SharePoint-2010-Session-Management.aspx">http://blog.petercarson.ca/Pages/SharePoint-2010-Session-Management.aspx</a></li>
<li>SharePoint 2010 FBA and Sliding Sessions &#8211; <a href="http://blogs.msdn.com/b/scicoria/archive/2011/06/10/sharepoint-2010-fba-and-sliding-sessions.aspx">http://blogs.msdn.com/b/scicoria/archive/2011/06/10/sharepoint-2010-fba-and-sliding-sessions.aspx</a></li>
<li>SharePoint 2007 – Improve ASP.NET Session State performance &#8211; <a href="http://blogs.technet.com/b/patrick_heyde/archive/2009/12/22/sharepoint-2007-improve-asp-net-session-state-performance.aspx">http://blogs.technet.com/b/patrick_heyde/archive/2009/12/22/sharepoint-2007-improve-asp-net-session-state-performance.aspx</a></li>
<li>Understanding the implications of turning on SessionState &#8211; <a href="http://www.bluedoglimited.com/SharePointThoughts/lists/posts/post.aspx?ID=69">http://www.bluedoglimited.com/SharePointThoughts/lists/posts/post.aspx?ID=69</a></li>
</ul>
<br />Filed under: <a href='http://nikspatel.wordpress.com/category/sharepoint-2010/development/dev-general/'>Dev General</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikspatel.wordpress.com/1503/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikspatel.wordpress.com/1503/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikspatel.wordpress.com/1503/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikspatel.wordpress.com/1503/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikspatel.wordpress.com/1503/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikspatel.wordpress.com/1503/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikspatel.wordpress.com/1503/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikspatel.wordpress.com/1503/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikspatel.wordpress.com/1503/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikspatel.wordpress.com/1503/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikspatel.wordpress.com/1503/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikspatel.wordpress.com/1503/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikspatel.wordpress.com/1503/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikspatel.wordpress.com/1503/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1503&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikspatel.wordpress.com/2012/02/12/enable-asp-net-session-state-on-sharepoint-2010-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/efcfc6292651ed012fb002db664cdc9d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">nikspatel</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/1-enable-sessionstate.gif" medium="image">
			<media:title type="html">1-Enable SessionState</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/2-sessionstate-db.gif" medium="image">
			<media:title type="html">2-SessionState DB</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/4-aspnet-sessionstate-service-application.gif" medium="image">
			<media:title type="html">4-ASPNET SessionState Service Application</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/3-sessionstate-module-in-web.gif" medium="image">
			<media:title type="html">3-SessionState Module in Web</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/8-sessionstate-in-web-config.gif" medium="image">
			<media:title type="html">8-SessionState in Web Config</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/5-enablesessionstate-in-web.gif" medium="image">
			<media:title type="html">5-EnableSessionState in Web</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/6-sessionstate-code.gif" medium="image">
			<media:title type="html">6-SessionState Code</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/02/7-sessionstate-in-db.gif" medium="image">
			<media:title type="html">7-SessionState in DB</media:title>
		</media:content>
	</item>
		<item>
		<title>Best Practices to Change App Pool Account for SharePoint Web Application</title>
		<link>http://nikspatel.wordpress.com/2012/01/25/best-practices-to-change-app-pool-account-for-sharepoint-web-applcation/</link>
		<comments>http://nikspatel.wordpress.com/2012/01/25/best-practices-to-change-app-pool-account-for-sharepoint-web-applcation/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 04:21:56 +0000</pubDate>
		<dc:creator>nikspatel</dc:creator>
				<category><![CDATA[Admin General]]></category>

		<guid isPermaLink="false">http://nikspatel.wordpress.com/?p=1479</guid>
		<description><![CDATA[Updating SharePoint Web Application Pool is one of the most common actions for SharePoint administration. I have repeatedly seen many SharePoint administrators and my fellow colleagues updating their SharePoint web application pool in the IIS and later realizing that their SharePoint content application is inaccessible and throws &#8220;Cannot connect to the configuration database&#8221; error. The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1479&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Updating SharePoint Web Application Pool is one of the most common actions for SharePoint administration. I have repeatedly seen many SharePoint administrators and my fellow colleagues updating their SharePoint web application pool in the IIS and later realizing that their SharePoint content application is inaccessible and throws &#8220;Cannot connect to the configuration database&#8221; error.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/01/1-wrong-apppool-configuration-error.gif"><img class="alignnone size-full wp-image-1490" title="1-Wrong AppPool Configuration Error" src="http://nikspatel.files.wordpress.com/2012/01/1-wrong-apppool-configuration-error.gif" alt="" width="616" height="301" /></a></p>
<p>The real reason behind this is when you create web application either through PowerShell or central admin, SharePoint configures application pool information at many different locations including machine level permissions, IIS, and database permissions. If you ever want to manually change the application pool, you must be aware of what really happens under the hood and visit all the different locations to change application pool manually. As you may think, manually changing all these machine level settings is tedious, error-prone, and requires better option. Luckily Microsoft has provided better option as manage service accounts page on the central administration site. It is best practice to change content web application pool or even service web application pool from the central administration to ensure SharePoint Content Web application runs smoothly.</p>
<p>You can use following step by step guide to change application pool for the given SharePoint web application. Additionally, it would walk you through what really happens under the hood and where SharePoint makes necessary changes to ensure Application Pool is configured properly.</p>
<p><strong>Pre-requisites</strong></p>
<ul>
<li>New AppPool account must be Domain User Account (e.g. Niks\SPAppPool)</li>
<li>New AppPool account must register as SharePoint Managed Account</li>
</ul>
<p><a href="http://nikspatel.files.wordpress.com/2012/01/2-managed-account-for-apppool.gif"><img class="alignnone size-full wp-image-1489" title="2-Managed Account for AppPool" src="http://nikspatel.files.wordpress.com/2012/01/2-managed-account-for-apppool.gif" alt="" width="967" height="460" /></a></p>
<p><strong>Changing Application Pool from the Central Administration</strong></p>
<p>Visit Manage Service Accounts page on the central administration to change the application pool.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/01/3-updating-sharepoint-web-apppool.gif"><img class="alignnone size-full wp-image-1488" title="3-Updating SharePoint Web AppPool" src="http://nikspatel.files.wordpress.com/2012/01/3-updating-sharepoint-web-apppool.gif" alt="" width="967" height="599" /></a></p>
<p>Run the IISReset after updating application pool to ensure all the configuration settings has been updated to access SharePoint Web Application correctly.</p>
<p><a href="http://nikspatel.files.wordpress.com/2012/01/4-run-iisreset.gif"><img class="alignnone size-full wp-image-1487" title="4-Run IISReset" src="http://nikspatel.files.wordpress.com/2012/01/4-run-iisreset.gif" alt="" width="417" height="222" /></a></p>
<p><strong>What really happens under the hood?</strong></p>
<p>After you change the application pool through central administration, SharePoint automates various configuration settings changes at the machine level, IIS, and SQL Server.</p>
<ul>
<li>SharePoint Web Application App Pool in IIS</li>
</ul>
<p style="padding-left:30px;">   <a href="http://nikspatel.files.wordpress.com/2012/01/5-iis-apppool-setting.gif"><img title="5-IIS AppPool Setting" src="http://nikspatel.files.wordpress.com/2012/01/5-iis-apppool-setting.gif?w=1024&#038;h=477" alt="" width="1024" height="477" /></a></p>
<ul>
<li>Machine-level Permissions
<ul>
<li>New AppPool account added as Member in the WSS_WPG, AD Group</li>
<li>New AppPool account added as Member in the built-in IIS_IUSRS, AD Group</li>
</ul>
</li>
</ul>
<p style="padding-left:30px;">                <a href="http://nikspatel.files.wordpress.com/2012/01/6-spapppool-membership.gif"><img title="6-SpAppPool Membership" src="http://nikspatel.files.wordpress.com/2012/01/6-spapppool-membership.gif?w=424&#038;h=531" alt="" width="424" height="531" /></a></p>
<ul>
<li>SQL Server and database permissions
<ul>
<li>SharePoint will create new SQL Server Login for AppPool Account in the Database if it doesn&#8217;t exists</li>
<li>New AppPool account is assigned to the db_owner role for the Web application content databases.</li>
</ul>
<p><a href="http://nikspatel.files.wordpress.com/2012/01/7-wss_content-spapppool.gif"><img title="7-WSS_Content SPAppPool" src="http://nikspatel.files.wordpress.com/2012/01/7-wss_content-spapppool.gif?w=704&#038;h=632" alt="" width="704" height="632" /></a></p>
<ul>
<li>New AppPool account is assigned to the WSS_CONTENT_APPLICATION_POOLS role associated with the farm configuration database.</li>
</ul>
<p><a href="http://nikspatel.files.wordpress.com/2012/01/8-farm-config-db-spapppool.gif"><img title="8-Farm Config DB SPAppPool" src="http://nikspatel.files.wordpress.com/2012/01/8-farm-config-db-spapppool.gif?w=704&#038;h=632" alt="" width="704" height="632" /></a></p>
<ul>
<li>New AppPool account is assigned to the WSS_CONTENT_APPLICATION_POOLS role associated with the SharePoint_Admin content database.</li>
</ul>
<p><a href="http://nikspatel.files.wordpress.com/2012/01/9-central-admin-db-spapppool.gif"><img title="9-Central Admin DB SPAppPool" src="http://nikspatel.files.wordpress.com/2012/01/9-central-admin-db-spapppool.gif?w=704&#038;h=632" alt="" width="704" height="632" /></a></p>
<ul>
<li>New AppPool account is assigned to the WSS_CONTENT_APPLICATION_POOLS role associated with the StateService database.</li>
</ul>
<p><a href="http://nikspatel.files.wordpress.com/2012/01/10-state-service-db-spapppool.gif"><img title="10-State Service DB SPAppPool" src="http://nikspatel.files.wordpress.com/2012/01/10-state-service-db-spapppool.gif?w=704&#038;h=632" alt="" width="704" height="632" /></a></p>
<ul>
<li>New AppPool account will be assigned to the db_owner role for the associated user profile service application databases (e.g. Profile DB, Social DB, and Sync DB)</li>
</ul>
</li>
</ul>
<p style="padding-left:60px;"><a href="http://nikspatel.files.wordpress.com/2012/01/11-user-profile-dbs-spapppool.gif"><img title="11-User Profile DBs SPAppPool" src="http://nikspatel.files.wordpress.com/2012/01/11-user-profile-dbs-spapppool.gif?w=704&#038;h=632" alt="" width="704" height="632" /></a></p>
<p style="padding-left:30px;">There you go. Regardless of what you do and where you manually change application pool account info, you still have to change application pool through manage security accounts screen. So, why not just change only at 1 place on manage security accounts screen and let SharePoint does it’s magic to update all the required places. Hopefully this will help. !!!!!</p>
<p style="padding-left:30px;">
<br />Filed under: <a href='http://nikspatel.wordpress.com/category/sharepoint-2010/administration/admin-general/'>Admin General</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nikspatel.wordpress.com/1479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nikspatel.wordpress.com/1479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nikspatel.wordpress.com/1479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nikspatel.wordpress.com/1479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nikspatel.wordpress.com/1479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nikspatel.wordpress.com/1479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nikspatel.wordpress.com/1479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nikspatel.wordpress.com/1479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nikspatel.wordpress.com/1479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nikspatel.wordpress.com/1479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nikspatel.wordpress.com/1479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nikspatel.wordpress.com/1479/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nikspatel.wordpress.com/1479/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nikspatel.wordpress.com/1479/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nikspatel.wordpress.com&amp;blog=12374945&amp;post=1479&amp;subd=nikspatel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nikspatel.wordpress.com/2012/01/25/best-practices-to-change-app-pool-account-for-sharepoint-web-applcation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/efcfc6292651ed012fb002db664cdc9d?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">nikspatel</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/01/1-wrong-apppool-configuration-error.gif" medium="image">
			<media:title type="html">1-Wrong AppPool Configuration Error</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/01/2-managed-account-for-apppool.gif" medium="image">
			<media:title type="html">2-Managed Account for AppPool</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/01/3-updating-sharepoint-web-apppool.gif" medium="image">
			<media:title type="html">3-Updating SharePoint Web AppPool</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/01/4-run-iisreset.gif" medium="image">
			<media:title type="html">4-Run IISReset</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/01/5-iis-apppool-setting.gif" medium="image">
			<media:title type="html">5-IIS AppPool Setting</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/01/6-spapppool-membership.gif" medium="image">
			<media:title type="html">6-SpAppPool Membership</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/01/7-wss_content-spapppool.gif" medium="image">
			<media:title type="html">7-WSS_Content SPAppPool</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/01/8-farm-config-db-spapppool.gif" medium="image">
			<media:title type="html">8-Farm Config DB SPAppPool</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/01/9-central-admin-db-spapppool.gif" medium="image">
			<media:title type="html">9-Central Admin DB SPAppPool</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/01/10-state-service-db-spapppool.gif" medium="image">
			<media:title type="html">10-State Service DB SPAppPool</media:title>
		</media:content>

		<media:content url="http://nikspatel.files.wordpress.com/2012/01/11-user-profile-dbs-spapppool.gif" medium="image">
			<media:title type="html">11-User Profile DBs SPAppPool</media:title>
		</media:content>
	</item>
	</channel>
</rss>
