SlideShare ist ein Scribd-Unternehmen logo
1 von 31
You’re Doing It Wrong:
A New Developer’s Primer for SharePoint

                  – or –
 Everything that you know is useful,
  but is still, somehow, very, very
                 wrong.



                                          #spdev101
Wake up!
Me:

Technical Lead @ Planet Technologies
Developer
Father
Community Organizer
Virginia Tech Hokie
Penny Arcade Expo Enforcer
UNSC M12 FAV “Warthog” gunner
World Famous Jungle Cruise Skipper (ret.)

                                     #spdev101
Who are you?
SharePoint Development 101
• What do you get?
• What’s the same?
• What tools do I need?
• Key dev concepts you need to know
• 10 things every SharePoint developer should
  know
• How to get your code rejected by your
  SharePoint Architect(s)
• Resources

                                         #spdev101
What do you get?
• You get a lot of functionality for free
   –   Authentication/Authorization
   –   Page Templating
   –   Workflow hosting/reporting
   –   Data storage

• You get a LOT of functionality for free
  –    Federated Search             –   Metadata management
  –    Excel Data Services          –   Access Services
  –                                 –
       Business Connectivity Services   Scalable Service Hosting
  –    Single Sign-On               –   Visio Workflow integration
  –    Etc.                         –   Etc.

                                                                     #spdev101
What’s different?
• Website Structure
   – Web Application → Site Collection → S.C. Root Web →
     Subwebs
• Deployment
   – Code → Assembly → Feature (usually) → Package (.WSP)
• Fea⋅ture /ˈfit ər/ -noun
               ʃ
  1. A functional unit of SharePoint functionality, scoped at a Farm, Web
     Application, Site Collection, or Web level
• Packages
   – First added to the server farm
   – Then, deployed to individual web applications (or globally)



                                                                      #spdev101
What’s the same?
• SharePoint is an ASP.Net app
  – Web.config
  – HTTPHandlers/HTTPModules
  – Authentication
  – Master Pages
  – Web Parts == Composite Server Controls
    • Inherit from System.Web.UI.WebControls.WebParts.WebPart

  – Postbacks/Event Lifecycle Model


                                                            #spdev101
What tools do I need?
• Virtual Machine w/ Visual Studio, SQL Server, Active
  Directory, IIS, and MS Office running a server OS (64-bit
  for SP 2010)
• Microsoft SharePoint 2010 SDK
   – Documentation
   – Code samples
• SharePoint Visual Studio add-ins
     Windows SharePoint Services 3.0 Tools: Visual Studio 2008
     Extensions, Version 1.2 (VSeWSS)
    WSPBuilder (for VS 2008/SP 2007 or VS/SP 2010)
    Visual Studio 2010 Tools for SharePoint Development (SP 2010
     Only)
    Microsoft Office Developer Tools for Visual Studio 2012 -
     Preview 2 (SP 2013 only, SP 2010 is OOB)                  #spdev101
Add-Ins: SharePoint vs. Visual Studio
       SharePoint   SharePoint        SharePoint
         2007         2010              2013


       WSPBuilder   WSPBuilder           NOPE :(
2008
VS




                    Visual Studio
                    2010 Tools for
2010




       WSPBuilder                        NOPE :(
                     SharePoint
VS




                    Development

                                      Microsoft Office
                                      Developer Tools
2012




         NOPE :(      Built-in :D
                                     for Visual Studio
VS




                                     2012 - Preview 2

                                                         #spdev101
Key dev concepts you need to know

• Memory management (IDisposable)
• ASP.Net Web Forms page lifecycle (Page
• events) handling & process flow
  Exception
• (try/catch/finally) not just thru server controls)
  HTML & CSS (raw,
• JavaScript (SharePoint Client-Side Object
• Model)
  JavaScript (jQuery)
• JavaScript (KnockoutJS, Modernizr, etc)
• Regular Expressions (because SCIENCE)
10 things every developer should know
10 Things Every SharePoint Developer
             Should Know
10.Whenever possible, avoid creating
   custom Site Definitions
  • Use Web Templates




                                       #spdev101
10 Things Every SharePoint Developer
             Should Know
9. Solution packages are NOT side-by-side,
   versioned deployments




                                      #spdev101
10 Things Every SharePoint Developer
             Should Know
8. Web.config changes should be made in
   code, not by hand
  • SPWebConfigModification




                                     #spdev101
10 Things Every SharePoint Developer
             Should Know
7. Sandbox limitations are not enforced at
   compile time.


                 You need:
  • Visual Studio 2010 SharePoint Power
                    Tools
    • Office365 Sandbox FxCop Rules

                                        #spdev101
10 Things Every SharePoint Developer
             Should Know
6. Out of the box master & layout pages
   should never be modified




                                          #spdev101
10 Things Every SharePoint Developer
             Should Know
5. JavaScript and Publishing Content Pages
   do not play well together
  OK (In a Content Editor Web Part):
         <script type=“text/javascript">…</script>

  Not OK (CEWP or page content):
         <a href="#" onclick="javascript: …">link</a>



       List data is always stripped of JavaScript


                                                        #spdev101
10 Things Every SharePoint Developer
             Should Know
4. Yes, you can have ASP.Net “yellow
   screen of death” callstacks on errors
   In your web.config file:

   1. Set mode to “off” in the customErrors element
   2. Set debug to “true” in the compilation element
   3. Set CallStack to “true” in the SafeMode element

   In code!
   • SPWebConfigModification


                                                        #spdev101
10 Things Every SharePoint Developer
             Should Know
3. There is a right and very wrong way to
   iterate through a SharePoint list
  OK:
            SPListItemsCollection items = myList.Items;
            for (int i = 0; i < items.Count; i++)
            {
              // loop
            }

  Not OK:
            foreach (SPListItem item in myList.Items)
            {
              // loop
            }


                                                          #spdev101
10 Things Every SharePoint Developer
             Should Know
2. Many of the out-of-box web part classes
   are inheritable (but not all)



             You need: ILSpy




                                       #spdev101
10 Things Every SharePoint Developer
             Should Know
1. The rules for proper disposal of
   SharePoint objects isn’t cut & dry – but
   there is help.


        SPDisposeChe
          (Write ck down)
                 this


                                         #spdev101
How to get your code rejected by your
      SharePoint Architecture Group
• Don’t dispose of your SPSite and SPWeb
  (and related) objects properly
  – The SPDisposeCheck utility is invaluable for
    this
• Use
  SPSecurity.RunWithElevatedPrivileges
  when unnecessary or just plain badly
• Log errors to whatever’s handy at the time
• Make changes to the web.config file
  without consideration for others       #spdev101
Resources
• SPDisposeCheck Utility
  – http://code.msdn.microsoft.com/SPDisposeCheck
• StackOverflow/SharePointOverflow
  – http://stackoverflow.com
  – http://sharepointoverflow.com
• Twitter (#SPHelp)
• Your local SharePoint User Group


                                                #spdev101
Demo!
Questions?
One more thing…
Right now: Downstairs, in the lunch place…
         Delicious Cake (really).
Thanks for coming!
• Don’t forget your evaluations

• You can find me at:
   • Blog: http://greghurlman.com
   • Twitter: @ghurlman
   • Email: greg@greghurlman.com
   • Princeton Area SharePoint User Group
   • SharePoint Saturday New York & New
     Jersey
   • Manticore Theatre @ PAX East

                                            #spdev101
Photo Credits
•   http://www.flickr.com/photos/matthewebel/4542976737/
•   http://www.flickr.com/photos/photojonny/2268845904/
•   http://www.flickr.com/photos/damaradeaella/2822846819/
•   http://www.flickr.com/photos/yourdon/3890013824/
•   http://www.flickr.com/photos/tommarker/474596167/




                                                             #spdev101

Weitere ähnliche Inhalte

Was ist angesagt?

WordPress APIs
WordPress APIsWordPress APIs
WordPress APIsmdawaffe
 
Untangling spring week4
Untangling spring week4Untangling spring week4
Untangling spring week4Derek Jacoby
 
Untangling spring week8
Untangling spring week8Untangling spring week8
Untangling spring week8Derek Jacoby
 
Untangling the web11
Untangling the web11Untangling the web11
Untangling the web11Derek Jacoby
 
SPSDenver - SharePoint & jQuery - What I wish I would have known
SPSDenver - SharePoint & jQuery - What I wish I would have knownSPSDenver - SharePoint & jQuery - What I wish I would have known
SPSDenver - SharePoint & jQuery - What I wish I would have knownMark Rackley
 
SharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQuerySharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQueryMark Rackley
 
Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)ColdFusionConference
 
WordPress: Getting Under the Hood
WordPress: Getting Under the HoodWordPress: Getting Under the Hood
WordPress: Getting Under the HoodScott Taylor
 
Managing SharePoint Anywhere with Windows PowerShell
Managing SharePoint Anywhere with Windows PowerShellManaging SharePoint Anywhere with Windows PowerShell
Managing SharePoint Anywhere with Windows PowerShellRyan Dennis
 
Here Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPressHere Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPressRami Sayar
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portlanddmethvin
 
Why use Go for web development?
Why use Go for web development?Why use Go for web development?
Why use Go for web development?Weng Wei
 
Play framework 2 : Peter Hilton
Play framework 2 : Peter HiltonPlay framework 2 : Peter Hilton
Play framework 2 : Peter HiltonJAX London
 
eMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseeMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseScott Taylor
 
JSLink for ITPros - SharePoint Saturday Jersey
JSLink for ITPros - SharePoint Saturday JerseyJSLink for ITPros - SharePoint Saturday Jersey
JSLink for ITPros - SharePoint Saturday JerseyPaul Hunt
 
REST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York TimesREST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York TimesScott Taylor
 
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint BeastMark Rackley
 
Engage - Expanding XPages with Bootstrap Plugins for ultimate usability
Engage - Expanding XPages with Bootstrap Plugins for ultimate usabilityEngage - Expanding XPages with Bootstrap Plugins for ultimate usability
Engage - Expanding XPages with Bootstrap Plugins for ultimate usabilityJohnny Oldenburger
 
Live Coverage at The New York Times
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York TimesScott Taylor
 

Was ist angesagt? (20)

WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
 
Untangling spring week4
Untangling spring week4Untangling spring week4
Untangling spring week4
 
Untangling spring week8
Untangling spring week8Untangling spring week8
Untangling spring week8
 
A Day of REST
A Day of RESTA Day of REST
A Day of REST
 
Untangling the web11
Untangling the web11Untangling the web11
Untangling the web11
 
SPSDenver - SharePoint & jQuery - What I wish I would have known
SPSDenver - SharePoint & jQuery - What I wish I would have knownSPSDenver - SharePoint & jQuery - What I wish I would have known
SPSDenver - SharePoint & jQuery - What I wish I would have known
 
SharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQuerySharePoint Saturday St. Louis - SharePoint & jQuery
SharePoint Saturday St. Louis - SharePoint & jQuery
 
Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)
 
WordPress: Getting Under the Hood
WordPress: Getting Under the HoodWordPress: Getting Under the Hood
WordPress: Getting Under the Hood
 
Managing SharePoint Anywhere with Windows PowerShell
Managing SharePoint Anywhere with Windows PowerShellManaging SharePoint Anywhere with Windows PowerShell
Managing SharePoint Anywhere with Windows PowerShell
 
Here Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPressHere Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPress
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portland
 
Why use Go for web development?
Why use Go for web development?Why use Go for web development?
Why use Go for web development?
 
Play framework 2 : Peter Hilton
Play framework 2 : Peter HiltonPlay framework 2 : Peter Hilton
Play framework 2 : Peter Hilton
 
eMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseeMusic: WordPress in the Enterprise
eMusic: WordPress in the Enterprise
 
JSLink for ITPros - SharePoint Saturday Jersey
JSLink for ITPros - SharePoint Saturday JerseyJSLink for ITPros - SharePoint Saturday Jersey
JSLink for ITPros - SharePoint Saturday Jersey
 
REST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York TimesREST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York Times
 
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
 
Engage - Expanding XPages with Bootstrap Plugins for ultimate usability
Engage - Expanding XPages with Bootstrap Plugins for ultimate usabilityEngage - Expanding XPages with Bootstrap Plugins for ultimate usability
Engage - Expanding XPages with Bootstrap Plugins for ultimate usability
 
Live Coverage at The New York Times
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York Times
 

Andere mochten auch

Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
 
SharePoint Development Workshop
SharePoint Development WorkshopSharePoint Development Workshop
SharePoint Development WorkshopMJ Ferdous
 
Microsoft Sharepoint and Java Application Development
Microsoft Sharepoint and Java Application DevelopmentMicrosoft Sharepoint and Java Application Development
Microsoft Sharepoint and Java Application DevelopmentDavid Nuescheler
 
Modern SharePoint Development using Visual Studio Code
Modern SharePoint Development using Visual Studio CodeModern SharePoint Development using Visual Studio Code
Modern SharePoint Development using Visual Studio CodeJared Matfess
 
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
 
Introduction To Microsoft SharePoint 2013
Introduction To Microsoft SharePoint 2013Introduction To Microsoft SharePoint 2013
Introduction To Microsoft SharePoint 2013Vishal Pawar
 

Andere mochten auch (6)

Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
 
SharePoint Development Workshop
SharePoint Development WorkshopSharePoint Development Workshop
SharePoint Development Workshop
 
Microsoft Sharepoint and Java Application Development
Microsoft Sharepoint and Java Application DevelopmentMicrosoft Sharepoint and Java Application Development
Microsoft Sharepoint and Java Application Development
 
Modern SharePoint Development using Visual Studio Code
Modern SharePoint Development using Visual Studio CodeModern SharePoint Development using Visual Studio Code
Modern SharePoint Development using Visual Studio Code
 
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...
 
Introduction To Microsoft SharePoint 2013
Introduction To Microsoft SharePoint 2013Introduction To Microsoft SharePoint 2013
Introduction To Microsoft SharePoint 2013
 

Ähnlich wie SharePoint Development 101

SharePoint for ASP.Net Developers
SharePoint for ASP.Net DevelopersSharePoint for ASP.Net Developers
SharePoint for ASP.Net DevelopersGreg Hurlman
 
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...Sébastien Levert
 
SharePoint Fundamentals (Lesson 1&2)
SharePoint Fundamentals (Lesson 1&2)SharePoint Fundamentals (Lesson 1&2)
SharePoint Fundamentals (Lesson 1&2)MJ Ferdous
 
SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!Ben Steinhauser
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Ivo Jansch
 
Building CLR/H Registration Site with ASP.NET MVC4 and EF4CodeFirst
Building CLR/H Registration Site with ASP.NET MVC4 and EF4CodeFirstBuilding CLR/H Registration Site with ASP.NET MVC4 and EF4CodeFirst
Building CLR/H Registration Site with ASP.NET MVC4 and EF4CodeFirstJun-ichi Sakamoto
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialThomas Daly
 
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 JavascriptSharePoint Saturday New Jersey
 
SharePoint Framework, Angular and Azure Functions
SharePoint Framework, Angular and Azure FunctionsSharePoint Framework, Angular and Azure Functions
SharePoint Framework, Angular and Azure FunctionsSébastien Levert
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointJeremy Thake
 
Thoughts on building deployable and updatable share point solutions
Thoughts on building deployable and updatable share point solutionsThoughts on building deployable and updatable share point solutions
Thoughts on building deployable and updatable share point solutionsSerge van den Oever
 
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure FunctionsSharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure FunctionsSébastien Levert
 
Getting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online developmentGetting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online developmentJeremy Thake
 
Introduction to SharePoint Developer
Introduction to SharePoint DeveloperIntroduction to SharePoint Developer
Introduction to SharePoint DeveloperKelly Jones
 
SharePoint Saturday New York 2017 - SharePoint Framework, Angular and Azure F...
SharePoint Saturday New York 2017 - SharePoint Framework, Angular and Azure F...SharePoint Saturday New York 2017 - SharePoint Framework, Angular and Azure F...
SharePoint Saturday New York 2017 - SharePoint Framework, Angular and Azure F...Sébastien Levert
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?European Collaboration Summit
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointMark Rackley
 
Intro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersIntro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersJohn Ferringer
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-endJordi Anguela
 

Ähnlich wie SharePoint Development 101 (20)

SharePoint for ASP.Net Developers
SharePoint for ASP.Net DevelopersSharePoint for ASP.Net Developers
SharePoint for ASP.Net Developers
 
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
 
SharePoint Fundamentals (Lesson 1&2)
SharePoint Fundamentals (Lesson 1&2)SharePoint Fundamentals (Lesson 1&2)
SharePoint Fundamentals (Lesson 1&2)
 
SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)
 
Building CLR/H Registration Site with ASP.NET MVC4 and EF4CodeFirst
Building CLR/H Registration Site with ASP.NET MVC4 and EF4CodeFirstBuilding CLR/H Registration Site with ASP.NET MVC4 and EF4CodeFirst
Building CLR/H Registration Site with ASP.NET MVC4 and EF4CodeFirst
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
 
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
 
SharePoint Framework, Angular and Azure Functions
SharePoint Framework, Angular and Azure FunctionsSharePoint Framework, Angular and Azure Functions
SharePoint Framework, Angular and Azure Functions
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
 
Thoughts on building deployable and updatable share point solutions
Thoughts on building deployable and updatable share point solutionsThoughts on building deployable and updatable share point solutions
Thoughts on building deployable and updatable share point solutions
 
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure FunctionsSharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
 
Getting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online developmentGetting started with Office 365 SharePoint 2010 online development
Getting started with Office 365 SharePoint 2010 online development
 
Introduction to SharePoint Developer
Introduction to SharePoint DeveloperIntroduction to SharePoint Developer
Introduction to SharePoint Developer
 
Titanium Alloy Tutorial
Titanium Alloy TutorialTitanium Alloy Tutorial
Titanium Alloy Tutorial
 
SharePoint Saturday New York 2017 - SharePoint Framework, Angular and Azure F...
SharePoint Saturday New York 2017 - SharePoint Framework, Angular and Azure F...SharePoint Saturday New York 2017 - SharePoint Framework, Angular and Azure F...
SharePoint Saturday New York 2017 - SharePoint Framework, Angular and Azure F...
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
 
Intro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersIntro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developers
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
 

Kürzlich hochgeladen

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Kürzlich hochgeladen (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

SharePoint Development 101

  • 1. You’re Doing It Wrong: A New Developer’s Primer for SharePoint – or – Everything that you know is useful, but is still, somehow, very, very wrong. #spdev101
  • 3.
  • 4. Me: Technical Lead @ Planet Technologies Developer Father Community Organizer Virginia Tech Hokie Penny Arcade Expo Enforcer UNSC M12 FAV “Warthog” gunner World Famous Jungle Cruise Skipper (ret.) #spdev101
  • 6. SharePoint Development 101 • What do you get? • What’s the same? • What tools do I need? • Key dev concepts you need to know • 10 things every SharePoint developer should know • How to get your code rejected by your SharePoint Architect(s) • Resources #spdev101
  • 7. What do you get? • You get a lot of functionality for free – Authentication/Authorization – Page Templating – Workflow hosting/reporting – Data storage • You get a LOT of functionality for free – Federated Search – Metadata management – Excel Data Services – Access Services – – Business Connectivity Services Scalable Service Hosting – Single Sign-On – Visio Workflow integration – Etc. – Etc. #spdev101
  • 8. What’s different? • Website Structure – Web Application → Site Collection → S.C. Root Web → Subwebs • Deployment – Code → Assembly → Feature (usually) → Package (.WSP) • Fea⋅ture /ˈfit ər/ -noun ʃ 1. A functional unit of SharePoint functionality, scoped at a Farm, Web Application, Site Collection, or Web level • Packages – First added to the server farm – Then, deployed to individual web applications (or globally) #spdev101
  • 9. What’s the same? • SharePoint is an ASP.Net app – Web.config – HTTPHandlers/HTTPModules – Authentication – Master Pages – Web Parts == Composite Server Controls • Inherit from System.Web.UI.WebControls.WebParts.WebPart – Postbacks/Event Lifecycle Model #spdev101
  • 10. What tools do I need? • Virtual Machine w/ Visual Studio, SQL Server, Active Directory, IIS, and MS Office running a server OS (64-bit for SP 2010) • Microsoft SharePoint 2010 SDK – Documentation – Code samples • SharePoint Visual Studio add-ins Windows SharePoint Services 3.0 Tools: Visual Studio 2008 Extensions, Version 1.2 (VSeWSS)  WSPBuilder (for VS 2008/SP 2007 or VS/SP 2010)  Visual Studio 2010 Tools for SharePoint Development (SP 2010 Only)  Microsoft Office Developer Tools for Visual Studio 2012 - Preview 2 (SP 2013 only, SP 2010 is OOB) #spdev101
  • 11. Add-Ins: SharePoint vs. Visual Studio SharePoint SharePoint SharePoint 2007 2010 2013 WSPBuilder WSPBuilder NOPE :( 2008 VS Visual Studio 2010 Tools for 2010 WSPBuilder NOPE :( SharePoint VS Development Microsoft Office Developer Tools 2012 NOPE :( Built-in :D for Visual Studio VS 2012 - Preview 2 #spdev101
  • 12. Key dev concepts you need to know • Memory management (IDisposable) • ASP.Net Web Forms page lifecycle (Page • events) handling & process flow Exception • (try/catch/finally) not just thru server controls) HTML & CSS (raw, • JavaScript (SharePoint Client-Side Object • Model) JavaScript (jQuery) • JavaScript (KnockoutJS, Modernizr, etc) • Regular Expressions (because SCIENCE)
  • 13. 10 things every developer should know
  • 14. 10 Things Every SharePoint Developer Should Know 10.Whenever possible, avoid creating custom Site Definitions • Use Web Templates #spdev101
  • 15. 10 Things Every SharePoint Developer Should Know 9. Solution packages are NOT side-by-side, versioned deployments #spdev101
  • 16. 10 Things Every SharePoint Developer Should Know 8. Web.config changes should be made in code, not by hand • SPWebConfigModification #spdev101
  • 17. 10 Things Every SharePoint Developer Should Know 7. Sandbox limitations are not enforced at compile time. You need: • Visual Studio 2010 SharePoint Power Tools • Office365 Sandbox FxCop Rules #spdev101
  • 18. 10 Things Every SharePoint Developer Should Know 6. Out of the box master & layout pages should never be modified #spdev101
  • 19. 10 Things Every SharePoint Developer Should Know 5. JavaScript and Publishing Content Pages do not play well together OK (In a Content Editor Web Part): <script type=“text/javascript">…</script> Not OK (CEWP or page content): <a href="#" onclick="javascript: …">link</a> List data is always stripped of JavaScript #spdev101
  • 20. 10 Things Every SharePoint Developer Should Know 4. Yes, you can have ASP.Net “yellow screen of death” callstacks on errors In your web.config file: 1. Set mode to “off” in the customErrors element 2. Set debug to “true” in the compilation element 3. Set CallStack to “true” in the SafeMode element In code! • SPWebConfigModification #spdev101
  • 21. 10 Things Every SharePoint Developer Should Know 3. There is a right and very wrong way to iterate through a SharePoint list OK: SPListItemsCollection items = myList.Items; for (int i = 0; i < items.Count; i++) { // loop } Not OK: foreach (SPListItem item in myList.Items) { // loop } #spdev101
  • 22. 10 Things Every SharePoint Developer Should Know 2. Many of the out-of-box web part classes are inheritable (but not all) You need: ILSpy #spdev101
  • 23. 10 Things Every SharePoint Developer Should Know 1. The rules for proper disposal of SharePoint objects isn’t cut & dry – but there is help. SPDisposeChe (Write ck down) this #spdev101
  • 24. How to get your code rejected by your SharePoint Architecture Group • Don’t dispose of your SPSite and SPWeb (and related) objects properly – The SPDisposeCheck utility is invaluable for this • Use SPSecurity.RunWithElevatedPrivileges when unnecessary or just plain badly • Log errors to whatever’s handy at the time • Make changes to the web.config file without consideration for others #spdev101
  • 25. Resources • SPDisposeCheck Utility – http://code.msdn.microsoft.com/SPDisposeCheck • StackOverflow/SharePointOverflow – http://stackoverflow.com – http://sharepointoverflow.com • Twitter (#SPHelp) • Your local SharePoint User Group #spdev101
  • 26. Demo!
  • 29. Right now: Downstairs, in the lunch place… Delicious Cake (really).
  • 30. Thanks for coming! • Don’t forget your evaluations • You can find me at: • Blog: http://greghurlman.com • Twitter: @ghurlman • Email: greg@greghurlman.com • Princeton Area SharePoint User Group • SharePoint Saturday New York & New Jersey • Manticore Theatre @ PAX East #spdev101
  • 31. Photo Credits • http://www.flickr.com/photos/matthewebel/4542976737/ • http://www.flickr.com/photos/photojonny/2268845904/ • http://www.flickr.com/photos/damaradeaella/2822846819/ • http://www.flickr.com/photos/yourdon/3890013824/ • http://www.flickr.com/photos/tommarker/474596167/ #spdev101