SlideShare uma empresa Scribd logo
1 de 29
Practical SharePoint for the .NET Developer 
A Crash Course 
John Calvert 
SharePoint/Solution Architect 
Software Craft Inc. 
john at softwarecraft dot ca 
at softwarecraft99 
November 23rd, 2013
Thank you to all of our Sponsors!!
Thank you to my personal Sponsors!! 
• http://www.cloudshare.com/
SharePoint Development 
 Technologies 
 Models 
SharePoint APIs 
Getting Started – Coding to SharePoint APIs 
Diving in Deep – Coding inside SharePoint 
Q&A / Evals 
4
.NET / SharePoint solution architect 
Over 18 years experience developing business 
solutions for private industry & government 
Recent clients include Justice, NRC, NSERC, 
DFAIT, CFPSA, OSFI, MCC 
Specialize in Microsoft technologies 
5
6
7
Built on .NET 3.5.1, ASP.NET 3.5 , WF 3.5 
IIS 7 and SQL Server 2008 
Win 2008 or Win7, x64 
8GB RAM single-server 
.NET 3.5 for code calling SOM and code 
deployed inside SharePoint 
8
Built on .NET 4.5, ASP.NET 4.5, WF 4.5 
IIS 7.5 and SQL Server 2008 R2 
Windows Server 2008 R2, x64 
12GB RAM in 3-tier farm, 24GB RAM single-server 
(less if services disabled) 
.NET 4.5 for coding calling SOM and code 
deployed inside SharePoint 
9
10
As a service 
 Web / Phone / Desktop / Server / Mashup 
As a framework 
 SharePoint Web Page 
 App Model 
 Farm Solution 
 Sandbox Solution 
11
12
Any web or cloud IDE 
“Napa” Cloud-Based Development 
SharePoint Designer 
 HTML, CSS, JavaScript 
Visual Studio 
 .NET, etc 
PowerGUI or any PS command shell 
 PowerShell 
13
oData / REST 
 http://localhost/_vti_bin/ListData.svc 
 http://localhost/_api/lists/ 
Client-Side Object Model (CSOM) 
 ClientContext.ExecuteQuery(); 
Server App Model 
Server Object Model (SOM) 
 SPSite site = new SPSite("http://localhost/") 
Web Services 
 http://localhost/_vti_bin/Lists.asmx 
14
Using .NET, JavaScript, PHP, Ruby, etc 
Address an oData / REST end point 
Address CSOM .NET API 
15
$.ajax({ 
url: "http://localhost/_api/lists/getbytitle('Documents')/ite 
ms", 
type: "GET", 
headers: { "accept": "application/json;odata=verbose",}, 
success: function (data) { 
$.each(data.d.results, function (index, item) { 
$('#docs').append("<li>" + item.Id + " / " + item.Title + "</li>"); 
}, 
error: function (error) { 
alert(JSON.stringify(error)); 
} 
}); 
16
Uri u = 
newUri("http://localhost/_vti_bin/ListData.svc/", UriKind.Abs 
olute); 
TeamSiteDataContext ctx = newTeamSiteDataContext(u); 
ctx.Credentials = System.Net.CredentialCache.DefaultCrede 
ntials; 
DataServiceQuery<DocumentsItem> qry = ctx.Documents; 
IEnumerable<DocumentsItem> docs = qry.Execute(); 
17
Using WPF/WCF, WinForms or Silverlight 
Address an oData / REST end point 
Address CSOM or SOM .NET API 
18
using (ClientContext ctx = new ClientContext("http://loc 
alhost/")) 
{ 
Web web = ctx.Web; 
ListCollection lists = web.Lists; 
List list = web.Lists.GetByTitle(libraryname); 
CamlQuery qry = new CamlQuery(); 
ListItemCollection items = list.GetItems(qry); 
ctx.Load(items, li => li.Include(pi => pi["LinkFilename" 
])); 
ctx.ExecuteQuery(); 
return items; 
} 
19
using (SPSite site = new SPSite("http://localhost/")) 
{ 
using (SPWeb web = site.RootWeb) 
{ 
SPList list = web.Lists["Documents"]; 
SPListItemCollection items = list.Items; 
return items; 
} 
} 
20
Using .NET and HTML/CSS/JavaScript 
Use webparts 
Address SOM .NET API 
Address an oData / REST end point 
21
Coding 
 Visual Studio 11 improved item templates 
Debugging 
 Synch & Asynch Processes 
 Attaching from Visual Studio (CKS DevTools) 
 Developer Dashboard 
Logging 
 SPMonitoredScope 
Deployment 
 Package (*.WSP) and Feature 
 PowerShell 
22
Browser DOM Explorer 
 MSIE Developer Tools, etc 
LINQ in & for SharePoint 
 Generate Classes with SPMetal 
 IEnumerable.Cast<>() 
External Data 
 Business Connectivity Services 
Reference Data 
 Managed Metadata vs BCS Code Tables vs Lists 
23
Field names are not always what you think 
 Filename is LinkFilename 
HKEY_CURRENT_USERSoftwareMicrosoft 
VisualStudio11.0SharePointTools. 
 DWORD EnableDiagnostics=1 
24
SharePoint 2013 development overview 
(MSDN) 
What’s new for developers in SharePoint 2013 
Choose the right API set in SharePoint 2013 
(MSDN) 
Technical diagrams for SharePoint 2013 
(TechNet) 
25
Microsoft SharePoint Designer 
CodePlex SharePoint Manager 
Microsoft ULS Viewer 
CKS DevTools 
Microsoft SharePoint Online Code Analysis 
Framework (MSOCAF) 
LinqPad 
PowerGUI 
Notepad++ / Notepad++ Portable 
26
Andrew Connell 
Chris O’Brien – SharePoint Nuts and Bolts 
Yaroslav Pentarskky – ShareMuch 
Vlad Catrinescu – Absolute SharePoint 
Peter Holpar – 2nd Life of Hungarian 
SharePoint Geek 
Secrets of SharePoint 
SharePoint Developer Team (MSDN) 
27
John Calvert 
john at softwarecraft dot ca 
at softwarecraft99 
softwarecraft dot ca 
Fill out eval forms => win great prizes 
Draws after last session 
28
Remember to fill out your evaluation forms to win some great prizes! 
& 
Join us for SharePint today! 
Date & Time: Nov 23rd, 2013 @6:00 pm 
Location: The Observatory Pub, 
Algonquin Student’s Association 
Address: A-170 on Algonquin Campus 
Parking: No need to move your car!* 
Site: http://www.algonquinsa.com/ob.aspx

Mais conteúdo relacionado

Mais procurados

ASP.NET Overview - Alvin Lau
ASP.NET Overview - Alvin LauASP.NET Overview - Alvin Lau
ASP.NET Overview - Alvin Lau
Spiffy
 

Mais procurados (20)

Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010
 
ASP.NET 4.0 Roadmap
ASP.NET 4.0 RoadmapASP.NET 4.0 Roadmap
ASP.NET 4.0 Roadmap
 
Spsbcn2018 joel rodrigues - pn p reusable controls and pnpjs
Spsbcn2018   joel rodrigues - pn p reusable controls and pnpjsSpsbcn2018   joel rodrigues - pn p reusable controls and pnpjs
Spsbcn2018 joel rodrigues - pn p reusable controls and pnpjs
 
Asp .net folders and web.config
Asp .net folders and web.configAsp .net folders and web.config
Asp .net folders and web.config
 
SPS Leicester 2018 - Joel Rodrigues - PnP reusable controls and PnPjs
SPS Leicester 2018 - Joel Rodrigues - PnP reusable controls and PnPjsSPS Leicester 2018 - Joel Rodrigues - PnP reusable controls and PnPjs
SPS Leicester 2018 - Joel Rodrigues - PnP reusable controls and PnPjs
 
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
 
Industrial training seminar ppt on asp.net
Industrial training seminar ppt on asp.netIndustrial training seminar ppt on asp.net
Industrial training seminar ppt on asp.net
 
All About Asp Net 4 0 Hosam Kamel
All About Asp Net 4 0  Hosam KamelAll About Asp Net 4 0  Hosam Kamel
All About Asp Net 4 0 Hosam Kamel
 
SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)
 
ASP.NET OVERVIEW
ASP.NET OVERVIEWASP.NET OVERVIEW
ASP.NET OVERVIEW
 
SharePoint 2013 APIs
SharePoint 2013 APIsSharePoint 2013 APIs
SharePoint 2013 APIs
 
Microsoft .NET Development Platform Internationalization
Microsoft .NET Development Platform InternationalizationMicrosoft .NET Development Platform Internationalization
Microsoft .NET Development Platform Internationalization
 
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
 
ASP.NET Tutorial - Presentation 1
ASP.NET Tutorial - Presentation 1ASP.NET Tutorial - Presentation 1
ASP.NET Tutorial - Presentation 1
 
SharePoint 2013 REST APIs
SharePoint 2013 REST APIsSharePoint 2013 REST APIs
SharePoint 2013 REST APIs
 
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
 
SharePoint 2013 REST and CSOM
SharePoint 2013 REST  and CSOMSharePoint 2013 REST  and CSOM
SharePoint 2013 REST and CSOM
 
ASP.NET Overview - Alvin Lau
ASP.NET Overview - Alvin LauASP.NET Overview - Alvin Lau
ASP.NET Overview - Alvin Lau
 
Low-Code Testing Tool
Low-Code Testing ToolLow-Code Testing Tool
Low-Code Testing Tool
 
Introduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST APIIntroduction to the SharePoint Client Object Model and REST API
Introduction to the SharePoint Client Object Model and REST API
 

Semelhante a SharePoint for the .NET Developer

MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
Thomas Conté
 
Microsoft SharePoint Server 2007 Technical Overview
Microsoft SharePoint Server 2007 Technical OverviewMicrosoft SharePoint Server 2007 Technical Overview
Microsoft SharePoint Server 2007 Technical Overview
DotNetMarche
 
What’s New for Devs
What’s New for DevsWhat’s New for Devs
What’s New for Devs
MicrosoftFeed
 
RAHUL_Updated( (2)
RAHUL_Updated( (2)RAHUL_Updated( (2)
RAHUL_Updated( (2)
Rahul Singh
 

Semelhante a SharePoint for the .NET Developer (20)

MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
 
A Beginner's Guide to Client Side Development with Javascript
A Beginner's Guide to Client Side Development with JavascriptA Beginner's Guide to Client Side Development with Javascript
A Beginner's Guide to Client Side Development with Javascript
 
Microsoft SharePoint Server 2007 Technical Overview
Microsoft SharePoint Server 2007 Technical OverviewMicrosoft SharePoint Server 2007 Technical Overview
Microsoft SharePoint Server 2007 Technical Overview
 
PHP on Windows
PHP on WindowsPHP on Windows
PHP on Windows
 
PHP on Windows
PHP on WindowsPHP on Windows
PHP on Windows
 
2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development 2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development
 
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
 
What’s New for Devs
What’s New for DevsWhat’s New for Devs
What’s New for Devs
 
Sps Boston The Share Point Beast
Sps Boston   The Share Point BeastSps Boston   The Share Point Beast
Sps Boston The Share Point Beast
 
Sergey Stoyan 2016
Sergey Stoyan 2016Sergey Stoyan 2016
Sergey Stoyan 2016
 
Sergey Stoyan 2016
Sergey Stoyan 2016Sergey Stoyan 2016
Sergey Stoyan 2016
 
PHP on Windows and on Azure
PHP on Windows and on AzurePHP on Windows and on Azure
PHP on Windows and on Azure
 
Intro to SharePoint for Developers
Intro to SharePoint for DevelopersIntro to SharePoint for Developers
Intro to SharePoint for Developers
 
Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0
 
My Saminar On Php
My Saminar On PhpMy Saminar On Php
My Saminar On Php
 
Getting Started with SharePoint Development
Getting Started with SharePoint DevelopmentGetting Started with SharePoint Development
Getting Started with SharePoint Development
 
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for DevelopersMSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
 
RAHUL_Updated( (2)
RAHUL_Updated( (2)RAHUL_Updated( (2)
RAHUL_Updated( (2)
 
Developing With Data Technologies
Developing With Data TechnologiesDeveloping With Data Technologies
Developing With Data Technologies
 

Mais de John Calvert

Mais de John Calvert (14)

Azure IaaS-PaaS Migrations - Lessons Learned
Azure IaaS-PaaS Migrations - Lessons LearnedAzure IaaS-PaaS Migrations - Lessons Learned
Azure IaaS-PaaS Migrations - Lessons Learned
 
Lessons learned from migrating a legacy web app to azure
Lessons learned from migrating a legacy web app to azureLessons learned from migrating a legacy web app to azure
Lessons learned from migrating a legacy web app to azure
 
What's New and What's Out for SharePoint Server 2019 On-Premises
What's New and What's Out for SharePoint Server 2019 On-PremisesWhat's New and What's Out for SharePoint Server 2019 On-Premises
What's New and What's Out for SharePoint Server 2019 On-Premises
 
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption   Lessons Learned and Advanced TroubleshootingSharePoint 2016 Platform Adoption   Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Platform Adoption Lessons Learned and Advanced Troubleshooting
 
SharePoint 2016 Adoption - Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Adoption - Lessons Learned and Advanced TroubleshootingSharePoint 2016 Adoption - Lessons Learned and Advanced Troubleshooting
SharePoint 2016 Adoption - Lessons Learned and Advanced Troubleshooting
 
SharePoint On-Premises Nirvana
SharePoint On-Premises NirvanaSharePoint On-Premises Nirvana
SharePoint On-Premises Nirvana
 
SharePoint 2016 - What’s New and What Matters
SharePoint 2016 - What’s New and What MattersSharePoint 2016 - What’s New and What Matters
SharePoint 2016 - What’s New and What Matters
 
Transform SharePoint List Forms with HTML and CSS
Transform SharePoint List Forms with HTML and CSSTransform SharePoint List Forms with HTML and CSS
Transform SharePoint List Forms with HTML and CSS
 
Transform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScriptTransform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScript
 
Migrating to SharePoint 2013 - Business and Technical Perspective
Migrating to SharePoint 2013 - Business and Technical PerspectiveMigrating to SharePoint 2013 - Business and Technical Perspective
Migrating to SharePoint 2013 - Business and Technical Perspective
 
How to be Social with My Sites in SharePoint 2013
How to be Social with My Sites in SharePoint 2013How to be Social with My Sites in SharePoint 2013
How to be Social with My Sites in SharePoint 2013
 
IIBA OO - Is a business analyst required for SharePoint projects?
IIBA OO - Is a business analyst required for SharePoint projects?IIBA OO - Is a business analyst required for SharePoint projects?
IIBA OO - Is a business analyst required for SharePoint projects?
 
Cloud Based Dev/Test Environments for .NET and SharePoint Using CloudShare
Cloud Based Dev/Test Environments for .NET and SharePoint Using CloudShareCloud Based Dev/Test Environments for .NET and SharePoint Using CloudShare
Cloud Based Dev/Test Environments for .NET and SharePoint Using CloudShare
 
Cloud-Based Dev/Test Environments for SharePoint using CloudShare
Cloud-Based Dev/Test Environments for SharePoint using CloudShareCloud-Based Dev/Test Environments for SharePoint using CloudShare
Cloud-Based Dev/Test Environments for SharePoint using CloudShare
 

Último

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
Safe Software
 
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
Victor Rentea
 

Último (20)

Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
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
 
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
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
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
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

SharePoint for the .NET Developer

  • 1. Practical SharePoint for the .NET Developer A Crash Course John Calvert SharePoint/Solution Architect Software Craft Inc. john at softwarecraft dot ca at softwarecraft99 November 23rd, 2013
  • 2. Thank you to all of our Sponsors!!
  • 3. Thank you to my personal Sponsors!! • http://www.cloudshare.com/
  • 4. SharePoint Development  Technologies  Models SharePoint APIs Getting Started – Coding to SharePoint APIs Diving in Deep – Coding inside SharePoint Q&A / Evals 4
  • 5. .NET / SharePoint solution architect Over 18 years experience developing business solutions for private industry & government Recent clients include Justice, NRC, NSERC, DFAIT, CFPSA, OSFI, MCC Specialize in Microsoft technologies 5
  • 6. 6
  • 7. 7
  • 8. Built on .NET 3.5.1, ASP.NET 3.5 , WF 3.5 IIS 7 and SQL Server 2008 Win 2008 or Win7, x64 8GB RAM single-server .NET 3.5 for code calling SOM and code deployed inside SharePoint 8
  • 9. Built on .NET 4.5, ASP.NET 4.5, WF 4.5 IIS 7.5 and SQL Server 2008 R2 Windows Server 2008 R2, x64 12GB RAM in 3-tier farm, 24GB RAM single-server (less if services disabled) .NET 4.5 for coding calling SOM and code deployed inside SharePoint 9
  • 10. 10
  • 11. As a service  Web / Phone / Desktop / Server / Mashup As a framework  SharePoint Web Page  App Model  Farm Solution  Sandbox Solution 11
  • 12. 12
  • 13. Any web or cloud IDE “Napa” Cloud-Based Development SharePoint Designer  HTML, CSS, JavaScript Visual Studio  .NET, etc PowerGUI or any PS command shell  PowerShell 13
  • 14. oData / REST  http://localhost/_vti_bin/ListData.svc  http://localhost/_api/lists/ Client-Side Object Model (CSOM)  ClientContext.ExecuteQuery(); Server App Model Server Object Model (SOM)  SPSite site = new SPSite("http://localhost/") Web Services  http://localhost/_vti_bin/Lists.asmx 14
  • 15. Using .NET, JavaScript, PHP, Ruby, etc Address an oData / REST end point Address CSOM .NET API 15
  • 16. $.ajax({ url: "http://localhost/_api/lists/getbytitle('Documents')/ite ms", type: "GET", headers: { "accept": "application/json;odata=verbose",}, success: function (data) { $.each(data.d.results, function (index, item) { $('#docs').append("<li>" + item.Id + " / " + item.Title + "</li>"); }, error: function (error) { alert(JSON.stringify(error)); } }); 16
  • 17. Uri u = newUri("http://localhost/_vti_bin/ListData.svc/", UriKind.Abs olute); TeamSiteDataContext ctx = newTeamSiteDataContext(u); ctx.Credentials = System.Net.CredentialCache.DefaultCrede ntials; DataServiceQuery<DocumentsItem> qry = ctx.Documents; IEnumerable<DocumentsItem> docs = qry.Execute(); 17
  • 18. Using WPF/WCF, WinForms or Silverlight Address an oData / REST end point Address CSOM or SOM .NET API 18
  • 19. using (ClientContext ctx = new ClientContext("http://loc alhost/")) { Web web = ctx.Web; ListCollection lists = web.Lists; List list = web.Lists.GetByTitle(libraryname); CamlQuery qry = new CamlQuery(); ListItemCollection items = list.GetItems(qry); ctx.Load(items, li => li.Include(pi => pi["LinkFilename" ])); ctx.ExecuteQuery(); return items; } 19
  • 20. using (SPSite site = new SPSite("http://localhost/")) { using (SPWeb web = site.RootWeb) { SPList list = web.Lists["Documents"]; SPListItemCollection items = list.Items; return items; } } 20
  • 21. Using .NET and HTML/CSS/JavaScript Use webparts Address SOM .NET API Address an oData / REST end point 21
  • 22. Coding  Visual Studio 11 improved item templates Debugging  Synch & Asynch Processes  Attaching from Visual Studio (CKS DevTools)  Developer Dashboard Logging  SPMonitoredScope Deployment  Package (*.WSP) and Feature  PowerShell 22
  • 23. Browser DOM Explorer  MSIE Developer Tools, etc LINQ in & for SharePoint  Generate Classes with SPMetal  IEnumerable.Cast<>() External Data  Business Connectivity Services Reference Data  Managed Metadata vs BCS Code Tables vs Lists 23
  • 24. Field names are not always what you think  Filename is LinkFilename HKEY_CURRENT_USERSoftwareMicrosoft VisualStudio11.0SharePointTools.  DWORD EnableDiagnostics=1 24
  • 25. SharePoint 2013 development overview (MSDN) What’s new for developers in SharePoint 2013 Choose the right API set in SharePoint 2013 (MSDN) Technical diagrams for SharePoint 2013 (TechNet) 25
  • 26. Microsoft SharePoint Designer CodePlex SharePoint Manager Microsoft ULS Viewer CKS DevTools Microsoft SharePoint Online Code Analysis Framework (MSOCAF) LinqPad PowerGUI Notepad++ / Notepad++ Portable 26
  • 27. Andrew Connell Chris O’Brien – SharePoint Nuts and Bolts Yaroslav Pentarskky – ShareMuch Vlad Catrinescu – Absolute SharePoint Peter Holpar – 2nd Life of Hungarian SharePoint Geek Secrets of SharePoint SharePoint Developer Team (MSDN) 27
  • 28. John Calvert john at softwarecraft dot ca at softwarecraft99 softwarecraft dot ca Fill out eval forms => win great prizes Draws after last session 28
  • 29. Remember to fill out your evaluation forms to win some great prizes! & Join us for SharePint today! Date & Time: Nov 23rd, 2013 @6:00 pm Location: The Observatory Pub, Algonquin Student’s Association Address: A-170 on Algonquin Campus Parking: No need to move your car!* Site: http://www.algonquinsa.com/ob.aspx

Notas do Editor

  1. At the end of the day, please ensure your evaluation is signed and handed in for door prizes. The draw takes place in Room 102A.
  2. At the end of the day, please ensure your evaluation is signed and handed in for door prizes. The draw takes place in Room 102A.
  3. Presentation assumes a basic knowledge of SharePoint What kind of development are people doing: ASP.NET MVC / Forms? Web HTML5 / CSS / JavaScript? Mobile Phone / Tablet? .NET Services / Backend? .NET Desktop? How many people are using SharePoint today: SharePoint 2010? SharePoint 2013? Neither? How many people are developing for SharePoint today: SharePoint 2010? SharePoint 2013? Neither?
  4. SharePoint Development Platform Stack, http://msdn.microsoft.com/en-us/library/gg552610.aspx#SP14Architectures_platformstack SharePoint 2010 Architectures Overview, http://msdn.microsoft.com/en-us/library/gg552610.aspx
  5. Components of Business Connectivity Services, http://msdn.microsoft.com/en-us/library/jj163782.aspx#bkmk_Components Business Connectivity Services in SharePoint 2013, http://msdn.microsoft.com/en-us/library/jj163782.aspx
  6. Hardware and software requirements (SharePoint Server 2010) - http://technet.microsoft.com/en-us/library/cc262485(v=office.14).aspx
  7. Windows 7 platform not an option for developers, unlike SharePoint 2010 Memory requirements are heavier, 12-16G with search, 24G with search Hardware and software requirements for SharePoint 2013 - http://technet.microsoft.com/en-us/library/cc262485.aspx
  8. TechSling - Things You Didn’t Know About SharePoint 2013 - http://www.techsling.com/2013/10/things-you-didnt-know-about-sharepoint-2013/
  9. As a service : means code that calls SharePoint APIs but is not deployed in SharePoint. As a framework : means code that is deployed inside or by SharePoint. App Model is a special case, it is not deployed inside SharePoint but is deployed by SharePoint. Not going to talk about App Model as there is another session on this topic, “An Introduction to Developing and Deploying Apps for Microsoft SharePoint and Office 2013” at 2:30pm in the Developer track
  10. Find your project type in the unbolded black type to see what your choices are for SharePoint development Choose the right API set in SharePoint 2013 - http://msdn.microsoft.com/en-us/library/jj164060.aspx
  11. Microsoft “Napa” Office 365 Development Tools is a cloud-based development IDE for building Apps for MS Office or MS SharePoint sign up for an Office 365 Developer Site install Napa Office 365 Development Tools on your Office 365 Developer site you are ready to create apps for Office documents, mail items or SharePoint Won’t say any more about “Napa” or App Model as there is another session on this topic, “An Introduction to Developing and Deploying Apps for Microsoft SharePoint and Office 2013” at 2:30pm in the Developer track Other IDEs: Microsoft WebMatrix - http://www.microsoft.com/web/webmatrix/ Microsoft Lightswitch - http://msdn.microsoft.com/en-us/vstudio/ff796201.aspx Any web or cloud dev IDE
  12. Choose the right API set in SharePoint 2013 - http://msdn.microsoft.com/en-us/library/jj164060.aspx Deprecated and not recommended: ASP.NET (asmx) web services direct Remote Procedure Calls (RPC) calls to the owssvr.dll file
  13. SharePoint 2013 REST API, endpoints, and samples - http://msdn.microsoft.com/en-us/library/office/jj860569.aspx
  14. Deployment and Admin: stsadm is deprecated but may occasionally be required
  15. http://sps.cloudapp.net/
  16. MSOCAF is intended for SharePoint Online app development, but it can also be used to analyze on premises solutions MSOCAF code analysis covers: exception management, memory management, object model usage, security vulnerabilities, deprecated / unsupported features, etc MSOCAF combines the benefit of earlier tools FxCop, CAT.Net, and SPDisposeCheck LINQPad commercial Pro/Premium editions required for additional features: Autocompletion, namespace and assembly resolution, snippets, NuGet integration, etc