SlideShare a Scribd company logo
1 of 40
Thinking SharePoint? Think Jornata.




               Just Freakin’ Work!
   Avoiding Common Hurdles in SharePoint
                    Development

Prepared for
Prepared by
                 Geoff Varosky
                  Jornata
                  61-63 Chatham Street

                     Jornata
                  Fourth Floor
                  Boston, MA 02109
Submitted on       December 14, 2011
About Me
• Geoff Varosky
  – Jornata – www.jornata.com
     •   Director, Development & Evangelism
     •   Blogger, Speaker
     •   BASPUG Co-Founder
     •   SPS Boston Co-Organizer
  – Blog : www.sharepointyankee.com
  – Email: geoff.varosky@jornata.com
  – Twitter: @gvaro
  – LinkedIn & Facebook
                email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro
                                                                                                                     2
                Thinking SharePoint? Think Jornata.
You might be a SharePoint Developer if…




           email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

           Thinking SharePoint? Think Jornata.
Agenda
•   Introduction
•   Development
•   Deployment
•   Resources
•   Q&A




              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Introduction
•   Types of Development
•   Development Tools
•   Development Environment
•   Developing to Deploy




              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Introduction
• Types of Development
  – Unmanaged Code
  – Managed Code
  – Customization




           email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

           Thinking SharePoint? Think Jornata.
Introduction
• Development Tools
  – STSDEV (2007)
     • stsdev.codeplex.com
  – WSPBuilder (2007 & 2010)
     • wspbuilder.codeplex.com
  – CKS:DEV (2010)
     • cksdev.codeplex.com
  – SharePoint Designer


              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Introduction
• Development Environment
  – Physical?
  – Virtual?
  – Desktop?
  – Dusty old PC under the desk?




             email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

             Thinking SharePoint? Think Jornata.
Introduction
• 2007 or 2010
  – 64-bit (leaves room for upgrade)
  – >= 4G of RAM
  – Choice of Virtual Host
     • HyperV, VMWare, VirtualBox
     • Not much in the way of VirtualPC support
  – Create a base virtual image
     • SQL, Base SP install, Service Packs, Dev Tools
     • Visual Studio, SPD, etc.

               email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

               Thinking SharePoint? Think Jornata.
Introduction
• Development Environment
  – Follow the SDK (2010)
     • 64 bit
     • Desktop
        – Windows 7
        – Vista (SP1+)
        – Http://msdn.microsoft.com/en-us/library/ee554869.aspx
     • Server 2008




              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Introduction
• Development Environment
  – Make sure your environment matches deployment
    targets!
    • In Visual Studio
       – CPU
           » x86? x64? AnyCPU?
    • .NET Framework
    • Service Packs
    • Same architecture


              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Introduction
• Development Environment
  – Don’t do everything as local admin!
     • Follow proper account configuration from the SDK


• Developing to Deploy
  – Use the least amount of privileges
     • This will make admins happy
  – Web application deployment (/bin)
     • CAS policies

               email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

               Thinking SharePoint? Think Jornata.
Development
•   General Development Practices
•   Lists
•   Event Receivers
•   Web Parts
•   Unmanaged Code




              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Development
• General Development Practices
  – Dispose of Objects!
     • SPDisposeCheck
  – Test with multiple accounts/privileges
  – Strongly named assemblies
  – Separate high and low privileged DLLs
  – Do not mix .NET Framework versions
  – 64 bit code compatibility

             email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

             Thinking SharePoint? Think Jornata.
Development
• General Development Practices
  – Stay away from the database
     • USE THE API!
  – Use resource & language files
     • Do not hard code strings and labels
  – Caching when and where possible
     • msdn.microsoft.com/library/bb687949.aspx
  – CAS Policies
  – Safe Controls
              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Development
• General Development Practices
  – Use try{} catch{} finally{} blocks
  – Check for nulls in finally{} blocks with disposable
    objects before disposing
• Change defaults
  – Assembly Info
• Name it properly
  – Jornata.SharePoint.WebParts.Stuff

              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Development
• General Development Practices
  – Sign Controls
     • Do not password protect the SNK
  – Elevating Privileges
     • SPSecurity.RunWithElevatedPrivileges()
        – Clean, Validated, Secure data
        – Runs as System account
        – Write operations?
            » Preceeded by SPUtility|SPWeb.ValidateFormDigest
        – Must use new SPSite or SPWeb – not SPContext.Current


              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
You might be a SharePoint Developer if…




           email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

           Thinking SharePoint? Think Jornata.
Development
• Lists
   – Test queries before deployment!
   – U2U CAML Query Builder
      • Remove the <Query></Query> tags!
   – LINQ
   – Batch queries when possible




              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Development
• Lists
   – Do not use SPList.Items
      • Use SPList.GetItems(query)
      • Paginate (2000 items) – RowLimit
   – GetItemByID
      • Use SPList.GetitemByID
      • Not SPList.Items.GetItemByID




               email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

               Thinking SharePoint? Think Jornata.
Development
• Event Handlers
  – Do not instantiate SPWeb, SPSite, SPList, or
    SPListItem
  – Use what the properties give you
     • properties.OpenWeb()
        – Do not need to dispose
     • properties.ListItem
  – Bulk operations will not run event handlers
     • Ex: New list created – FieldAdding will not run

               email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

               Thinking SharePoint? Think Jornata.
Development
• Event Handlers
  – Connections
     • Make sure you code for external systems not being
       available
  – LOG ERRORS
     • Make it known why something went wrong




              Thinking SharePoint? Think Jornata.
Development
• Web Parts
  – Deploy to the Web Part Gallery
     • Easy to add to a page from there
  – AllowClose = false
     • Closing web parts = bad
     • X DOES NOT EQUAL DELETE
  – Use Properties – avoid hard coded values
  – HTMLEncode input values


              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Development
• Web Parts – In Code
  – EnsureChildControls
     • Ensure that the controls have been loaded before using
       them.




              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Development
• Unmanaged Code
  – JavaScript
     • Will this be used in more than one place?
     • Central Script repository (easy access)
     • Deployment to _layouts folder
        – More of a “managed” approach, more secure
        – Less flexible




              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Development
• Unmanaged Code
  – Content Editor Web Parts
     • Awesome, flexible web parts!
     • Use a library with versioning to link the WP to
        – Easier to manage
        – Versioning of “code”
  – Publishing Sites
     • Use content controls, not CEWPs!



               email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

               Thinking SharePoint? Think Jornata.
Development
• Unmanaged Code
  – Ghosted v. Unghosted pages
    • Uncustomized v. customized
    • Unghosted pages can have issues with upgrades
       – i.e. site definitions change with upgrades
    • Branding




              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
You might be a SharePoint Developer if…




           email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

           Thinking SharePoint? Think Jornata.
Development
• User Code Solutions (2010)
  – When possible
  – Forces better programming practices
  – Keeps the farm safe
     • Makes admins & managers happy
  – Admins can control
     • Makes them feel special




              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Development
•   USE SOLUTION PACKAGES!
•   USE SOLUTION PACKAGES!
•   USE SOLUTION PACKAGES!
•   USE SOLUTION PACKAGES!
•   USE SOLUTION PACKAGES!
•   USE SOLUTION PACKAGES!
•   USE SOLUTION PACKAGES!
•   USE SOLUTION PACKAGES!
             email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

            Thinking SharePoint? Think Jornata.
Resources
• Development Tools
  – Codeplex.com
    • Search SharePoint & Development
  – SharePointDevWiki.com
    • www.sharepointdevwiki.com/display/public/SharePoint
      +Development+Tools
  – SPDisposeCheck
    • code.msdn.microsoft.com/SPDisposeCheck



             email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

             Thinking SharePoint? Think Jornata.
Resources
• SDKs
  – 2010
    • Server and Foundation
         – http://msdn.microsoft.com/en-us/library/ee557253.aspx
  – 2007
    • WSS
         – http://msdn.microsoft.com/en-
           us/library/ms441339(office.12).aspx
    • MOSS 2007
         – http://msdn.microsoft.com/en-
           us/library/ms550992(office.12).aspx
                email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

                Thinking SharePoint? Think Jornata.
Resources
• General Development
  – Roger Lamb’s Blog
     • blogs.msdn.com/rogerla/
  – Patterns & Practices SharePoint Guidance
     • msdn.microsoft.com/en-us/library/dd203468.aspx
  – Using Disposable Objects
     • msdn.microsoft.com/en-
       us/library/aa973248(v=office.12).aspx



              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
Resources
• General Development
  – Working with Large Lists
     • go.microsoft.com/fwlink?LinkId=95450
  – SharePoint 2007 Best Practices Resource Center
     • technet.microsoft.com/en-
       us/office/sharepointserver/bb736746.aspx




              email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

              Thinking SharePoint? Think Jornata.
You… BEFORE session…




          email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

          Thinking SharePoint? Think Jornata.
You… AFTER session…




          email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro

          Thinking SharePoint? Think Jornata.
email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro
                                                                                                    37
Thinking SharePoint? Think Jornata.
Q&A
email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro
                                                                                                    38
Thinking SharePoint? Think Jornata.
•   Meets 2nd Wednesday/Month
•   6P – 8PM
•   Microsoft Waltham & Cambridge
•   http://www.bostonsharepointug.org
•   Twitter: @BASPUG / #BASPUG


            email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro
                                                                                                                39
            Thinking SharePoint? Think Jornata.
About Me
• Geoff Varosky
  – Jornata – www.jornata.com
     •   Director, Development & Evangelism
     •   Blogger, Speaker
     •   BASPUG Co-Founder
     •   SPS Boston Co-Organizer
  – Blog : www.sharepointyankee.com
  – Email: geoff.varosky@jornata.com
  – Twitter: @gvaro
  – LinkedIn & Facebook
                email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro
                                                                                                                    40
                Thinking SharePoint? Think Jornata.

More Related Content

What's hot

Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Paul Withers
 
Freelancing and side-projects on Rails
Freelancing and side-projects on RailsFreelancing and side-projects on Rails
Freelancing and side-projects on RailsJohn McCaffrey
 
Engage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPagesEngage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPagesJesse Gallagher
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIsmdawaffe
 
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
 
Untangling the web11
Untangling the web11Untangling the web11
Untangling the web11Derek Jacoby
 
Untangling spring week8
Untangling spring week8Untangling spring week8
Untangling spring week8Derek Jacoby
 
WordPress: Getting Under the Hood
WordPress: Getting Under the HoodWordPress: Getting Under the Hood
WordPress: Getting Under the HoodScott Taylor
 
2015 WordCamp Maine Keynote
2015 WordCamp Maine Keynote2015 WordCamp Maine Keynote
2015 WordCamp Maine KeynoteScott Taylor
 
Untangling spring week4
Untangling spring week4Untangling spring week4
Untangling spring week4Derek Jacoby
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuningJohn McCaffrey
 
eMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseeMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseScott Taylor
 
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
 
Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaGeorge Wilson
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web ApplicationsJohn McCaffrey
 
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
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portlanddmethvin
 
Engage 2019 Software documentation is fun if you have the right tools: Introd...
Engage 2019 Software documentation is fun if you have the right tools: Introd...Engage 2019 Software documentation is fun if you have the right tools: Introd...
Engage 2019 Software documentation is fun if you have the right tools: Introd...AndrewMagerman
 
Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Timothy Fisher
 
Play framework 2 : Peter Hilton
Play framework 2 : Peter HiltonPlay framework 2 : Peter Hilton
Play framework 2 : Peter HiltonJAX London
 

What's hot (20)

Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications
 
Freelancing and side-projects on Rails
Freelancing and side-projects on RailsFreelancing and side-projects on Rails
Freelancing and side-projects on Rails
 
Engage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPagesEngage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPages
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
 
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
 
Untangling the web11
Untangling the web11Untangling the web11
Untangling the web11
 
Untangling spring week8
Untangling spring week8Untangling spring week8
Untangling spring week8
 
WordPress: Getting Under the Hood
WordPress: Getting Under the HoodWordPress: Getting Under the Hood
WordPress: Getting Under the Hood
 
2015 WordCamp Maine Keynote
2015 WordCamp Maine Keynote2015 WordCamp Maine Keynote
2015 WordCamp Maine Keynote
 
Untangling spring week4
Untangling spring week4Untangling spring week4
Untangling spring week4
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuning
 
eMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseeMusic: WordPress in the Enterprise
eMusic: WordPress in the Enterprise
 
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
 
Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and Joomla
 
improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
 
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
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portland
 
Engage 2019 Software documentation is fun if you have the right tools: Introd...
Engage 2019 Software documentation is fun if you have the right tools: Introd...Engage 2019 Software documentation is fun if you have the right tools: Introd...
Engage 2019 Software documentation is fun if you have the right tools: Introd...
 
Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011Developing High Performance Web Apps - CodeMash 2011
Developing High Performance Web Apps - CodeMash 2011
 
Play framework 2 : Peter Hilton
Play framework 2 : Peter HiltonPlay framework 2 : Peter Hilton
Play framework 2 : Peter Hilton
 

Viewers also liked

CVNUG - Share Point Development
CVNUG - Share Point DevelopmentCVNUG - Share Point Development
CVNUG - Share Point Developmentryanaoliveira
 
Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthKashif Imran
 
SharePoint Permissions Overview
SharePoint Permissions OverviewSharePoint Permissions Overview
SharePoint Permissions OverviewFrancois Pienaar
 
SharePoint Security A to Z
SharePoint Security A to ZSharePoint Security A to Z
SharePoint Security A to ZSteve Goldberg
 
Solving business problems: No-code approach with SharePoint designer workflow...
Solving business problems: No-code approach with SharePoint designer workflow...Solving business problems: No-code approach with SharePoint designer workflow...
Solving business problems: No-code approach with SharePoint designer workflow...Bhakthi Liyanage
 
SharePoint Development(Lesson 5)
SharePoint Development(Lesson 5)SharePoint Development(Lesson 5)
SharePoint Development(Lesson 5)MJ Ferdous
 
SharePoint Permissions 101
SharePoint Permissions 101SharePoint Permissions 101
SharePoint Permissions 101Thomas Duff
 
Governance of content, permissions & apps in sharepoint 2013
Governance of content, permissions & apps in sharepoint 2013Governance of content, permissions & apps in sharepoint 2013
Governance of content, permissions & apps in sharepoint 2013Kashish Sukhija
 
SharePoint Security Management - Lessons Learned
SharePoint Security Management - Lessons LearnedSharePoint Security Management - Lessons Learned
SharePoint Security Management - Lessons LearnedBenjamin Niaulin
 
Best practices for Security and Governance in SharePoint 2013
Best practices for Security and Governance in SharePoint 2013Best practices for Security and Governance in SharePoint 2013
Best practices for Security and Governance in SharePoint 2013AntonioMaio2
 
SharePoint Permissions Worst Practices
SharePoint Permissions Worst PracticesSharePoint Permissions Worst Practices
SharePoint Permissions Worst PracticesBobby Chang
 
Best Practices for Security in Microsoft SharePoint 2013
Best Practices for Security in Microsoft SharePoint 2013Best Practices for Security in Microsoft SharePoint 2013
Best Practices for Security in Microsoft SharePoint 2013AntonioMaio2
 

Viewers also liked (12)

CVNUG - Share Point Development
CVNUG - Share Point DevelopmentCVNUG - Share Point Development
CVNUG - Share Point Development
 
Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuth
 
SharePoint Permissions Overview
SharePoint Permissions OverviewSharePoint Permissions Overview
SharePoint Permissions Overview
 
SharePoint Security A to Z
SharePoint Security A to ZSharePoint Security A to Z
SharePoint Security A to Z
 
Solving business problems: No-code approach with SharePoint designer workflow...
Solving business problems: No-code approach with SharePoint designer workflow...Solving business problems: No-code approach with SharePoint designer workflow...
Solving business problems: No-code approach with SharePoint designer workflow...
 
SharePoint Development(Lesson 5)
SharePoint Development(Lesson 5)SharePoint Development(Lesson 5)
SharePoint Development(Lesson 5)
 
SharePoint Permissions 101
SharePoint Permissions 101SharePoint Permissions 101
SharePoint Permissions 101
 
Governance of content, permissions & apps in sharepoint 2013
Governance of content, permissions & apps in sharepoint 2013Governance of content, permissions & apps in sharepoint 2013
Governance of content, permissions & apps in sharepoint 2013
 
SharePoint Security Management - Lessons Learned
SharePoint Security Management - Lessons LearnedSharePoint Security Management - Lessons Learned
SharePoint Security Management - Lessons Learned
 
Best practices for Security and Governance in SharePoint 2013
Best practices for Security and Governance in SharePoint 2013Best practices for Security and Governance in SharePoint 2013
Best practices for Security and Governance in SharePoint 2013
 
SharePoint Permissions Worst Practices
SharePoint Permissions Worst PracticesSharePoint Permissions Worst Practices
SharePoint Permissions Worst Practices
 
Best Practices for Security in Microsoft SharePoint 2013
Best Practices for Security in Microsoft SharePoint 2013Best Practices for Security in Microsoft SharePoint 2013
Best Practices for Security in Microsoft SharePoint 2013
 

Similar to Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurdles and Avoiding Pain in SharePoint Development

Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Geoff Varosky
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Geoff Varosky
 
The Ribbon UI and Custom Actions in SharePoint 2010
The Ribbon UI and Custom Actions in SharePoint 2010The Ribbon UI and Custom Actions in SharePoint 2010
The Ribbon UI and Custom Actions in SharePoint 2010Geoff Varosky
 
Jornata llc sps baltimore 2012 - share point branding
Jornata llc   sps baltimore 2012 - share point brandingJornata llc   sps baltimore 2012 - share point branding
Jornata llc sps baltimore 2012 - share point brandingjcsturges
 
What is share point sps_denver_final
What is share point sps_denver_finalWhat is share point sps_denver_final
What is share point sps_denver_finalM Allmond
 
Share Point Best Practices
Share Point Best PracticesShare Point Best Practices
Share Point Best Practicesguest17ee6d
 
Share Point Best Practices
Share Point Best PracticesShare Point Best Practices
Share Point Best PracticesJeremy Thake
 
Creating Custom Actions in SharePoint 2010
Creating Custom Actions in SharePoint 2010Creating Custom Actions in SharePoint 2010
Creating Custom Actions in SharePoint 2010Geoff Varosky
 
Top 10 Performance Tips for Making your Public Facing SharePoint 2010 Site Fa...
Top 10 Performance Tips for Making your Public Facing SharePoint 2010 Site Fa...Top 10 Performance Tips for Making your Public Facing SharePoint 2010 Site Fa...
Top 10 Performance Tips for Making your Public Facing SharePoint 2010 Site Fa...Kanwal Khipple
 
Spsnh geoff varosky - jornata - planning and configuring extranets in share...
Spsnh   geoff varosky - jornata - planning and configuring extranets in share...Spsnh   geoff varosky - jornata - planning and configuring extranets in share...
Spsnh geoff varosky - jornata - planning and configuring extranets in share...Geoff Varosky
 
Share point 2010 sp1 enterprise edition sps bos presentation no 4323234
Share point 2010 sp1 enterprise edition sps bos presentation no 4323234Share point 2010 sp1 enterprise edition sps bos presentation no 4323234
Share point 2010 sp1 enterprise edition sps bos presentation no 4323234Matthew Carter
 
Creating an Amazing Intranet
Creating an Amazing IntranetCreating an Amazing Intranet
Creating an Amazing Intranethaiyankhan
 
Planning and Configuring Extranets in SharePoint 2010 @ SharePoint Saturday N...
Planning and Configuring Extranets in SharePoint 2010 @ SharePoint Saturday N...Planning and Configuring Extranets in SharePoint 2010 @ SharePoint Saturday N...
Planning and Configuring Extranets in SharePoint 2010 @ SharePoint Saturday N...Geoff Varosky
 
Optimizing SharePoint 2010 for Internet sites
Optimizing SharePoint 2010 for Internet sitesOptimizing SharePoint 2010 for Internet sites
Optimizing SharePoint 2010 for Internet sitesKanwal Khipple
 
Modernize Solutions with SharePoint & the Power Platform
Modernize Solutions with SharePoint & the Power PlatformModernize Solutions with SharePoint & the Power Platform
Modernize Solutions with SharePoint & the Power PlatformJonathan Schultz
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Geoff Varosky
 
SPS Ottawa 2019: From the field: Modernize your SharePoint Intranet with Shar...
SPS Ottawa 2019: From the field: Modernize your SharePoint Intranet with Shar...SPS Ottawa 2019: From the field: Modernize your SharePoint Intranet with Shar...
SPS Ottawa 2019: From the field: Modernize your SharePoint Intranet with Shar...Nicolas Georgeault
 
Searching for SharePoint Analytics
Searching for SharePoint AnalyticsSearching for SharePoint Analytics
Searching for SharePoint AnalyticsJeff Fried
 

Similar to Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurdles and Avoiding Pain in SharePoint Development (20)

Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010
 
The Ribbon UI and Custom Actions in SharePoint 2010
The Ribbon UI and Custom Actions in SharePoint 2010The Ribbon UI and Custom Actions in SharePoint 2010
The Ribbon UI and Custom Actions in SharePoint 2010
 
Jornata llc sps baltimore 2012 - share point branding
Jornata llc   sps baltimore 2012 - share point brandingJornata llc   sps baltimore 2012 - share point branding
Jornata llc sps baltimore 2012 - share point branding
 
What is share point sps_denver_final
What is share point sps_denver_finalWhat is share point sps_denver_final
What is share point sps_denver_final
 
Share Point Best Practices
Share Point Best PracticesShare Point Best Practices
Share Point Best Practices
 
Share Point Best Practices
Share Point Best PracticesShare Point Best Practices
Share Point Best Practices
 
Creating Custom Actions in SharePoint 2010
Creating Custom Actions in SharePoint 2010Creating Custom Actions in SharePoint 2010
Creating Custom Actions in SharePoint 2010
 
Top 10 Performance Tips for Making your Public Facing SharePoint 2010 Site Fa...
Top 10 Performance Tips for Making your Public Facing SharePoint 2010 Site Fa...Top 10 Performance Tips for Making your Public Facing SharePoint 2010 Site Fa...
Top 10 Performance Tips for Making your Public Facing SharePoint 2010 Site Fa...
 
Spsnh geoff varosky - jornata - planning and configuring extranets in share...
Spsnh   geoff varosky - jornata - planning and configuring extranets in share...Spsnh   geoff varosky - jornata - planning and configuring extranets in share...
Spsnh geoff varosky - jornata - planning and configuring extranets in share...
 
Sharepoint Presentation
Sharepoint PresentationSharepoint Presentation
Sharepoint Presentation
 
Share point 2010 sp1 enterprise edition sps bos presentation no 4323234
Share point 2010 sp1 enterprise edition sps bos presentation no 4323234Share point 2010 sp1 enterprise edition sps bos presentation no 4323234
Share point 2010 sp1 enterprise edition sps bos presentation no 4323234
 
Creating an Amazing Intranet
Creating an Amazing IntranetCreating an Amazing Intranet
Creating an Amazing Intranet
 
Planning and Configuring Extranets in SharePoint 2010 @ SharePoint Saturday N...
Planning and Configuring Extranets in SharePoint 2010 @ SharePoint Saturday N...Planning and Configuring Extranets in SharePoint 2010 @ SharePoint Saturday N...
Planning and Configuring Extranets in SharePoint 2010 @ SharePoint Saturday N...
 
Optimizing SharePoint 2010 for Internet sites
Optimizing SharePoint 2010 for Internet sitesOptimizing SharePoint 2010 for Internet sites
Optimizing SharePoint 2010 for Internet sites
 
Modernize Solutions with SharePoint & the Power Platform
Modernize Solutions with SharePoint & the Power PlatformModernize Solutions with SharePoint & the Power Platform
Modernize Solutions with SharePoint & the Power Platform
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010
 
SPS Ottawa 2019: From the field: Modernize your SharePoint Intranet with Shar...
SPS Ottawa 2019: From the field: Modernize your SharePoint Intranet with Shar...SPS Ottawa 2019: From the field: Modernize your SharePoint Intranet with Shar...
SPS Ottawa 2019: From the field: Modernize your SharePoint Intranet with Shar...
 
Searching for SharePoint Analytics
Searching for SharePoint AnalyticsSearching for SharePoint Analytics
Searching for SharePoint Analytics
 
SharePoint Custom Development
SharePoint Custom DevelopmentSharePoint Custom Development
SharePoint Custom Development
 

More from Geoff Varosky

Using Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Using Azure Runbooks and Microsoft Flow to Automate SharePoint TasksUsing Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Using Azure Runbooks and Microsoft Flow to Automate SharePoint TasksGeoff Varosky
 
Automating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellAutomating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellGeoff Varosky
 
Automating Your Enterprise Application Deployments with PowerShell
Automating Your Enterprise Application Deployments with PowerShellAutomating Your Enterprise Application Deployments with PowerShell
Automating Your Enterprise Application Deployments with PowerShellGeoff Varosky
 
The Ribbon UI and Custom Actions in SharePoint 2010
The Ribbon UI and Custom Actions in SharePoint 2010The Ribbon UI and Custom Actions in SharePoint 2010
The Ribbon UI and Custom Actions in SharePoint 2010Geoff Varosky
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Geoff Varosky
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Geoff Varosky
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Geoff Varosky
 
Who? What? Where? Searching in SharePoint
Who? What? Where? Searching in SharePointWho? What? Where? Searching in SharePoint
Who? What? Where? Searching in SharePointGeoff Varosky
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Geoff Varosky
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Geoff Varosky
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Geoff Varosky
 
SharePoint Saturday Hartford - 01/29/11 - Creating Custom Actions in SharePoi...
SharePoint Saturday Hartford - 01/29/11 - Creating Custom Actions in SharePoi...SharePoint Saturday Hartford - 01/29/11 - Creating Custom Actions in SharePoi...
SharePoint Saturday Hartford - 01/29/11 - Creating Custom Actions in SharePoi...Geoff Varosky
 
SharePoint Saturday EMEA - The Ribbon UI and Custom Actions in SharePoint 2010
SharePoint Saturday EMEA - The Ribbon UI and Custom Actions in SharePoint 2010SharePoint Saturday EMEA - The Ribbon UI and Custom Actions in SharePoint 2010
SharePoint Saturday EMEA - The Ribbon UI and Custom Actions in SharePoint 2010Geoff Varosky
 
Creating Custom Actions in SharePoint 2010
Creating Custom Actions in SharePoint 2010Creating Custom Actions in SharePoint 2010
Creating Custom Actions in SharePoint 2010Geoff Varosky
 
Just Freakin' Work - Overcoming Hurdles and Avoiding Pain
Just Freakin' Work - Overcoming Hurdles and Avoiding PainJust Freakin' Work - Overcoming Hurdles and Avoiding Pain
Just Freakin' Work - Overcoming Hurdles and Avoiding PainGeoff Varosky
 
Creating Custom Actions in SharePoint 2010
Creating Custom Actions in SharePoint 2010Creating Custom Actions in SharePoint 2010
Creating Custom Actions in SharePoint 2010Geoff Varosky
 
From SharePoint Designer to Visual Studio - Prototyping and Deploying Solutio...
From SharePoint Designer to Visual Studio - Prototyping and Deploying Solutio...From SharePoint Designer to Visual Studio - Prototyping and Deploying Solutio...
From SharePoint Designer to Visual Studio - Prototyping and Deploying Solutio...Geoff Varosky
 
What's New for Developers in SharePoint 2010
What's New for Developers in SharePoint 2010What's New for Developers in SharePoint 2010
What's New for Developers in SharePoint 2010Geoff Varosky
 
Creating Custom Actions within SharePoint
Creating Custom Actions within SharePointCreating Custom Actions within SharePoint
Creating Custom Actions within SharePointGeoff Varosky
 
SharePoint Saturday Boston 2/27/10 - Whats New For Developers In SharePoint 2010
SharePoint Saturday Boston 2/27/10 - Whats New For Developers In SharePoint 2010SharePoint Saturday Boston 2/27/10 - Whats New For Developers In SharePoint 2010
SharePoint Saturday Boston 2/27/10 - Whats New For Developers In SharePoint 2010Geoff Varosky
 

More from Geoff Varosky (20)

Using Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Using Azure Runbooks and Microsoft Flow to Automate SharePoint TasksUsing Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Using Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
 
Automating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShellAutomating Enterprise Application Deployments with PowerShell
Automating Enterprise Application Deployments with PowerShell
 
Automating Your Enterprise Application Deployments with PowerShell
Automating Your Enterprise Application Deployments with PowerShellAutomating Your Enterprise Application Deployments with PowerShell
Automating Your Enterprise Application Deployments with PowerShell
 
The Ribbon UI and Custom Actions in SharePoint 2010
The Ribbon UI and Custom Actions in SharePoint 2010The Ribbon UI and Custom Actions in SharePoint 2010
The Ribbon UI and Custom Actions in SharePoint 2010
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010
 
Who? What? Where? Searching in SharePoint
Who? What? Where? Searching in SharePointWho? What? Where? Searching in SharePoint
Who? What? Where? Searching in SharePoint
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010
 
Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010Planning and Configuring Extranets in SharePoint 2010
Planning and Configuring Extranets in SharePoint 2010
 
SharePoint Saturday Hartford - 01/29/11 - Creating Custom Actions in SharePoi...
SharePoint Saturday Hartford - 01/29/11 - Creating Custom Actions in SharePoi...SharePoint Saturday Hartford - 01/29/11 - Creating Custom Actions in SharePoi...
SharePoint Saturday Hartford - 01/29/11 - Creating Custom Actions in SharePoi...
 
SharePoint Saturday EMEA - The Ribbon UI and Custom Actions in SharePoint 2010
SharePoint Saturday EMEA - The Ribbon UI and Custom Actions in SharePoint 2010SharePoint Saturday EMEA - The Ribbon UI and Custom Actions in SharePoint 2010
SharePoint Saturday EMEA - The Ribbon UI and Custom Actions in SharePoint 2010
 
Creating Custom Actions in SharePoint 2010
Creating Custom Actions in SharePoint 2010Creating Custom Actions in SharePoint 2010
Creating Custom Actions in SharePoint 2010
 
Just Freakin' Work - Overcoming Hurdles and Avoiding Pain
Just Freakin' Work - Overcoming Hurdles and Avoiding PainJust Freakin' Work - Overcoming Hurdles and Avoiding Pain
Just Freakin' Work - Overcoming Hurdles and Avoiding Pain
 
Creating Custom Actions in SharePoint 2010
Creating Custom Actions in SharePoint 2010Creating Custom Actions in SharePoint 2010
Creating Custom Actions in SharePoint 2010
 
From SharePoint Designer to Visual Studio - Prototyping and Deploying Solutio...
From SharePoint Designer to Visual Studio - Prototyping and Deploying Solutio...From SharePoint Designer to Visual Studio - Prototyping and Deploying Solutio...
From SharePoint Designer to Visual Studio - Prototyping and Deploying Solutio...
 
What's New for Developers in SharePoint 2010
What's New for Developers in SharePoint 2010What's New for Developers in SharePoint 2010
What's New for Developers in SharePoint 2010
 
Creating Custom Actions within SharePoint
Creating Custom Actions within SharePointCreating Custom Actions within SharePoint
Creating Custom Actions within SharePoint
 
SharePoint Saturday Boston 2/27/10 - Whats New For Developers In SharePoint 2010
SharePoint Saturday Boston 2/27/10 - Whats New For Developers In SharePoint 2010SharePoint Saturday Boston 2/27/10 - Whats New For Developers In SharePoint 2010
SharePoint Saturday Boston 2/27/10 - Whats New For Developers In SharePoint 2010
 

Recently uploaded

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Recently uploaded (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
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)
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurdles and Avoiding Pain in SharePoint Development

  • 1. Thinking SharePoint? Think Jornata. Just Freakin’ Work! Avoiding Common Hurdles in SharePoint Development Prepared for Prepared by Geoff Varosky Jornata 61-63 Chatham Street Jornata Fourth Floor Boston, MA 02109 Submitted on December 14, 2011
  • 2. About Me • Geoff Varosky – Jornata – www.jornata.com • Director, Development & Evangelism • Blogger, Speaker • BASPUG Co-Founder • SPS Boston Co-Organizer – Blog : www.sharepointyankee.com – Email: geoff.varosky@jornata.com – Twitter: @gvaro – LinkedIn & Facebook email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro 2 Thinking SharePoint? Think Jornata.
  • 3. You might be a SharePoint Developer if… email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 4. Agenda • Introduction • Development • Deployment • Resources • Q&A email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 5. Introduction • Types of Development • Development Tools • Development Environment • Developing to Deploy email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 6. Introduction • Types of Development – Unmanaged Code – Managed Code – Customization email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 7. Introduction • Development Tools – STSDEV (2007) • stsdev.codeplex.com – WSPBuilder (2007 & 2010) • wspbuilder.codeplex.com – CKS:DEV (2010) • cksdev.codeplex.com – SharePoint Designer email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 8. Introduction • Development Environment – Physical? – Virtual? – Desktop? – Dusty old PC under the desk? email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 9. Introduction • 2007 or 2010 – 64-bit (leaves room for upgrade) – >= 4G of RAM – Choice of Virtual Host • HyperV, VMWare, VirtualBox • Not much in the way of VirtualPC support – Create a base virtual image • SQL, Base SP install, Service Packs, Dev Tools • Visual Studio, SPD, etc. email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 10. Introduction • Development Environment – Follow the SDK (2010) • 64 bit • Desktop – Windows 7 – Vista (SP1+) – Http://msdn.microsoft.com/en-us/library/ee554869.aspx • Server 2008 email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 11. Introduction • Development Environment – Make sure your environment matches deployment targets! • In Visual Studio – CPU » x86? x64? AnyCPU? • .NET Framework • Service Packs • Same architecture email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 12. Introduction • Development Environment – Don’t do everything as local admin! • Follow proper account configuration from the SDK • Developing to Deploy – Use the least amount of privileges • This will make admins happy – Web application deployment (/bin) • CAS policies email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 13. Development • General Development Practices • Lists • Event Receivers • Web Parts • Unmanaged Code email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 14. Development • General Development Practices – Dispose of Objects! • SPDisposeCheck – Test with multiple accounts/privileges – Strongly named assemblies – Separate high and low privileged DLLs – Do not mix .NET Framework versions – 64 bit code compatibility email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 15. Development • General Development Practices – Stay away from the database • USE THE API! – Use resource & language files • Do not hard code strings and labels – Caching when and where possible • msdn.microsoft.com/library/bb687949.aspx – CAS Policies – Safe Controls email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 16. Development • General Development Practices – Use try{} catch{} finally{} blocks – Check for nulls in finally{} blocks with disposable objects before disposing • Change defaults – Assembly Info • Name it properly – Jornata.SharePoint.WebParts.Stuff email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 17. Development • General Development Practices – Sign Controls • Do not password protect the SNK – Elevating Privileges • SPSecurity.RunWithElevatedPrivileges() – Clean, Validated, Secure data – Runs as System account – Write operations? » Preceeded by SPUtility|SPWeb.ValidateFormDigest – Must use new SPSite or SPWeb – not SPContext.Current email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 18. You might be a SharePoint Developer if… email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 19. Development • Lists – Test queries before deployment! – U2U CAML Query Builder • Remove the <Query></Query> tags! – LINQ – Batch queries when possible email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 20. Development • Lists – Do not use SPList.Items • Use SPList.GetItems(query) • Paginate (2000 items) – RowLimit – GetItemByID • Use SPList.GetitemByID • Not SPList.Items.GetItemByID email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 21. Development • Event Handlers – Do not instantiate SPWeb, SPSite, SPList, or SPListItem – Use what the properties give you • properties.OpenWeb() – Do not need to dispose • properties.ListItem – Bulk operations will not run event handlers • Ex: New list created – FieldAdding will not run email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 22. Development • Event Handlers – Connections • Make sure you code for external systems not being available – LOG ERRORS • Make it known why something went wrong Thinking SharePoint? Think Jornata.
  • 23. Development • Web Parts – Deploy to the Web Part Gallery • Easy to add to a page from there – AllowClose = false • Closing web parts = bad • X DOES NOT EQUAL DELETE – Use Properties – avoid hard coded values – HTMLEncode input values email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 24. Development • Web Parts – In Code – EnsureChildControls • Ensure that the controls have been loaded before using them. email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 25. Development • Unmanaged Code – JavaScript • Will this be used in more than one place? • Central Script repository (easy access) • Deployment to _layouts folder – More of a “managed” approach, more secure – Less flexible email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 26. Development • Unmanaged Code – Content Editor Web Parts • Awesome, flexible web parts! • Use a library with versioning to link the WP to – Easier to manage – Versioning of “code” – Publishing Sites • Use content controls, not CEWPs! email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 27. Development • Unmanaged Code – Ghosted v. Unghosted pages • Uncustomized v. customized • Unghosted pages can have issues with upgrades – i.e. site definitions change with upgrades • Branding email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 28. You might be a SharePoint Developer if… email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 29. Development • User Code Solutions (2010) – When possible – Forces better programming practices – Keeps the farm safe • Makes admins & managers happy – Admins can control • Makes them feel special email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 30. Development • USE SOLUTION PACKAGES! • USE SOLUTION PACKAGES! • USE SOLUTION PACKAGES! • USE SOLUTION PACKAGES! • USE SOLUTION PACKAGES! • USE SOLUTION PACKAGES! • USE SOLUTION PACKAGES! • USE SOLUTION PACKAGES! email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 31. Resources • Development Tools – Codeplex.com • Search SharePoint & Development – SharePointDevWiki.com • www.sharepointdevwiki.com/display/public/SharePoint +Development+Tools – SPDisposeCheck • code.msdn.microsoft.com/SPDisposeCheck email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 32. Resources • SDKs – 2010 • Server and Foundation – http://msdn.microsoft.com/en-us/library/ee557253.aspx – 2007 • WSS – http://msdn.microsoft.com/en- us/library/ms441339(office.12).aspx • MOSS 2007 – http://msdn.microsoft.com/en- us/library/ms550992(office.12).aspx email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 33. Resources • General Development – Roger Lamb’s Blog • blogs.msdn.com/rogerla/ – Patterns & Practices SharePoint Guidance • msdn.microsoft.com/en-us/library/dd203468.aspx – Using Disposable Objects • msdn.microsoft.com/en- us/library/aa973248(v=office.12).aspx email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 34. Resources • General Development – Working with Large Lists • go.microsoft.com/fwlink?LinkId=95450 – SharePoint 2007 Best Practices Resource Center • technet.microsoft.com/en- us/office/sharepointserver/bb736746.aspx email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 35. You… BEFORE session… email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 36. You… AFTER session… email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro Thinking SharePoint? Think Jornata.
  • 37. email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro 37 Thinking SharePoint? Think Jornata.
  • 38. Q&A email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro 38 Thinking SharePoint? Think Jornata.
  • 39. Meets 2nd Wednesday/Month • 6P – 8PM • Microsoft Waltham & Cambridge • http://www.bostonsharepointug.org • Twitter: @BASPUG / #BASPUG email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro 39 Thinking SharePoint? Think Jornata.
  • 40. About Me • Geoff Varosky – Jornata – www.jornata.com • Director, Development & Evangelism • Blogger, Speaker • BASPUG Co-Founder • SPS Boston Co-Organizer – Blog : www.sharepointyankee.com – Email: geoff.varosky@jornata.com – Twitter: @gvaro – LinkedIn & Facebook email: geoff.varosky@jornata.com | web: www.jornata.com | blog: www.sharepointyankee.com | twitter: @gvaro 40 Thinking SharePoint? Think Jornata.