{"id":1043,"date":"2014-08-01T10:18:49","date_gmt":"2014-08-01T16:18:49","guid":{"rendered":"https:\/\/toddbaginski.com\/blog\/?p=1043"},"modified":"2014-08-01T10:18:49","modified_gmt":"2014-08-01T16:18:49","slug":"office-365-developer-patterns-practices","status":"publish","type":"post","link":"https:\/\/toddbaginski.com\/blog\/office-365-developer-patterns-practices\/","title":{"rendered":"Office 365 Developer Patterns &#038; Practices"},"content":{"rendered":"<p>Many years ago it was a lot of fun and a real privilege to contribute to the <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ff770300.aspx\">SharePoint 2010 Patterns and Practices<\/a> project. During the last couple of months I had the opportunity to work on the new <a href=\"GitHub.com\/OfficeDev\">Office 365 Developer Patterns and Practices<\/a> project as well.\u00a0 \ud83d\ude42\u00a0 This time around, my team and I contributed the following\u00a05 samples to the latest release.\u00a0\u00a0 The Office 365 Developer Patterns and Practices contains <strong>a lot of really handy, real world patterns and code examples<\/strong> you can learn from, reference, <strong>or just straight rip off <\/strong>to implement all sorts of goodness in SharePoint.\u00a0 Don&#8217;t miss it!\u00a0 You can read more about this latest release on the O365 Developer Blog <a href=\"http:\/\/blogs.office.com\/2014\/07\/29\/office-365-development-patterns-practices-launched\/\">here<\/a>.<\/p>\n<p>Here&#8217;s a little bit about each sample we made and links to download them.<\/p>\n<p><strong>Branding.ClientSideRendering<\/strong> &#8211; <a href=\"https:\/\/github.com\/OfficeDev\/PnP\/tree\/master\/Samples\/Branding.ClientSideRendering\">https:\/\/github.com\/OfficeDev\/PnP\/tree\/master\/Samples\/Branding.ClientSideRendering<\/a><\/p>\n<p>This sample shows how to customize a field type with Client-Side Rendering (also called CSR, JS Link) technology in SharePoint 2013.\u00a0 We built this sample from a previous MSDN sample you can read me about in the scenario documentation.\u00a0 We extended the previous sample to deploy all of the components necessary to implement Client-Side Rendering via the remote provisioning pattern.<\/p>\n<p><strong>Branding.DisplayTemplates<\/strong> &#8211; <a href=\"https:\/\/github.com\/OfficeDev\/PnP\/tree\/master\/Samples\/Branding.DisplayTemplates\">https:\/\/github.com\/OfficeDev\/PnP\/tree\/master\/Samples\/Branding.DisplayTemplates<\/a><\/p>\n<p>This sample demonstrates different ways to use Display Templates to render a hero image and content rotator in a Content By Search Web Part.\u00a0 In this sample you can see how to make Display Templates using Responsive Web Design (RWD), Device Channels, and good old fashioned HTML and JavaScript.\u00a0 Desktop web browsers, iPads, and iPhones are targeted in the mobile examples.<\/p>\n<p><strong>Core.DataStorageModels<\/strong> &#8211; <a href=\"https:\/\/github.com\/OfficeDev\/PnP\/tree\/master\/Samples\/Core.DataStorageModels\">https:\/\/github.com\/OfficeDev\/PnP\/tree\/master\/Samples\/Core.DataStorageModels<\/a><\/p>\n<p>This provider-hosted sample application for SharePoint demonstrates the differences, advantages, and disadvantages between different data storage patterns associated with the App Model and how they are built.\u00a0 It also illustrates limitations associated with certain data storage components that should be considered when deciding which data storage components to use when building with the App Model.\u00a0 This is quite a sample which contains a LOT of remote provisioning for many different components in the host web and the app web.\u00a0 This is a very interactive sample which includes functionality that allows you to &#8216;break&#8217; SharePoint by exceeding different threshold limits associated with host and app webs.<\/p>\n<p><strong>Workflow.CallCustomService<\/strong> &#8211; <a href=\"https:\/\/github.com\/OfficeDev\/PnP\/tree\/master\/Samples\/Workflow.CallCustomService\">https:\/\/github.com\/OfficeDev\/PnP\/tree\/master\/Samples\/Workflow.CallCustomService<\/a><\/p>\n<p>This sample shows how to create a workflow that calls a custom web service that updates SharePoint list data.\u00a0 This is one of the simplest patterns you can use to implement a web service which authenticates to SharePoint.<\/p>\n<p><strong>Workflow.CallServiceUpdateSPViaProxy<\/strong> &#8211; <a href=\"https:\/\/github.com\/OfficeDev\/PnP\/tree\/master\/Samples\/Workflow.CallServiceUpdateSPViaProxy\">https:\/\/github.com\/OfficeDev\/PnP\/tree\/master\/Samples\/Workflow.CallServiceUpdateSPViaProxy<\/a><\/p>\n<p>This sample shows how to create a workflow that calls a custom web service that updates SharePoint list data via a web proxy.\u00a0 This is definitely a more complex pattern.\u00a0 Just like the previous Workflow sample, you can use this pattern to\u00a0implement a web service which authenticates to SharePoint.<\/p>\n<p>Happy coding and\u00a0keep your head up; there&#8217;s only 79 days to go until the Ski Lifts start turning again! \ud83d\ude42 \ud83d\ude42 \ud83d\ude42<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Many years ago it was a lot of fun and a real privilege to contribute to the SharePoint 2010 Patterns and Practices project. During the last<span class=\"excerpt-hellip\"> [\u2026]<\/span><\/p>\n","protected":false},"author":1,"featured_media":1055,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[101,103,102,96,88,104,97,99],"tags":[41,5,6,60,59,54,45,7,68,74,72,9],"class_list":["post-1043","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","category-cloud","category-community","category-mobile","category-office","category-office-365","category-sharepoint","category-sharepoint-2013","tag-azure","tag-helpful-code","tag-how-to-sharepoint","tag-ipad","tag-iphone","tag-mobile","tag-o365","tag-sharepoint","tag-sharepoint-2013","tag-sharepoint-apps","tag-sharepoint-hosted","tag-workflow"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/toddbaginski.com\/blog\/wp-json\/wp\/v2\/posts\/1043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/toddbaginski.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/toddbaginski.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/toddbaginski.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/toddbaginski.com\/blog\/wp-json\/wp\/v2\/comments?post=1043"}],"version-history":[{"count":15,"href":"https:\/\/toddbaginski.com\/blog\/wp-json\/wp\/v2\/posts\/1043\/revisions"}],"predecessor-version":[{"id":1059,"href":"https:\/\/toddbaginski.com\/blog\/wp-json\/wp\/v2\/posts\/1043\/revisions\/1059"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/toddbaginski.com\/blog\/wp-json\/wp\/v2\/media\/1055"}],"wp:attachment":[{"href":"https:\/\/toddbaginski.com\/blog\/wp-json\/wp\/v2\/media?parent=1043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/toddbaginski.com\/blog\/wp-json\/wp\/v2\/categories?post=1043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/toddbaginski.com\/blog\/wp-json\/wp\/v2\/tags?post=1043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}