Course Description
In this course, students learn core skills that are common to almost all SharePoint development activities. These include working with the server-side and client-side object models, developing and deploying features, solutions, and apps, managing identity and permissions, querying and updating list data, managing taxonomy, using workflow to manage business processes, and customizing the user interface.PrerequisitesBefore attending this course, students must have:
A working knowledge of using Visual Studio 2010 or Visual Studio 2012 to develop solutions. A basic working knowledge of SharePoint solution development, either in SharePoint 2013 or in earlier versions of SharePoint. A working knowledge of Visual C# and the .NET Framework 4.5. A basic understanding of ASP.NET and server-side web development technologies, including request/response and the page lifecycle. A basic understanding of AJAX and asynchronous programming techniques. A basic working knowledge of client-side web technologies including HTML, CSS, and JavaScript. Familiarity with approaches to authentication and authorization, including claims-based authentication. Agenda
The course is intended for professional developers who develop solutions for SharePoint products and technologies in a team-based, medium-sized to large development environment. While some familiarity with SharePoint solution development is required, candidates are not expected to have prior experience with the new features in SharePoint Server 2013.The ideal candidate is a technical lead with at least four years of SharePoint and web development experience. The candidate is responsible for designing custom code for projects that are deployed to or interact with SharePoint environments. This includes:
Selecting an appropriate approach and building customizations in SharePoint. Creating and implementing a strategy for solution packaging, deployment, and upgrading. Identifying SharePoint data and content structures for customizations. Performing diagnostics and debugging. Planning and designing applications for scalability and performance. Identifying and mitigating performance issues of customizations. Understanding authentication and authorization. Experience with Windows PowerShell. Broad familiarity with SharePoint capabilities. Familiarity with Online Services such as Azure and SharePoint Online. At Course CompletionAfter completing this course, students will be able to:
Design and manage features and solutions. Develop code for custom server-side components. Manage and customize authentication and authorization. Create custom sites and lists and manage the site lifecycle. Explain the capabilities and design choices for SharePoint apps. Use the client-side object model and the REST API. Develop provider-hosted and auto-hosted SharePoint apps. Distribute and deploy SharePoint apps. Create custom workflows to automate business processes. Use fields and content types to manage taxonomy. Customize the appearance and behavior of user interface elements. Customize navigation and site branding. Course OutlineModule 1: SharePoint as a Developer PlatformThis module examines different approaches that can be used to develop applications with SharePoint Server 2013 the scenarios in which each approach might be appropriate.Lessons Introducing the SharePoint Developer LandscapeChoosing Approaches to SharePoint DevelopmentUnderstanding SharePoint 2013 Deployment and Execution ModelsLab: Comparing Web Parts and App PartsCreating and Deploying a SharePoint Web PartCreating and Deploying a SharePoint App PartAfter completing this module, students will be able to:Describe the opportunities for developers in SharePoint Server 2013.Choose appropriate execution models for custom SharePoint components.Choose appropriate deployment models for custom SharePoint components.Module 2: Working with SharePoint ObjectsThis module introduces the server-side SharePoint object model and how the core classes relate to sites and collections. The server-side SharePoint object model provides a core set of classes that represent different items in the logical architecture of a SharePoint deployment. Students also learn how manage permissions for server-side code.Lessons Understanding the SharePoint Object HierarchyWorking with Sites and WebsWorking with Execution ContextsLab: Working with Sites and WebsWorking with Sites and Webs in Managed CodeWorking with Sites and Webs in Windows PowerShell.Lab: Working with Execution ContextsRunning Code with Elevated PrivilegesAdapting Content for Different User PermissionsAfter completing this module, students will be able to:Explain the purpose of key classes in the server-side SharePoint object model.Programmatically interact with SharePoint site collections and sites.Adapt solutions for users with different levels of permissions.Module 3: Working with Lists and LibrariesThis module explains how to interact with lists and libraries. Students learn about how to work with lists and libraries programmatically using the server-side SharePoint object model and how to use query classes and LINQ to SharePoint to query and retrieve data from SharePoint lists. Student also learn how to efficiently work with lists that contain large numbers of items.Lessons Using List and Library ObjectsQuerying and Retrieving List DataWorking with Large ListsLab: Querying and Retrieving List DataQuerying List ItemsUpdating List ItemsLab: Working with Large ListsUsing the ContentIterator ClassAfter completing this module, students will be able to:Interact with lists and libraries programmatically.Query and retrieve list data.Perform operations efficiently on large lists.Module 4: Designing and Managing Features and SolutionsThis module examines creating and deploying custom Developing a SharePoint solutions and features. The students also learn how and when to use sandbox solutions.Lessons Working with FeaturesDeploying SolutionsWorking with Sandboxed SolutionsLab: Working with Farm SolutionsCreate a Farm SolutionCreate a FeatureUpgrade a SolutionLab: Working with Sandboxed SolutionsCreate a Solution ValidatorAfter completing this module, students will be able to:Describe the structure and use cases of a Feature.Explain how to create a farm solution. Explain how to create a sandboxed solution.Module 5: Working with Server-Side CodeThis module describes how to develop and deploy Web Parts and event receivers in a solution.Lessons Developing Web PartsUsing Event ReceiversUsing Timer JobsStoring Configuration DataLab: Working with Server-Side CodeDeveloping an Event ReceiverUpdating a Web PartCreating a Timer JobAfter completing this module, students will be able to:Describe the process for developing a web part.Use event receivers to handle SharePoint events.Use timer jobs to perform out of process, and scheduled operations.Store and manipulate configuration data for custom components.Module 6: Managing Identity and PermissionsThis module describes how manage permissions through code and customize authentication using custom claims providers.Lessons Understanding Identity Management in SharePoint 2013Managing Permissions in SharePoint 2013Configuring Forms-Based AuthenticationCustomizing the Authentication ExperienceLab: Managing Permissions Programmatically in SharePoint 2013Managing List Permissions ProgrammaticallyLab: Creating and Deploying a Custom Claims ProviderCreating a Custom Claims ProviderSupporting Search and Resolve in a Claims ProviderDeploying and Testing a Claims ProviderAfter completing this module, students will be able to:Describe how authentication and identity management work in SharePoint 2013.Verify and manage permissions programmatically in SharePoint 2013.Create and configure custom membership providers and role managers for forms-based authentication.Create claims providers and customize the sign-in experience.Module 7: Managing Custom Components and Site LifecyclesThis module discusses planning and organizing sites and lists. The students also learn how to create custom component definitions and templates.Lessons Component OverviewDefining Custom ListsDefining Custom SitesManaging SharePoint SitesLab: Managing Custom Components and Site LifecyclesCreating a Site DefinitionCreating a List DefinitionDeveloping an Event ReceiverAfter completing this module, students will be able to:Explain the SharePoint component hierarchy.Define and provision custom listsDefine and provision custom sites.Manage the SharePoint site lifecycleModule 8: Introducing Apps for SharePointThis module introduces the SharePoint App, a new way to customize SharePoint functionality with SharePoint Server 2013. Lessons Overview of Apps for SharePointDeveloping Apps for SharePointLab: Creating a Site Suggestions AppCreating a New SharePoint AppUsing the Client-Side Object ModelAfter completing this module, students will be able to:Describe SharePoint apps and compare them to SharePoint farm solutions and sandboxed solutions.Describe how to develop apps for SharePoint 2013 that work on-premises and in the cloud.Module 9: Client-Side SharePoint DevelopmentThis module describes how to use JavaScript Client Object Model (CSOM), managed code CSOM and the REST API to build SharePoint Apps. Lessons Using the Client-Side Object Model for JavaScriptUsing the REST API with JavaScriptLab: Using the REST API with JavaScriptCreating List RelationshipsAdd Vote RecordingDisplay Votes for Each SuggestionAfter completing this module, students will be able to:Use the client-side object model for JavaScript to interact with a SharePoint deployment.Use the REST API with JavaScript or C# to interact with a SharePoint deployment.Use the client-side object model for managed code to interact with a SharePoint deployment.Module 10: Developing Remote Hosted SharePoint AppsThis module examines the difference between provider hosted Apps and Remote Hosted Apps. The students will also create and deploy a Provider Hosted App. Lessons Overview of Remote Hosted AppsConfiguring Remote Hosted AppsDeveloping Remote Hosted AppsLab: Configuring a Provider Hosted SharePoint AppConfiguring An Server to Server Trust RelationshipCreating a Provider Hosted AppLab: Developing a Provider Hosted SharePoint AppWorking with SharePoint DataUsing the Chrome ControlAfter completing this module, students will be able to:Describe how remote-hosted apps work and how to configure the permissions and cross-domain calls that they may require.Configure apps for hosting on Windows Azure or remote servers.Develop apps for hosting on Windows Azure or remote servers.Module 11: Publishing and Distributing AppsThis module introduces the App Catalog so users to locate, purchase, and install apps easily. The students learn how to package and publish Apps to the App Catalog.Lessons Understanding the App Management ArchitectureUnderstanding App PackagesPublishing AppsInstalling, Updating, and Uninstalling AppsLab: Publishing an App to a Corporate CatalogCreating an App CatalogCreating an App PackagePublishing an App PackageLab: Installing, Updating, and Uninstalling AppsInstalling an AppUpgrading an AppRemoving an AppAfter completing this module, students will be able to:Explain how SharePoint manages app publishing and distribution.Describe the contents of an app package.Publish apps to a corporate catalog or the Office Marketplace.Install, update, and uninstall apps.Module 12: Automating Business ProcessesThis module explains how to create workflows and workflow actions using Visio 2013, SharePoint Designer 2013 and Visual Studio 2012.Lessons Understanding Workflow in SharePoint 2013Building Workflows by using Visio 2013 and SharePoint Designer 2013Developing Workflows in Visual Studio 2012Lab: Building Workflows in Visio 2013 and SharePoint Designer 2013Creating Workflows by Using VisioEditing Workflows by Using SharePoint DesignerLab: Creating Workflow Actions in Visual Studio 2012Creating Custom Workflow ActionsUsing a Custom Workflow in SharePoint DesignerAt the end of this module, student will be able to:Describe the architecture and capabilities of workflow in SharePoint 2013.Create declarative workflows in Visio 2013 and SharePoint Designer 2013.Create and deploy custom workflows by using Visual Studio 2012.
Module 13: Managing TaxonomyThis module explains the importance of a good taxonomy in SharePoint and working with the components of the taxonomy. The students also see how to tie event receivers to the taxonomy.Lessons Managing Taxonomy in SharePoint 2013Working with Content TypesWorking with Advanced Features of Content TypesLab: Working with Content TypesCreate a System to Capture Vacation RequestsLab: Working with Advanced Features of Content TypesCreating an Event Receiver AssemblyRegistering an Event Receiver with a Site Content TypeAfter completing this module, student will be able to:Work with taxonomy building blocks in SharePoint 2013. Create and configure content types declaratively and programmatically.Work with advanced features of content types.Module 14: Customizing User Interface ElementsThis module explains different ways of customizing the SharePoint user interface, such as adding buttons to the ribbon or modifying the appearance of list views.Lessons Working with Custom ActionsUsing Client-Side User Interface ComponentsCustomizing the SharePoint List User InterfaceLab: Using the Edit Control Block to Launch an AppConfiguring an App to Display Customer OrdersUse a Custom Action to Launch an AppLab: Using jQuery to Customize the SharePoint List User InterfaceCreating a Custom List ViewAfter completing this module, students will be able to:Use custom actions to modify the SharePoint user interface.Use JavaScript to work with client-side SharePoint user interface components.Describe how to modify the appearance and behavior of list views and forms.Module 15: Working with Branding and NavigationThis module explains the changes in SharePoint Server 2013 to branding, designing, publishing and navigating sites. The students also learn how to create devise independent sites standard web technologies, such as HTML, CSS, and JavaScript.Lessons Creating and Applying ThemesBranding and Designing Publishing SitesTailoring Content to Platforms and DevicesConfiguring and Customizing NavigationLab: Branding and Designing Publishing SitesCreating SharePoint Master PagesBuilding Master Page FunctionalityPublishing and Applying Design AssetsLab: Configuring Farm-Wide NavigationCreating a Custom Site Map ProviderAfter completing this module, students will be able to:Create and apply themes to SharePoint sites.Create publishing site design assets such as master pages and page layouts.Use device channels and image renditions to adapt content for different devices.Configure and customize the navigation experience for publishing sites.