Introduction to
SharePoint
Development
About me
• Rob Wilson – MCT, SharePoint MCTS/MCITP
• SharePoint 2003 20072010
• Email: [email protected] • Twitter: @theRobManDotNet
• Blog(s):
– http://sharepointblog.kellerschroeder.com
Agenda
Introduction to SharePoint Platform
Overview of SharePoint Development Tools
.NET Development Environment for SharePoint Visual Studio Solutions for SharePoint 2010
SharePoint 2010 Solution Architectures Some New SharePoint 2010 Features
The SharePoint Platform
• SharePoint Foundation 2010 (f.k.a. WSS 3.0)
• SharePoint Server 2010 (f.k.a. MOSS 2007)
Why should I develop on a
platform?
Which edition is right for me?
Why Platforms?
Authentication Menus Authorization Content Management Error Handling Business Apps Custom Code Authentication Menus (Menu Control)Authorization Error Handling
Business Apps
MVC Framework
Uniformity Separation of Roles
Standards-Based SEO Friendly
RAD
Platform
Business Apps Much Other Stuff
Search Administration Area Authentication Menus Authorization Error Handling Content Management Uniformity Separation of Roles
Standards-Based SEO Friendly
RAD
Administration Area Search
10-15% of the effort. Lost projects because
of one-time costs.
Significant cost reduction and standardization.
When the requirements
call for it
• Not a brochure site
• Authentication and search required
• Does not have to be a large-scale project
When you need self-service
• Web Parts (re-usability)
• Subscriptions and alerts
• RSS
• Recycle Bin
• My Site
– Connecting with peers – Publishing
When you need
personalization/socialization
• From a webmaster’s perspective
– Targeted content
• From a visitor’s perspective
– Ability to customize look and feel
• Tagging and newsfeeds
When you need workflow
• Based on Workflow Foundation
• In addition:
– SharePoint front-end
– Document libraries and task lists – Workflow history lists
When you want flexible
development options
• Web Parts
• Object model
• Client object model (managed code, JavaScript, SilverLight)
• Web services
• Separation of development roles
– GUI expert, workflow developer, reports and queries, event handlers
When you want focus on
the business requirements
• Do not worry about how someone will find your application or how it integrates with the security model
• Eliminate the headache of external content repositories
When you want consistency
in your support footprint
• Common user interface
• Vocabulary
When you want to take
advantage of the inherent
features of the platform
• Collaboration
• Portal
• Content Management
• Search
• Business Intelligence
When you want to offset
the cost of development
• More time spent in the planning and design stages should surface more out-of-the-box features [that should save time later]
• Out-of-the-box features should reduce the cost of custom software development
• Developer focus should shift immediately to the business needs and extending the out-of-the-box features
When you need SOA
• Rest API expose SharePoint content
• Use the object model to create your own web services/WCFs
When you need composite
applications
• Dashboards, Mash-ups
• Business Connectivity Services
When you need composite
applications
ERP
CRM Legacy
Systems Middleware
Before
When you need composite
applications
ERP
CRM
Legacy Systems SharePoint
When you need Single Sign On
• Multiple built-in authentication options
• Support for third-party authentication providers
• Built-in SSO provider
• Manages credentials for other apps on your intranet
When you need off-line
support of your data
Office Integration
• Importing/exporting lists from/to excel
• Linked tables with Access
• Calendar/Task List integration with Outlook
When you need auditing and
retention policies
• Log just the events you need for what lists are of interest to you
• Develop auditing reports using SSRS
• Develop/customize workflows for content retention and disposal
When a development community
is important to you
• Blogs and forums
• Community video tutorials
• User Groups
• CodePlex
• Commercial/Open Source Features and Web Parts
When you can
no longer resist
• Up to 92% satisfaction rating in the categories of functionality, end user
experience, total cost of ownership and end user acceptance
• Up to 59% of all companies are projected to have SharePoint or an equivalent platform by the end of this 2008 and that number was
projected to increase 19% between 2009 and 2011
Demand
• Dice.com: 2,800 jobs (JUL 2010)
• Monster.com: 1,000+ jobs (JUL 2010)
• http://www.tinyurl.com/sp2010editions
Overview of SharePoint
Development Tools
InfoPath 2010
SharePoint Development
Environment for .NET
• SharePoint no longer required on
development machine in some cases, but recommended
• Virtual environment
• 64-bit is a must
• RAM is your friend
Visual Studio Solutions
for SharePoint
• Formerly 2
• Gaps filled with CodePlex add-ons
SharePoint Solution
Architectures
Object Model Web Services *Client Object Model Web Parts
Event Handlers Workflows
Desktop Apps
Object Model – Server
Architecture
1. SPSite
2.SPWeb
3. SPList
4.SPField
5. SPItem
Object Model – Site
Architecture
• Feature Activated
• List Definition with Event Handler
• Client Object Model
Client Object Model Files
• Managed Client (CLR based)
– C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI
– Microsoft.SharePoint.Client (281 kb)
– Microsoft.SharePoint.Client.Runtime (145 kb)
– FYI: Microsoft.SharePoint.dll is 15.3 mb
• JavaScript Client
– C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Template\Layouts
– SP.js (380 kb)
– SP.Core.js (13 kb)
Client Object Model Files
• Silverlight Client
– C:\Program Files\Common Files\Microsoft Shared\Web Server
Extensions\14\Template\Layouts\ClientBin
– Microsoft.SharePoint.Client.Silverlight (262 kb) – Microsoft.SharePoint.Client.Silverlight.Runtime
Client Object Model
• Allows you to write SharePoint applications that run on different platforms w/o using web services
• Traditional .NET, Web/JavaScript and
New Features
• Ease of deployment
– Publish and run if SharePoint on local host – Package and deploy if SharePoint remote
• Debugging
– Step through code if SharePoint on local host
• Sandbox solutions
– Allow applications to be deployed at the site
collection level by a site collection administrator (as opposed to farm-level equivalent)
New Features
• LINQ Support
– No longer restricted to just CAML queries if writing server-based code
– Create strongly typed SharePoint objects using SPMetal utility
New Features
• Dialog framework
• External Lists
– Looks and behaves like a SharePoint list
For More Information
Hands On Labs:
http://www.microsoft.com/downloads/details.aspx?FamilyID =c010fc68-b47f-4db6-b8a8-ad4ba33a35c5&displaylang=en
Or
http://bit.ly/sp2010hol
Developer Training Kit
• http://bit.ly/sp2010devkit MSDN Training Videos