SlideShare ist ein Scribd-Unternehmen logo
1 von 62
What is SharePoint? Many answers to this question Simplest: Web application running on ASP.NET Does different things for different people Much more than document management For end-users: ,[object Object],For developers: ,[object Object],[object Object]
SharePoint 2010 Platform An evolved version of MOSS and WSS v3 Microsoft SharePoint Server 2010 Microsoft SharePoint Foundation 2010  Development can now be done on client OS Significant enhancement for many development teams Browser Clients Microsoft SharePoint Server 2010 MS Word Clients Microsoft SharePoint Foundation 2010 MS Outlook Clients .NET Framework and ASP.NET 3.5 SP1 Internet Information Services 7.0 Windows Server 2008 (x64 only)for Production Environments Windows 7 or Vista  (x64 only) for Development Environments only
SharePoint Architecture
SharePoint 2010 Dev Enviroment Development must be done against isolated deployment of SharePoint (Virtual) Machine has:  Visual Studio 2010 SharePoint Designer 2010 SQL Server 2008 Office 2010 / 2007
SharePoint 2010 Developer Tools Visual Studio has robust tools for SP 2010 development Project and item templates Templates for many SharePoint elements Visual Designers and Explorers Feature and Solutions Site contents F5 deployment and debugging Deployment is configurable
SharePoint 2010 Projects SharePoint Projects have standard properties Project File Project Folder Active Deployment Configuration Include Assembly in Package Assembly Deployment Target Sandboxed Solution Site URL Startup Item
DEMO Building a SharePoint 2010 project
Solution Packages Work done in Visual Studio packaged into a solution for deployment Package is a CAB file with a WSP extension Package contains manifest with deployment instructions
Sample Solution Manifest <?xml version="1.0" encoding="utf-8"?> <Solution xmlns="http://schemas.microsoft.com/sharepoint/"  SolutionId="e6c7d3ce-f0a8-4f48-8d50-0cba4ae5ac9e" SharePointProductVersion="14.0">   <Assemblies>     <Assembly Location="UserControlWebParts.dll" DeploymentTarget="GlobalAssemblyCache">       <SafeControls>         <SafeControl Assembly="UserControlWebParts, Version=1.0.0.0, ..."            Namespace="UserControlWebParts.VisualCalculator" TypeName="*" />         <SafeControl Assembly="UserControlWebParts, Version=1.0.0.0, ..."            Namespace="UserControlWebParts.ListBrowser" TypeName="*" />       </SafeControls>     </Assembly>   </Assemblies>   <TemplateFiles>     <TemplateFile Location="CONTROLTEMPLATES..isualCalculatorUserControl.ascx" />     <TemplateFile Location="CONTROLTEMPLATES..istBrowserUserControl.ascx" />   </TemplateFiles>   <FeatureManifests>     <FeatureManifest Location="UserControlWebParts_Feature1eature.xml" />   </FeatureManifests> </Solution>
Farm and Sandboxed Solutions Farm Solutions Deployed at farm scope Requires administrator rights to deploy Sandboxed solutions Deployed at site collection scope Requires site collection owner rights Restricted to subset of SharePoint server API Restricted resource usage
Features Building blocks for creating SharePoint solutions A unit of design, implementation and deployment Contain elements e.g. menu items, links, list types and list instances Many other element types possible Can contain event handlers You can add any code which used WSS object model
Sample Feature Manifest <?xml version="1.0" encoding="utf-8"?> <Feature xmlns="http://schemas.microsoft.com/sharepoint/"    Id="734f2957-51f6-444c-b8cc-ab165c2fa4c5" Scope="Site"    Title="UserControlWebParts Feature1">   <ElementManifests>     <ElementManifest Location="VisualCalculatorlements.xml" />     <ElementFile Location="VisualCalculatorisualCalculator.webpart" />     <ElementManifest Location="ListBrowserlements.xml" />     <ElementFile Location="ListBrowseristBrowser.webpart" />   </ElementManifests> </Feature>
User’s View of Features Support concept of activation and deactivation
SharePoint 2010 System Folders Root folder known as System Root May also hear term 14 Hive This term is being phased out
The Features Directory Features may be installed at farm level One folder per Feature Multiple Feature activation scopes Farm, Web application, Site Collection, Site
DEMO Revisit the simple project Deploy a sandboxed solution
Content Storage in SharePoint Storage is based on the concept of lists Everything is modeled in terms of rows and columns The Document Library is really just a hybrid list SharePoint adds value on top of the generic list Transparent content storage in SQL Server Automatic generation of the user interface
Lists
List Lookups Lookups form relationships between lists Referential integrity can be enforced Lookup Lookup 1 1 m m Projects Timecards Clients
Column Validation Validation Formula can be specified on List and Columns Similar to Excel formulas Example: =[Discount] < [Cost] Column uniqueness constraint
Large List Support Check query before execution If Index is not used and number of scanned rows is greater than a limit then block query If number of Joins is greater than limit then block query If enabled on the Web Application, the developer can turn off throttling using:SPQuery.RequestThrottleOverride and SPSiteDataQuery.RequestThrottleOverride
Overview of Data Technologies REST APIs Strongly-typed ClientOM Weakly-typed Client-side Data Platform Farm Site List Data External Lists ServerOM Server-side Weakly-typed New in 2010 Improved LINQ Strongly-typed
Working with SharePoint 2010 SharePoint Server Application SharePoint API Web Service Client.svc JSON XML Client Application Client OM WPF/WinForm/Office Silverlight JavaScript Client Application
Server Object Model The SharePoint version of “Hello, World” Show the root site of a collection and it’s lists using (var site = new SPSite("http://localhost/sites/demo/")) { var web = site.RootWeb;     ListBox1.Items.Add(web.Title); foreach (SPList list in web.Lists)     {         ListBox1.Items.Add("" + list.Title);     } }
Resource Usage SPSite and SPWeb objects use unmanaged resources Vital that you release resources with Dispose General rules: If you create the object, you should Dispose var site = new SPSite(“http://localhost”); var web = site.OpenWeb(); If you get a reference from a property, don’t Dispose var web = site.RootWeb There are exceptions to these rules Use SPDisposeCheck to analyze code
DEMO Working with the Server Object Model
Managed Client Object Model <System Root>SAPI  Microsoft.SharePoint.Client 281kb Microsoft.SharePoint.Client.Runtime 145kb To Compare: Microsoft.SharePoint.dll – 15.3MB
Managed Client Object Model The SharePoint version of “Hello, World” Show the root site of a collection and it’s lists using (var context = new ClientContext("http://localhost/sites/demo")) { var site = context.Site; var web = site.RootWeb; context.Load(web, w => w.Title); context.Load(web.Lists);  context.ExecuteQuery();     ListBox1.Items.Add(web.Title); foreach (var list in web.Lists) {         ListBox1.Items.Add("" + list.Title);     } }
Retrieve Data Client Context methods wrap service calls Context.Load(object, paramsLinqExpression) Fills out the objects in the context: in-place Context.LoadQuery(IQueryable) Use Linq query to return custom objects Not filled into the context var query = from list in clientContext.Web.Lists             where list.Title != null             select list;   var result = clientContext.LoadQuery(query); clientContext.ExecuteQuery();
Silverlight Client Object Model <System Root>EMPLATEAYOUTSlientBin Microsoft.SharePoint.Client.Silverlight 262KB Microsoft.SharePoint.Client.Silverlight.Runtime 138KB
Silverlight Client Object Model Web web;  ClientContext context; void MainPage_Loaded(object sender, RoutedEventArgs e) {     context = new ClientContext("http://localhost/sites/demo");     web = context.Web; context.Load(web); context.ExecuteQueryAsync(Succeeded, Failed); } void Succeeded(object sender, ClientRequestSucceededEventArgs e) {     Label1.Text = web.Title; } void Failed(object sender, ClientRequestFailedEventArgs e) {     // handle error }
JavaScript Client Object Model <System Root>EMPLATEAYOUTS  SP.js (SP.debug.js) 380KB (559KB) SP.Core.js (SP.Core.debug.js) 13KB (20KB) SP.Runtime.js (SP.Runtime.debug.js) 68KB (108KB) Add using <SharePoint:ScriptLink>
JavaScript Client Object Model <SharePoint:ScriptLink ID="SPScriptLink" runat="server" LoadAfterUI="true"          Localizable="false" Name="sp.js" /> <script src="js/jquery-1.3.2.min.js" type="text/javascript"></script> <script type="text/javascript">     _spBodyOnLoadFunctionNames.push("Initialize"); var web;     function Initialize() { var context = new SP.ClientContext.get_current();         web = context.get_web(); context.load(web); context.executeQueryAsync(Succeeded, Failed);     }     function Succeeded() {         $("#listTitle").append(web.get_title());     }     function Failed() {         alert('request failed');     } </script>
DEMO Working with the Managed Client Object Model
Event Handlers Override methods on known receiver types SPFeatureReceiver SPListEventReceiver SPItemEventReceiver Register receiver as handler for entity Use CAML or code Synchronous and asynchronous events ItemAdding ItemAdded
Sample Feature Receiver public class Feature1EventReceiver : SPFeatureReceiver {     public override void FeatureActivated(SPFeatureReceiverProperties properties)     { var web = properties.Feature.Parent as SPWeb;         if (web == null) return; web.Properties["OldTitle"] = web.Title; web.Properties.Update(); web.Title = "Feature activated at " + DateTime.Now.ToLongTimeString(); web.Update();     }     public override void FeatureDeactivating( SPFeatureReceiverProperties properties)     { var web = properties.Feature.Parent as SPWeb;         if (web == null) return; web.Title = web.Properties["OldTitle"]; web.Update();     } }
DEMO Working with Event Handlers
Overview of Data Technologies REST APIs Strongly-typed ClientOM Weakly-typed Client-side Data Platform Farm Site List Data External Lists ServerOM Server-side Weakly-typed New in 2010 Improved LINQ Strongly-typed
REST APIs Work with data via Representational State Transfer (REST) SharePoint list data Other data sources as well Excel spreadsheets Azure cloud store Powered by ADO.NET Data Services “Astoria” REST Protocols: Atom, AtomPub, and JSON Integration and Standardization
REST APIs
Consuming Data via REST APIs
Consuming Data via REST APIs private DemoProxy.DemoDataContext _context =     new DemoProxy.DemoDataContext(new Uri(     "http://localhost/sites/demo/_vti_bin/ListData.svc")); private void Form1_Load(object sender, EventArgs e) {     _context.Credentials = System.Net.CredentialCache.DefaultCredentials; productsBindingSource.DataSource = _context.Products; } private void productsBindingNavigatorSaveItem_Click(object sender, EventArgs e) {     _context.SaveChanges(); } private void productsBindingSource_CurrentItemChanged(object sender, EventArgs e) {     _context.UpdateObject(productsBindingSource.Current);  }
DEMO Using the REST APIs
LINQ to SharePoint No CAML Required Entity classes form Business Layer Strongly-typed queries, compile-time check Intelligence helps query construction Microsoft.SharePoint.Linq.dll
SPMetal Entities generated using SPMetal utility SPMetal located in <System Root>in spmetal /web:<site Url> /code:Projects.cs Create classes and add them to project
Consuming Data with LINQ to SharePoint varsiteUrl = "http://localhost/sites/demo"; var context = new SPNorthwind.SPNorthwindDataContext(siteUrl); var query = from p in context.Products             where p.Category.Title == "Beverages"             select p; foreach (var item in query) { Console.WriteLine(item.Title); }
DEMO LINQ to SharePoint
Web Parts Modular and reusable building blocks typically used in portal style applications Support for customization and personalization Web Part infrastructure required Not specific to SharePoint Not specific to ASP.NET
DEMO PageFlakes.com
Web Part History Windows SharePoint Services 2.0  Designed with its own Web Part infrastructure WSS serializes/stores/retrieves personalization data ASP.NET 2.0 Includes Web Part infrastructure Serializes/stores/retrieves personalization data More flexible and more extensible than WSS ASP.NET 2.0 does not support WSS v2 Web Parts SharePoint Services 3.0 / SharePoint Foundation 2010 Supports WSS V2 style Web Parts Supports ASP.NET 2.0 style Web Parts (preferred)
Web Part Gallery Site collection scoped Both .DWP and .WEBPART files as items SharePoint can discover new candidates from Web.config Maintain metadata Available out-of-the-box parts determined by edition and site template
Web Part Gallery
Visual Web Part Project User interface described with markup in User Control Web Part loads User Control dynamically Page.LoadControl Not natively compatible with Sandboxed Solutions There are workarounds
Visual Web Part Project
Web Part Deployment Deploy assembly to: in folder of IIS Web Application Executes in a sandbox Global Assembly Cache Register Web Part as Safe Control in Web.config Add Web Part to Gallery Process automated by Visual Studio 2010
DEMO Visual Web Parts
SharePoint 2010 and Silverlight Presentation Silverlight Client Integration Security App Model SharePoint Data Layer Logic Layer
Silverlight/SharePoint Solution Silverlight application Build SilverlightUserControl SharePoint application Deploy XAP via Module Add custom project output Use OOB Silverlight Web Part Enable Silverlight Debugging
XAP File Deployment Options Virtual file system Document Library Virtual folder structure  Limits scope to site or site collection Works with sandboxed solutions Physical file system LAYOUTS folder LAYOUTSlientBin folder Farm scope Does not work with sandboxed solutions
DEMO Silverlight Web Parts
SharePoint 2010 Application Development Overview

Weitere ähnliche Inhalte

Was ist angesagt?

SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)Kashif Imran
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Kashif Imran
 
Understanding and programming the SharePoint REST API
Understanding and programming the SharePoint REST APIUnderstanding and programming the SharePoint REST API
Understanding and programming the SharePoint REST APIChris Beckett
 
Taking Advantage of the SharePoint 2013 REST API
Taking Advantage of the SharePoint 2013 REST APITaking Advantage of the SharePoint 2013 REST API
Taking Advantage of the SharePoint 2013 REST APIEric Shupps
 
Introduction to the SharePoint 2013 REST API
Introduction to the SharePoint 2013 REST APIIntroduction to the SharePoint 2013 REST API
Introduction to the SharePoint 2013 REST APISparkhound Inc.
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersRob Windsor
 
SharePoint 2013 REST APIs
SharePoint 2013 REST APIsSharePoint 2013 REST APIs
SharePoint 2013 REST APIsGiuseppe Marchi
 
Are you getting Sleepy. REST in SharePoint Apps
Are you getting Sleepy. REST in SharePoint AppsAre you getting Sleepy. REST in SharePoint Apps
Are you getting Sleepy. REST in SharePoint AppsLiam Cleary [MVP]
 
Hooking SharePoint APIs with Android
Hooking SharePoint APIs with AndroidHooking SharePoint APIs with Android
Hooking SharePoint APIs with AndroidKris Wagner
 
Android SharePoint
Android SharePointAndroid SharePoint
Android SharePointBenCox35
 
SharePoint 2013 REST API & Remote Authentication
SharePoint 2013 REST API & Remote AuthenticationSharePoint 2013 REST API & Remote Authentication
SharePoint 2013 REST API & Remote AuthenticationAdil Ansari
 
Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.
Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.
Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.Eric Shupps
 
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonCSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonKunaal Kapoor
 
Client Object Model and REST Improvements in SharePoint 2013
Client Object Model and REST Improvements in SharePoint 2013Client Object Model and REST Improvements in SharePoint 2013
Client Object Model and REST Improvements in SharePoint 2013Ejada
 
Working With Sharepoint 2013 Apps Development
Working With Sharepoint 2013 Apps DevelopmentWorking With Sharepoint 2013 Apps Development
Working With Sharepoint 2013 Apps DevelopmentPankaj Srivastava
 
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...Nik Patel
 
Toms introtospring mvc
Toms introtospring mvcToms introtospring mvc
Toms introtospring mvcGuo Albert
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013Toni Il Caiser
 

Was ist angesagt? (20)

SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)
 
Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365Develop iOS and Android apps with SharePoint/Office 365
Develop iOS and Android apps with SharePoint/Office 365
 
Understanding and programming the SharePoint REST API
Understanding and programming the SharePoint REST APIUnderstanding and programming the SharePoint REST API
Understanding and programming the SharePoint REST API
 
Taking Advantage of the SharePoint 2013 REST API
Taking Advantage of the SharePoint 2013 REST APITaking Advantage of the SharePoint 2013 REST API
Taking Advantage of the SharePoint 2013 REST API
 
Introduction to the SharePoint 2013 REST API
Introduction to the SharePoint 2013 REST APIIntroduction to the SharePoint 2013 REST API
Introduction to the SharePoint 2013 REST API
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint Developers
 
SharePoint 2013 REST APIs
SharePoint 2013 REST APIsSharePoint 2013 REST APIs
SharePoint 2013 REST APIs
 
Sharepoint Online
Sharepoint OnlineSharepoint Online
Sharepoint Online
 
Are you getting Sleepy. REST in SharePoint Apps
Are you getting Sleepy. REST in SharePoint AppsAre you getting Sleepy. REST in SharePoint Apps
Are you getting Sleepy. REST in SharePoint Apps
 
Hooking SharePoint APIs with Android
Hooking SharePoint APIs with AndroidHooking SharePoint APIs with Android
Hooking SharePoint APIs with Android
 
Android SharePoint
Android SharePointAndroid SharePoint
Android SharePoint
 
SharePoint 2013 REST API & Remote Authentication
SharePoint 2013 REST API & Remote AuthenticationSharePoint 2013 REST API & Remote Authentication
SharePoint 2013 REST API & Remote Authentication
 
Asp.net.
Asp.net.Asp.net.
Asp.net.
 
Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.
Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.
Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.
 
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday HoustonCSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
CSOM (Client Side Object Model). Explained @ SharePoint Saturday Houston
 
Client Object Model and REST Improvements in SharePoint 2013
Client Object Model and REST Improvements in SharePoint 2013Client Object Model and REST Improvements in SharePoint 2013
Client Object Model and REST Improvements in SharePoint 2013
 
Working With Sharepoint 2013 Apps Development
Working With Sharepoint 2013 Apps DevelopmentWorking With Sharepoint 2013 Apps Development
Working With Sharepoint 2013 Apps Development
 
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...SharePoint Fest Chicago 2015  - Anatomy of configuring provider hosted add-in...
SharePoint Fest Chicago 2015 - Anatomy of configuring provider hosted add-in...
 
Toms introtospring mvc
Toms introtospring mvcToms introtospring mvc
Toms introtospring mvc
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013
 

Andere mochten auch

Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...SPTechCon
 
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...SPTechCon
 
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...SPTechCon
 
RajeshKanchi_Resume_Latest_2016
RajeshKanchi_Resume_Latest_2016RajeshKanchi_Resume_Latest_2016
RajeshKanchi_Resume_Latest_2016Rajesh Kanchi
 
Desenvolvendo aplicações de comunicação em tempo real com ASP.NET SignalR
Desenvolvendo aplicações de comunicação em tempo real com ASP.NET SignalRDesenvolvendo aplicações de comunicação em tempo real com ASP.NET SignalR
Desenvolvendo aplicações de comunicação em tempo real com ASP.NET SignalRRodrigo Kono
 
Making UK The Age of Affluence 1955 to 1976
Making UK The Age of Affluence 1955 to 1976Making UK The Age of Affluence 1955 to 1976
Making UK The Age of Affluence 1955 to 1976NeilCharlesGardner
 
Common Errors in Statistical Thinking
Common Errors in Statistical ThinkingCommon Errors in Statistical Thinking
Common Errors in Statistical Thinkingaprofitt
 
Hazard and risk management in safety critical development
Hazard and risk management in safety critical developmentHazard and risk management in safety critical development
Hazard and risk management in safety critical developmentIntland Software GmbH
 
Big data Lambda Architecture - Batch Layer Hands On
Big data Lambda Architecture - Batch Layer Hands OnBig data Lambda Architecture - Batch Layer Hands On
Big data Lambda Architecture - Batch Layer Hands Onhkbhadraa
 
Ovum Fireside Chat: Governing the data lake - Understanding what's in there
Ovum Fireside Chat: Governing the data lake - Understanding what's in thereOvum Fireside Chat: Governing the data lake - Understanding what's in there
Ovum Fireside Chat: Governing the data lake - Understanding what's in thereZaloni
 
1.3.1. doğum öncesi nedenler
1.3.1. doğum öncesi nedenler1.3.1. doğum öncesi nedenler
1.3.1. doğum öncesi nedenlereabdep
 

Andere mochten auch (13)

Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 3: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
RajeshKanchi_Resume_Latest_2016
RajeshKanchi_Resume_Latest_2016RajeshKanchi_Resume_Latest_2016
RajeshKanchi_Resume_Latest_2016
 
Desenvolvendo aplicações de comunicação em tempo real com ASP.NET SignalR
Desenvolvendo aplicações de comunicação em tempo real com ASP.NET SignalRDesenvolvendo aplicações de comunicação em tempo real com ASP.NET SignalR
Desenvolvendo aplicações de comunicação em tempo real com ASP.NET SignalR
 
Making UK The Age of Affluence 1955 to 1976
Making UK The Age of Affluence 1955 to 1976Making UK The Age of Affluence 1955 to 1976
Making UK The Age of Affluence 1955 to 1976
 
Mi 1 er ejercicio de power point
Mi 1 er ejercicio de power pointMi 1 er ejercicio de power point
Mi 1 er ejercicio de power point
 
Common Errors in Statistical Thinking
Common Errors in Statistical ThinkingCommon Errors in Statistical Thinking
Common Errors in Statistical Thinking
 
Hazard and risk management in safety critical development
Hazard and risk management in safety critical developmentHazard and risk management in safety critical development
Hazard and risk management in safety critical development
 
Big data Lambda Architecture - Batch Layer Hands On
Big data Lambda Architecture - Batch Layer Hands OnBig data Lambda Architecture - Batch Layer Hands On
Big data Lambda Architecture - Batch Layer Hands On
 
Ovum Fireside Chat: Governing the data lake - Understanding what's in there
Ovum Fireside Chat: Governing the data lake - Understanding what's in thereOvum Fireside Chat: Governing the data lake - Understanding what's in there
Ovum Fireside Chat: Governing the data lake - Understanding what's in there
 
5 Adimda Etkili Zaman Yonetimi
5 Adimda Etkili Zaman Yonetimi5 Adimda Etkili Zaman Yonetimi
5 Adimda Etkili Zaman Yonetimi
 
1.3.1. doğum öncesi nedenler
1.3.1. doğum öncesi nedenler1.3.1. doğum öncesi nedenler
1.3.1. doğum öncesi nedenler
 

Ähnlich wie SharePoint 2010 Application Development Overview

Design and Development performance considerations
Design and Development performance considerationsDesign and Development performance considerations
Design and Development performance considerationsElaine Van Bergen
 
Introduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointRene Modery
 
Best Practices to SharePoint Architecture Fundamentals NZ & AUS
Best Practices to SharePoint Architecture Fundamentals NZ & AUSBest Practices to SharePoint Architecture Fundamentals NZ & AUS
Best Practices to SharePoint Architecture Fundamentals NZ & AUSguest7c2e070
 
Back to the Basics: SharePoint Fundamentals by Joel Oleson
Back to the Basics: SharePoint Fundamentals by Joel OlesonBack to the Basics: SharePoint Fundamentals by Joel Oleson
Back to the Basics: SharePoint Fundamentals by Joel OlesonJoel Oleson
 
SharePoint Object Model, Web Services and Events
SharePoint Object Model, Web Services and EventsSharePoint Object Model, Web Services and Events
SharePoint Object Model, Web Services and EventsMohan Arumugam
 
SharePoint Developer Education Day Palo Alto
SharePoint  Developer Education Day  Palo  AltoSharePoint  Developer Education Day  Palo  Alto
SharePoint Developer Education Day Palo Altollangit
 
[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기
[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기
[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기lanslote
 
Integrated Proposal (Vsts Sps Tfs) - MS stack
Integrated Proposal   (Vsts Sps Tfs) - MS stackIntegrated Proposal   (Vsts Sps Tfs) - MS stack
Integrated Proposal (Vsts Sps Tfs) - MS stackBijoy Viswanadhan
 
SharePoint 2007 Presentation
SharePoint 2007 PresentationSharePoint 2007 Presentation
SharePoint 2007 PresentationAjay Jain
 
Introduction wss-3-and-moss-2007-12324
Introduction wss-3-and-moss-2007-12324Introduction wss-3-and-moss-2007-12324
Introduction wss-3-and-moss-2007-12324Mogili Venkatababu
 
Wss Object Model
Wss Object ModelWss Object Model
Wss Object Modelmaddinapudi
 
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Bringing Zest to SharePoint Sites Using Out-of-the-Box TechnologyBringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technologyjoelsef
 
Introduction To Microsoft SharePoint 2013
Introduction To Microsoft SharePoint 2013Introduction To Microsoft SharePoint 2013
Introduction To Microsoft SharePoint 2013Vishal Pawar
 
SharePoint 2010 - What's New?
SharePoint 2010 - What's New?SharePoint 2010 - What's New?
SharePoint 2010 - What's New?Cory Peters
 
Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformAlfresco Software
 
So You Want to Be a SharePoint Developer - SPS Utah 2015
So You Want to Be a SharePoint Developer - SPS Utah 2015So You Want to Be a SharePoint Developer - SPS Utah 2015
So You Want to Be a SharePoint Developer - SPS Utah 2015Ryan Schouten
 
Designing SharePoint 2010 for Business
Designing SharePoint 2010 for BusinessDesigning SharePoint 2010 for Business
Designing SharePoint 2010 for BusinessKanwal Khipple
 
Intro to SharePoint for Developers
Intro to SharePoint for DevelopersIntro to SharePoint for Developers
Intro to SharePoint for DevelopersRob Wilson
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesPeter Gfader
 

Ähnlich wie SharePoint 2010 Application Development Overview (20)

Design and Development performance considerations
Design and Development performance considerationsDesign and Development performance considerations
Design and Development performance considerations
 
Introduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePoint
 
Best Practices to SharePoint Architecture Fundamentals NZ & AUS
Best Practices to SharePoint Architecture Fundamentals NZ & AUSBest Practices to SharePoint Architecture Fundamentals NZ & AUS
Best Practices to SharePoint Architecture Fundamentals NZ & AUS
 
Intro to Application Express
Intro to Application ExpressIntro to Application Express
Intro to Application Express
 
Back to the Basics: SharePoint Fundamentals by Joel Oleson
Back to the Basics: SharePoint Fundamentals by Joel OlesonBack to the Basics: SharePoint Fundamentals by Joel Oleson
Back to the Basics: SharePoint Fundamentals by Joel Oleson
 
SharePoint Object Model, Web Services and Events
SharePoint Object Model, Web Services and EventsSharePoint Object Model, Web Services and Events
SharePoint Object Model, Web Services and Events
 
SharePoint Developer Education Day Palo Alto
SharePoint  Developer Education Day  Palo  AltoSharePoint  Developer Education Day  Palo  Alto
SharePoint Developer Education Day Palo Alto
 
[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기
[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기
[SharePoint Korea Conference 2013 / 강율구] Sharepoint 스마트하게 개발하기
 
Integrated Proposal (Vsts Sps Tfs) - MS stack
Integrated Proposal   (Vsts Sps Tfs) - MS stackIntegrated Proposal   (Vsts Sps Tfs) - MS stack
Integrated Proposal (Vsts Sps Tfs) - MS stack
 
SharePoint 2007 Presentation
SharePoint 2007 PresentationSharePoint 2007 Presentation
SharePoint 2007 Presentation
 
Introduction wss-3-and-moss-2007-12324
Introduction wss-3-and-moss-2007-12324Introduction wss-3-and-moss-2007-12324
Introduction wss-3-and-moss-2007-12324
 
Wss Object Model
Wss Object ModelWss Object Model
Wss Object Model
 
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Bringing Zest to SharePoint Sites Using Out-of-the-Box TechnologyBringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technology
 
Introduction To Microsoft SharePoint 2013
Introduction To Microsoft SharePoint 2013Introduction To Microsoft SharePoint 2013
Introduction To Microsoft SharePoint 2013
 
SharePoint 2010 - What's New?
SharePoint 2010 - What's New?SharePoint 2010 - What's New?
SharePoint 2010 - What's New?
 
Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf Platform
 
So You Want to Be a SharePoint Developer - SPS Utah 2015
So You Want to Be a SharePoint Developer - SPS Utah 2015So You Want to Be a SharePoint Developer - SPS Utah 2015
So You Want to Be a SharePoint Developer - SPS Utah 2015
 
Designing SharePoint 2010 for Business
Designing SharePoint 2010 for BusinessDesigning SharePoint 2010 for Business
Designing SharePoint 2010 for Business
 
Intro to SharePoint for Developers
Intro to SharePoint for DevelopersIntro to SharePoint for Developers
Intro to SharePoint for Developers
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET Features
 

Kürzlich hochgeladen

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 

Kürzlich hochgeladen (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

SharePoint 2010 Application Development Overview

  • 1.
  • 2.
  • 3. SharePoint 2010 Platform An evolved version of MOSS and WSS v3 Microsoft SharePoint Server 2010 Microsoft SharePoint Foundation 2010 Development can now be done on client OS Significant enhancement for many development teams Browser Clients Microsoft SharePoint Server 2010 MS Word Clients Microsoft SharePoint Foundation 2010 MS Outlook Clients .NET Framework and ASP.NET 3.5 SP1 Internet Information Services 7.0 Windows Server 2008 (x64 only)for Production Environments Windows 7 or Vista (x64 only) for Development Environments only
  • 5. SharePoint 2010 Dev Enviroment Development must be done against isolated deployment of SharePoint (Virtual) Machine has: Visual Studio 2010 SharePoint Designer 2010 SQL Server 2008 Office 2010 / 2007
  • 6. SharePoint 2010 Developer Tools Visual Studio has robust tools for SP 2010 development Project and item templates Templates for many SharePoint elements Visual Designers and Explorers Feature and Solutions Site contents F5 deployment and debugging Deployment is configurable
  • 7. SharePoint 2010 Projects SharePoint Projects have standard properties Project File Project Folder Active Deployment Configuration Include Assembly in Package Assembly Deployment Target Sandboxed Solution Site URL Startup Item
  • 8. DEMO Building a SharePoint 2010 project
  • 9. Solution Packages Work done in Visual Studio packaged into a solution for deployment Package is a CAB file with a WSP extension Package contains manifest with deployment instructions
  • 10. Sample Solution Manifest <?xml version="1.0" encoding="utf-8"?> <Solution xmlns="http://schemas.microsoft.com/sharepoint/" SolutionId="e6c7d3ce-f0a8-4f48-8d50-0cba4ae5ac9e" SharePointProductVersion="14.0"> <Assemblies> <Assembly Location="UserControlWebParts.dll" DeploymentTarget="GlobalAssemblyCache"> <SafeControls> <SafeControl Assembly="UserControlWebParts, Version=1.0.0.0, ..." Namespace="UserControlWebParts.VisualCalculator" TypeName="*" /> <SafeControl Assembly="UserControlWebParts, Version=1.0.0.0, ..." Namespace="UserControlWebParts.ListBrowser" TypeName="*" /> </SafeControls> </Assembly> </Assemblies> <TemplateFiles> <TemplateFile Location="CONTROLTEMPLATES..isualCalculatorUserControl.ascx" /> <TemplateFile Location="CONTROLTEMPLATES..istBrowserUserControl.ascx" /> </TemplateFiles> <FeatureManifests> <FeatureManifest Location="UserControlWebParts_Feature1eature.xml" /> </FeatureManifests> </Solution>
  • 11. Farm and Sandboxed Solutions Farm Solutions Deployed at farm scope Requires administrator rights to deploy Sandboxed solutions Deployed at site collection scope Requires site collection owner rights Restricted to subset of SharePoint server API Restricted resource usage
  • 12. Features Building blocks for creating SharePoint solutions A unit of design, implementation and deployment Contain elements e.g. menu items, links, list types and list instances Many other element types possible Can contain event handlers You can add any code which used WSS object model
  • 13. Sample Feature Manifest <?xml version="1.0" encoding="utf-8"?> <Feature xmlns="http://schemas.microsoft.com/sharepoint/" Id="734f2957-51f6-444c-b8cc-ab165c2fa4c5" Scope="Site" Title="UserControlWebParts Feature1"> <ElementManifests> <ElementManifest Location="VisualCalculatorlements.xml" /> <ElementFile Location="VisualCalculatorisualCalculator.webpart" /> <ElementManifest Location="ListBrowserlements.xml" /> <ElementFile Location="ListBrowseristBrowser.webpart" /> </ElementManifests> </Feature>
  • 14. User’s View of Features Support concept of activation and deactivation
  • 15. SharePoint 2010 System Folders Root folder known as System Root May also hear term 14 Hive This term is being phased out
  • 16. The Features Directory Features may be installed at farm level One folder per Feature Multiple Feature activation scopes Farm, Web application, Site Collection, Site
  • 17. DEMO Revisit the simple project Deploy a sandboxed solution
  • 18. Content Storage in SharePoint Storage is based on the concept of lists Everything is modeled in terms of rows and columns The Document Library is really just a hybrid list SharePoint adds value on top of the generic list Transparent content storage in SQL Server Automatic generation of the user interface
  • 19. Lists
  • 20. List Lookups Lookups form relationships between lists Referential integrity can be enforced Lookup Lookup 1 1 m m Projects Timecards Clients
  • 21. Column Validation Validation Formula can be specified on List and Columns Similar to Excel formulas Example: =[Discount] < [Cost] Column uniqueness constraint
  • 22. Large List Support Check query before execution If Index is not used and number of scanned rows is greater than a limit then block query If number of Joins is greater than limit then block query If enabled on the Web Application, the developer can turn off throttling using:SPQuery.RequestThrottleOverride and SPSiteDataQuery.RequestThrottleOverride
  • 23. Overview of Data Technologies REST APIs Strongly-typed ClientOM Weakly-typed Client-side Data Platform Farm Site List Data External Lists ServerOM Server-side Weakly-typed New in 2010 Improved LINQ Strongly-typed
  • 24. Working with SharePoint 2010 SharePoint Server Application SharePoint API Web Service Client.svc JSON XML Client Application Client OM WPF/WinForm/Office Silverlight JavaScript Client Application
  • 25. Server Object Model The SharePoint version of “Hello, World” Show the root site of a collection and it’s lists using (var site = new SPSite("http://localhost/sites/demo/")) { var web = site.RootWeb; ListBox1.Items.Add(web.Title); foreach (SPList list in web.Lists) { ListBox1.Items.Add("" + list.Title); } }
  • 26. Resource Usage SPSite and SPWeb objects use unmanaged resources Vital that you release resources with Dispose General rules: If you create the object, you should Dispose var site = new SPSite(“http://localhost”); var web = site.OpenWeb(); If you get a reference from a property, don’t Dispose var web = site.RootWeb There are exceptions to these rules Use SPDisposeCheck to analyze code
  • 27. DEMO Working with the Server Object Model
  • 28. Managed Client Object Model <System Root>SAPI Microsoft.SharePoint.Client 281kb Microsoft.SharePoint.Client.Runtime 145kb To Compare: Microsoft.SharePoint.dll – 15.3MB
  • 29. Managed Client Object Model The SharePoint version of “Hello, World” Show the root site of a collection and it’s lists using (var context = new ClientContext("http://localhost/sites/demo")) { var site = context.Site; var web = site.RootWeb; context.Load(web, w => w.Title); context.Load(web.Lists); context.ExecuteQuery(); ListBox1.Items.Add(web.Title); foreach (var list in web.Lists) { ListBox1.Items.Add("" + list.Title); } }
  • 30. Retrieve Data Client Context methods wrap service calls Context.Load(object, paramsLinqExpression) Fills out the objects in the context: in-place Context.LoadQuery(IQueryable) Use Linq query to return custom objects Not filled into the context var query = from list in clientContext.Web.Lists          where list.Title != null          select list;   var result = clientContext.LoadQuery(query); clientContext.ExecuteQuery();
  • 31. Silverlight Client Object Model <System Root>EMPLATEAYOUTSlientBin Microsoft.SharePoint.Client.Silverlight 262KB Microsoft.SharePoint.Client.Silverlight.Runtime 138KB
  • 32. Silverlight Client Object Model Web web; ClientContext context; void MainPage_Loaded(object sender, RoutedEventArgs e) { context = new ClientContext("http://localhost/sites/demo"); web = context.Web; context.Load(web); context.ExecuteQueryAsync(Succeeded, Failed); } void Succeeded(object sender, ClientRequestSucceededEventArgs e) { Label1.Text = web.Title; } void Failed(object sender, ClientRequestFailedEventArgs e) { // handle error }
  • 33. JavaScript Client Object Model <System Root>EMPLATEAYOUTS SP.js (SP.debug.js) 380KB (559KB) SP.Core.js (SP.Core.debug.js) 13KB (20KB) SP.Runtime.js (SP.Runtime.debug.js) 68KB (108KB) Add using <SharePoint:ScriptLink>
  • 34. JavaScript Client Object Model <SharePoint:ScriptLink ID="SPScriptLink" runat="server" LoadAfterUI="true" Localizable="false" Name="sp.js" /> <script src="js/jquery-1.3.2.min.js" type="text/javascript"></script> <script type="text/javascript"> _spBodyOnLoadFunctionNames.push("Initialize"); var web; function Initialize() { var context = new SP.ClientContext.get_current(); web = context.get_web(); context.load(web); context.executeQueryAsync(Succeeded, Failed); } function Succeeded() { $("#listTitle").append(web.get_title()); } function Failed() { alert('request failed'); } </script>
  • 35. DEMO Working with the Managed Client Object Model
  • 36. Event Handlers Override methods on known receiver types SPFeatureReceiver SPListEventReceiver SPItemEventReceiver Register receiver as handler for entity Use CAML or code Synchronous and asynchronous events ItemAdding ItemAdded
  • 37. Sample Feature Receiver public class Feature1EventReceiver : SPFeatureReceiver { public override void FeatureActivated(SPFeatureReceiverProperties properties) { var web = properties.Feature.Parent as SPWeb; if (web == null) return; web.Properties["OldTitle"] = web.Title; web.Properties.Update(); web.Title = "Feature activated at " + DateTime.Now.ToLongTimeString(); web.Update(); } public override void FeatureDeactivating( SPFeatureReceiverProperties properties) { var web = properties.Feature.Parent as SPWeb; if (web == null) return; web.Title = web.Properties["OldTitle"]; web.Update(); } }
  • 38. DEMO Working with Event Handlers
  • 39. Overview of Data Technologies REST APIs Strongly-typed ClientOM Weakly-typed Client-side Data Platform Farm Site List Data External Lists ServerOM Server-side Weakly-typed New in 2010 Improved LINQ Strongly-typed
  • 40. REST APIs Work with data via Representational State Transfer (REST) SharePoint list data Other data sources as well Excel spreadsheets Azure cloud store Powered by ADO.NET Data Services “Astoria” REST Protocols: Atom, AtomPub, and JSON Integration and Standardization
  • 42. Consuming Data via REST APIs
  • 43. Consuming Data via REST APIs private DemoProxy.DemoDataContext _context = new DemoProxy.DemoDataContext(new Uri( "http://localhost/sites/demo/_vti_bin/ListData.svc")); private void Form1_Load(object sender, EventArgs e) { _context.Credentials = System.Net.CredentialCache.DefaultCredentials; productsBindingSource.DataSource = _context.Products; } private void productsBindingNavigatorSaveItem_Click(object sender, EventArgs e) { _context.SaveChanges(); } private void productsBindingSource_CurrentItemChanged(object sender, EventArgs e) { _context.UpdateObject(productsBindingSource.Current); }
  • 44. DEMO Using the REST APIs
  • 45. LINQ to SharePoint No CAML Required Entity classes form Business Layer Strongly-typed queries, compile-time check Intelligence helps query construction Microsoft.SharePoint.Linq.dll
  • 46. SPMetal Entities generated using SPMetal utility SPMetal located in <System Root>in spmetal /web:<site Url> /code:Projects.cs Create classes and add them to project
  • 47. Consuming Data with LINQ to SharePoint varsiteUrl = "http://localhost/sites/demo"; var context = new SPNorthwind.SPNorthwindDataContext(siteUrl); var query = from p in context.Products where p.Category.Title == "Beverages" select p; foreach (var item in query) { Console.WriteLine(item.Title); }
  • 48. DEMO LINQ to SharePoint
  • 49. Web Parts Modular and reusable building blocks typically used in portal style applications Support for customization and personalization Web Part infrastructure required Not specific to SharePoint Not specific to ASP.NET
  • 51. Web Part History Windows SharePoint Services 2.0 Designed with its own Web Part infrastructure WSS serializes/stores/retrieves personalization data ASP.NET 2.0 Includes Web Part infrastructure Serializes/stores/retrieves personalization data More flexible and more extensible than WSS ASP.NET 2.0 does not support WSS v2 Web Parts SharePoint Services 3.0 / SharePoint Foundation 2010 Supports WSS V2 style Web Parts Supports ASP.NET 2.0 style Web Parts (preferred)
  • 52. Web Part Gallery Site collection scoped Both .DWP and .WEBPART files as items SharePoint can discover new candidates from Web.config Maintain metadata Available out-of-the-box parts determined by edition and site template
  • 54. Visual Web Part Project User interface described with markup in User Control Web Part loads User Control dynamically Page.LoadControl Not natively compatible with Sandboxed Solutions There are workarounds
  • 55. Visual Web Part Project
  • 56. Web Part Deployment Deploy assembly to: in folder of IIS Web Application Executes in a sandbox Global Assembly Cache Register Web Part as Safe Control in Web.config Add Web Part to Gallery Process automated by Visual Studio 2010
  • 58. SharePoint 2010 and Silverlight Presentation Silverlight Client Integration Security App Model SharePoint Data Layer Logic Layer
  • 59. Silverlight/SharePoint Solution Silverlight application Build SilverlightUserControl SharePoint application Deploy XAP via Module Add custom project output Use OOB Silverlight Web Part Enable Silverlight Debugging
  • 60. XAP File Deployment Options Virtual file system Document Library Virtual folder structure Limits scope to site or site collection Works with sandboxed solutions Physical file system LAYOUTS folder LAYOUTSlientBin folder Farm scope Does not work with sandboxed solutions

Hinweis der Redaktion

  1. Introduce SharePoint 2010 Many things to many people Use tale of blind men and the elephant as an analogyhttp://en.wikipedia.org/wiki/Blind_men_and_an_elephantEach person describes SharePoint differently because of their experience with the product
  2. This slide gives you an opportunity go explain the features of SharePoint Foundation and ServerLess depth required at UG meetings, more at breakfast sessions
  3. Go over the technology stack Highlight that 64-bit operating systems are required Highlight that SharePoint 2010 is built on .NET 3.5, not .NET 4
  4. Talk about configuration optionsNative hardware, boot to VHD, virtualizationMention that Microsoft Virtual PC does not support 64-bit client OS
  5. Setup for tools you’ll be showing in the upcoming demo
  6. Setup for tools you’ll be showing in the upcoming demo
  7. Focus here is the tools Highlight:Project templatesItem templatesF5 deploymentServer Explorer Build a simple SharePoint projectAdd a list instanceF5 to deploy and see site with list added In the next section we explain what went on behind the scenes
  8. Be sure to mention the solution manifest and discuss its role The package shown in the image is from a demo used in the Web Part section
  9. The solution manifest shown is from a demo used in the Web Part section
  10. Equate Features to components Logical units of functionality
  11. The feature manifest shown is from a demo used in the Web Part section
  12. Discuss activation and deactivation
  13. Give a very quick tour of the system folders
  14. Highlight the Features folder
  15. First part – review the demo shown earlierShow what’s behind the curtain HighlightAuto-created FeatureFeature designerFeature manifestSolution designerSolution manifestDeployment optionsGenerated solution package Second partDeploy the WSP as a sandboxed solutionMake sure old solution is retracted firstMake sure elements created by old solution are deletedOr recreate the site before doing the demo
  16. Good visual aide for previous slide
  17. It’s difficult to cover this topic briefly but it’s too important to omit
  18. Build Hello, World (shows list and list items for a given site)If you feel comfortable build some of the code liveThen walkthrough the pre-created demo highlightingThe commonly used types (SPSite, SPWeb, SPList, SPListItem)The use of LINQ (LINQ to Objects this time)The use of the CAML query
  19. Additional detail about the ways resources can be requested
  20. Build Hello, World (shows list and list items for a given site)If you feel comfortable build some of the code liveThen walkthrough the pre-created demo highlightingThe commonly used types (Site, Web, List, ListItem)Use of batchingThe use of LINQ (LINQ to Objects this time)The use of the CAML query
  21. Mention that event handlers are one place you would commonly use server object model Discuss how event handlers are attached to events of entities