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