28
Wake up!

SharePoint for ASP.Net Developers

Embed Size (px)

DESCRIPTION

The market share for SharePoint has grown in leaps and bounds over the last few years, leading to many developers being told that they are now SharePoint developers. Developing for SharePoint is a strange new world; we will cover what’s new, what’s the same, the top things that every SharePoint developer should know, and a few things to make every new developer’s life easier.

Citation preview

Page 1: SharePoint for ASP.Net Developers

Wake up!

Page 2: SharePoint for ASP.Net Developers

SharePoint for ASP.Net Developers

(It’s gonna be ok, really)

Page 3: SharePoint for ASP.Net Developers

Who are you?

Page 4: SharePoint for ASP.Net Developers

Me:

LiquidHub Solution ArchitectSharePoint ArchitectDeveloperFatherVirginia Tech HokieGamerWorld Famous Jungle Cruise Skipper (ret.)

Page 5: SharePoint for ASP.Net Developers

SharePoint for the ASP.Net Developer

• What’s different?• What’s the same?• What tools do I need?• 10 things every SharePoint developer should

know• How to get your code rejected by your

SharePoint Architect(s)• Resources

Page 6: SharePoint for ASP.Net Developers

• You get a LOT of functionality for free– Federated Search– Excel Data Services– Business Connectivity Services– Single Sign-On– Etc.

What’s different?

• 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.

LOT

Page 7: SharePoint for ASP.Net Developers

What’s different?

• Website Structure– Web Application → Site Collection → S.C. Root Web → Subwebs

• Deployment– Code → Assembly → Feature (usually) → Package (.WSP)

• Fea ture /ˈfitʃər/ -noun⋅1. A functional unit of SharePoint functionality, scoped at a Farm, Web

Application, Site Collection, or Web level

• Packages– First added to the server farm– Then, deployed to individual web applications (or globally)

Page 8: SharePoint for ASP.Net Developers

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

Page 9: SharePoint for ASP.Net Developers

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 Office SharePoint Server 2007 SDK– BDC definition editor– Workflow samples and lots more

• 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)

Page 10: SharePoint for ASP.Net Developers

Add-Ins: SharePoint vs. Visual Studio

WSPBuilderSTSDev WSPBuilder

WSPBuilder Visual Studio 2010 Tools for SharePoint Development

SharePoint 2007 SharePoint 2010

VS

200

8V

S 2

010

Page 11: SharePoint for ASP.Net Developers

Things every developer should know

Page 12: SharePoint for ASP.Net Developers

10 Things Every SharePoint Developer Should Know

10.Whenever possible, avoid creating custom Site Definitions

Page 13: SharePoint for ASP.Net Developers

10 Things Every SharePoint Developer Should Know

9. Solution packages are NOT side-by-side, versioned deployments

Page 14: SharePoint for ASP.Net Developers

10 Things Every SharePoint Developer Should Know

8. Web.config changes should be made in code, not by hand

• SPWebConfigModification

Page 15: SharePoint for ASP.Net Developers

10 Things Every SharePoint Developer Should Know

7. SharePoint Designer can be the enemy of performance

Page 16: SharePoint for ASP.Net Developers

10 Things Every SharePoint Developer Should Know

6. Out of the box master & layout pages should never be modified

Page 17: SharePoint for ASP.Net Developers

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="javascript">…</script>

Not OK (CEWP or page content):

<a href="#" onclick="javascript: …">link</a>

List data is always stripped of JavaScript

Page 18: SharePoint for ASP.Net Developers

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

Page 19: SharePoint for ASP.Net Developers

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}

Page 20: SharePoint for ASP.Net Developers

10 Things Every SharePoint Developer Should Know

2. Many of the out-of-box web part classes are inheritable (but not all)

Page 21: SharePoint for ASP.Net Developers

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

Page 22: SharePoint for ASP.Net Developers

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

Page 23: SharePoint for ASP.Net Developers

Resources

• SPDisposeCheck Utility– http://code.msdn.microsoft.com/SPDisposeCheck

• StackOverflow/SharePointOverflow– http://stackoverflow.com– http://sharepointoverflow.com

• Twitter (really)– RSS feed for tweets w/ SharePoint links:

http://hrl.mn/SPTweetLinks• Your local SharePoint User Group

Page 24: SharePoint for ASP.Net Developers

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/jbtaylor/5304492399/• http://www.flickr.com/photos/drsethery/5359342958/

Page 25: SharePoint for ASP.Net Developers

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 (July 30, 2011)• PAX East 2011

Page 26: SharePoint for ASP.Net Developers

Questions?

Page 27: SharePoint for ASP.Net Developers

One more thing…

Page 28: SharePoint for ASP.Net Developers

Packers win, 24 - 21