Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Getting Started with Microsoft  Office 365 SharePoint Online                  Development                         Jeremy T...
Jeremy ThakeAvePoint LabsAuthor                           Chief Architect         @jthake    #SPLive360
Agenda•   Application Development Platform•   Getting Started•   Sandboxed Solutions•   App Model•   Migrating Apps@jthake...
ApplicationDevelopmentPlatform@jthake   #SPLive360
Building Blocks•   Authentication & Authorization•   Customization & Personalization•   Branding•   Disaster recovery•   A...
No more…•   installing SQL•   configuring IIS•   deploying components to server•   writing service level agreements•   wri...
List Building Blocks•   Attachments•   Metadata•   Versioning•   Views•   Full API: Web services, REST, RSS…•   Security• ...
What to worry about•   UI pattern consistency•   Don‟t bend it the wrong way    – If you question whether its right, it pr...
Getting Started@jthake   #SPLive360
Approaches              • Web parts on pages  Web UI      • Site / List Settings              • BrandingSharePoint Designe...
Don’t work directly on Production•   Develop in Development environments!!!•   Great for version 1.0, not so great for 1.1...
Development Environment•   Must have Visual Studio where SharePoint    installed for server side development•   Use a “dev...
Use a virtual machine•   VMWare Workstation/Sun VirtualBox on    Windows 7•   HyperV on dual boot Windows Server 2008    R...
Visual Studio 2012   •   Create Silverlight Web Parts   •   Publish SharePoint Solutions to Remote       SharePoint Server...
Cloud-hosted Apps devenvironment                                Development Machine             SharePoint 2013           ...
Evolution of customizations inSharePoint                                           _api   _vti_bin   _vti_bin             ...
Sandboxedsolutions@jthake   #SPLive360
Sandboxed Solutions   •   Restricted API due to multi-tenant       environment   •   No LOB: Web Services, ATOM, ODBC   • ...
*smile*•   Office 365 customizations•   Faster deploys    – Doesn’t require IISRESET as assemblies not in GAC•   No Farm a...
WARNING•   No “Full trust proxies” in Office 365•   Only Site Collection Admins can activate if    managed code in package...
TIPS•   Use Sandbox Solutions (default) as can‟t    use Full-Trust Solutions in SharePoint    2010 Online•   Won‟t get com...
Web Part example•   displayed data from a list•   perform a SharePoint database query•           the sandbox    20 databas...
App Model@jthake   #SPLive360
App Model scenarios                                      SharePoint                    SharePoint                         ...
App Versioning                                    SharePoint                    SharePoint                             Azu...
Application IFRAME@jthake                #SPLive360
OAuth Authentication                                    SharePoint                    SharePoint                          ...
DeploymentModel               Office 365   Permissions     On-Prem   PermissionsSharePointSandbox             YES         ...
Compare customization models                               Full trust WSP     Sandboxed WSP               AppsWhere does s...
Migrating Apps@jthake   #SPLive360
Web UI•   Side by side windows    – Site Settings    – List Settings    – Page content•   Windows Explorer    – Document C...
SharePoint Designer•   Side by side across windows    – Business Connectivity Services    – Web Parts    – Content Types• ...
Sandboxed Solutions•   Will work in SharePoint 2010 Online just    like Standard or Enterprise@jthake            #SPLive360
Full-Trust Solutions•   APIs used•   Switch to “Sandboxed” and just try it•   Run FxCop against it•   Change assembly targ...
Custom crap!•   Remember, no access to servers AT ALL•   So everything must be in Solution    Package•   No manual deploym...
3rd Party Tools•   Graphical User Interface to move Site    Collection artifacts and content•   Lots of players    – AvePo...
References•   Sandboxed Solutions•   App Model•   Office 365 Developer Hub•   NothingButSharePoint.com•   Critical Path se...
Q&A          Jeremy Thake          www.NothingButSharePoint.com          THU 09:15          Acing Application Lifecycle Ma...
Upcoming SlideShare
Loading in …5
×

Getting started with microsoft office 365 share point online development

3,866 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Getting started with microsoft office 365 share point online development

  1. 1. Getting Started with Microsoft Office 365 SharePoint Online Development Jeremy Thake Chief Architect Level: Intermediate@jthake #SPLive360
  2. 2. Jeremy ThakeAvePoint LabsAuthor Chief Architect @jthake #SPLive360
  3. 3. Agenda• Application Development Platform• Getting Started• Sandboxed Solutions• App Model• Migrating Apps@jthake #SPLive360
  4. 4. ApplicationDevelopmentPlatform@jthake #SPLive360
  5. 5. Building Blocks• Authentication & Authorization• Customization & Personalization• Branding• Disaster recovery• Availability• Site collections & Sub sites@jthake #SPLive360
  6. 6. No more…• installing SQL• configuring IIS• deploying components to server• writing service level agreements• writing disaster recovery plans@jthake #SPLive360
  7. 7. List Building Blocks• Attachments• Metadata• Versioning• Views• Full API: Web services, REST, RSS…• Security• Event Receivers• Workflow• Publishing@jthake #SPLive360
  8. 8. What to worry about• UI pattern consistency• Don‟t bend it the wrong way – If you question whether its right, it probably isn’t• Performance considerations• Monitoring – Resource Usage – No ULS logs, Event Viewer@jthake #SPLive360
  9. 9. Getting Started@jthake #SPLive360
  10. 10. Approaches • Web parts on pages Web UI • Site / List Settings • BrandingSharePoint Designer • Business Connectivity Services • Visual Studio “Lite” NAPA • Not a web browser! VisualStudio 2010 • Debugging @jthake #SPLive360
  11. 11. Don’t work directly on Production• Develop in Development environments!!!• Great for version 1.0, not so great for 1.1 whilst live users in environment – 24 hour SLA on recovering a site collection• SharePoint Designer encourages this @jthake #SPLive360
  12. 12. Development Environment• Must have Visual Studio where SharePoint installed for server side development• Use a “development” site collection in your Office 365 SharePoint 2010 Online environment – Client Object Model• Install SharePoint 2010 locally on Windows 7@jthake #SPLive360
  13. 13. Use a virtual machine• VMWare Workstation/Sun VirtualBox on Windows 7• HyperV on dual boot Windows Server 2008 R2/Windows 7• HyperV on Windows 8 RC• Steal some of IT private cloud to run one ;- )• Azure, CloudShare, fpWeb, Rackspace@jthake #SPLive360
  14. 14. Visual Studio 2012 • Create Silverlight Web Parts • Publish SharePoint Solutions to Remote SharePoint Servers • Test SharePoint Performance by Using Profiling Tools • Create Sandboxed Visual Web Parts • Support for JavaScript Debugging and IntelliSense for JavaScripthttp://msdn.microsoft.com/en-us/library/ee290856(VS.110).aspx @jthake #SPLive360
  15. 15. Cloud-hosted Apps devenvironment Development Machine SharePoint 2013 Azure Development env Web application App 2 App 2 Site Collection Web SQL Root Site Sites App 1 App 2 App 3 IIS Web Server App 3 App 3 App 3 Web Windows SQL Service SQL 2012 Visual Studio 2012@jthake #SPLive360
  16. 16. Evolution of customizations inSharePoint _api _vti_bin _vti_bin Declarative Application s& Workflow Events CSOM _api CSOM@jthake #SPLive360
  17. 17. Sandboxedsolutions@jthake #SPLive360
  18. 18. Sandboxed Solutions • Restricted API due to multi-tenant environment • No LOB: Web Services, ATOM, ODBC • No file access • Current site collection scope only • No Page object (JavaScript reg) • Deployed via Site Collection Site Settingshttp://msdn.microsoft.com/en-us/library/gg615454.aspx @jthake #SPLive360
  19. 19. *smile*• Office 365 customizations• Faster deploys – Doesn’t require IISRESET as assemblies not in GAC• No Farm access required@jthake #SPLive360
  20. 20. WARNING• No “Full trust proxies” in Office 365• Only Site Collection Admins can activate if managed code in packages• Site Collection Admins can deploy these!• Can use Silverlight to overcome some restrictions@jthake #SPLive360
  21. 21. TIPS• Use Sandbox Solutions (default) as can‟t use Full-Trust Solutions in SharePoint 2010 Online• Won‟t get compile time warnings on incorrect API usage, only on upload to SharePoint – Use the FxCop rules http://o365fxcoprules.codeplex.com/@jthake #SPLive360
  22. 22. Web Part example• displayed data from a list• perform a SharePoint database query• the sandbox 20 database queries = 1 resource point• is turned displayed 20 times off• site collection would have used 1 until daily resource point of 300 points available• reset could be displayed 6,000 times in a 24 hour period@jthake #SPLive360
  23. 23. App Model@jthake #SPLive360
  24. 24. App Model scenarios SharePoint SharePoint Azure Web application App 2 App 2 Site Collection Website SQL Root Site s App 1 App 2 App 3 SP Auto Provider IIS Web Server Hosted Hosted Hosted App 3 App 3 Web SQL Sub Site App 3 Provider Hosted@jthake #SPLive360
  25. 25. App Versioning SharePoint SharePoint Azure Web application App 2 App 2 Site Collection Website SQL Root Site s V1.1 V2.0 V1.0 V1.1 V1.0 V2.0 App 1 App 2 App 3 V1.0 V1.0 V1.0 IIS Web Server App 3 App 3 App 3 Web Web SQL V1.0 V1.1 V1.1 Sub Site App 3 V1.0 V1.1@jthake #SPLive360
  26. 26. Application IFRAME@jthake #SPLive360
  27. 27. OAuth Authentication SharePoint SharePoint Azure Web application App 2 App 2 Site Collection Website SQL Root Site s App 1 App 2 App 3 IIS Web Server App 3 App 3 Web SQL Site Collection Root Site App 3@jthake #SPLive360
  28. 28. DeploymentModel Office 365 Permissions On-Prem PermissionsSharePointSandbox YES YESFull Trust NO YESSharePoint Hosted YES OAuth via ACS YES High-Trust (S2S)RemoteProvider Hosted YES OAuth via ACS YES High-Trust (S2S)• Developer hosts app• Could be in AzureAuto-Hosted YES OAuth via ACS NO• App can deploy website and SQL Azure db• Hosted in Office 365 Azure Cloud @jthake #SPLive360
  29. 29. Compare customization models Full trust WSP Sandboxed WSP AppsWhere does server-side code Farm (User Code Farm (w3wp.exe) Anywhere but farmrun? Service)Scalable Based on farm Limited HighlyWho installs and removes Farm admin Site collection admin UsersSupported in SP2013 Yes Yes YesSharePoint Online compatible No Yes YesAuto-hosting compatible No No YesRequires local farm for Yes Yes NodevelopersRemote deployment and No No Yesdebugging from Visual Studio @jthake #SPLive360
  30. 30. Migrating Apps@jthake #SPLive360
  31. 31. Web UI• Side by side windows – Site Settings – List Settings – Page content• Windows Explorer – Document Content@jthake #SPLive360
  32. 32. SharePoint Designer• Side by side across windows – Business Connectivity Services – Web Parts – Content Types• Copy & Paste across windows – Master Pages – Page Layouts – Workflows (no custom activities)@jthake #SPLive360
  33. 33. Sandboxed Solutions• Will work in SharePoint 2010 Online just like Standard or Enterprise@jthake #SPLive360
  34. 34. Full-Trust Solutions• APIs used• Switch to “Sandboxed” and just try it• Run FxCop against it• Change assembly target for Visual Studio 2010@jthake #SPLive360
  35. 35. Custom crap!• Remember, no access to servers AT ALL• So everything must be in Solution Package• No manual deployment of files to file server• We‟ve been teaching you this since „06@jthake #SPLive360
  36. 36. 3rd Party Tools• Graphical User Interface to move Site Collection artifacts and content• Lots of players – AvePoint – Axceler – MetaVis – MetaLogix@jthake #SPLive360
  37. 37. References• Sandboxed Solutions• App Model• Office 365 Developer Hub• NothingButSharePoint.com• Critical Path setup guide – Configure apps in your dev environment• SharePoint 2013 Developer site sign up@jthake #SPLive360
  38. 38. Q&A Jeremy Thake www.NothingButSharePoint.com THU 09:15 Acing Application Lifecycle Management jeremy.thake@avepoint.com @jthake www.linkedin.com/in/jeremythake@jthake #SPLive360

×