SlideShare una empresa de 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

Más contenido relacionado

La actualidad más candente

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

La actualidad más candente (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
 

Similar 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
 

Similar 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
 

Más de John Calvert

Más 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

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

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 del 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