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

Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: 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
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: 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
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.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.