SharePoint Learning Catalog A complete guide to the InnerWorkings SharePoint learning catalog, with prerequisites, learning goals & technical levels for each course.
Table of Contents Beginning SharePoint Development 2 Module 1: Building your Lab Environment 3 Module 2: SharePoint Development 4 Module 3: Development Core Concepts 5 Module 4: Data Development 6 Module 5: Behavior Development 7 Module 6: Layout 8 SharePoint Data View Web Part Basics 9 Module 1: Working with the DVWP Common Dialogs 10 Module 2: DVWP Code Structure 11 Module 3: Common XSL tags and their uses 12 Module 4: Useful DVWP development techniques 13 Module 5: Working with frequently used utility templates 14 Module 6: Variable-driven DVWPs 15 SharePoint Designer 2010 Workflow 16 Module 1: Understanding Workflows and Behavior Development in SharePoint 17 Module 2: Introduction to SharePoint Designer and SharePoint Designer Workflows 18 Module 3: Workflow Forms, Variables, and Parameters 19 Module 4: Collecting Data from Users 20 Module 5: Controlling the Flow of Processes 21 Module 6: An End-to-end Workflow Solution 22 Developing SharePoint Content Types 23 Module 1: Introducing Cool 24 Module 2: Taxonomy and Metadata 25 Module 3: Behavior 26 Module 4: Layout 27 Module 5: Folders and Custom XML Documents 28 Introduction to the SharePoint Web Services 29 Module 1: Introduction to Web Services, SharePoint Style 30 Module 2: Working with List Data: The Lists Web Service 31 Module 3: Site Collection Traversal & the Webs Web Service 32 Module 4: Working with People 33 Module 5: Search and Workflow 34 Module 6: New Web Services in SharePoint 2010 35 Enhancing the SharePoint User Experience with jquery 36 Module 1: Installing jquery in your Environment 37 Module 2: Basic jquery Selectors and DOM Manipulation 38 Module 3: Understanding the Pages SharePoint Renders 39 Module 4: Basic Page Manipulation with jquery 40 Module 5: jquery s AJAX with SharePoint s Web Services 41 Module 6: Tying it all Together - Complex jquery Usage 42
Introduction This document provides a comprehensive view of the InnerWorkings SharePoint Learning Catalog to help you identify which courses are of greatest relevance to your specific learning needs. Each SharePoint module description includes the following: a summary of the course and what it will enable you to do a description of the target audience a description of the key learning outcomes Core development tasks a checklist of SharePoint related activities a listing of the SharePoint topics covered what you ll need to know before getting started Drill details key information such as system requirements, duration, and level What the levels mean Each SharePoint learning module has a rating that indicates the technical level of the topics covered. The overall level classification scheme is as follows: 1 2 3 Suitable for beginners and above. This level addresses introductory SharePoint concepts. Suitable for programmers with basic (or higher) SharePoint skills. This level addresses mid-level SharePoint concepts and administrative features. Suitable for programmers with intermediate (or higher) SharePoint skills. This level addresses advanced SharePoint concepts and administrative features. 1
Beginning SharePoint Development This SharePoint course contains the following modules: Building your Lab Environment SharePoint Development Development Core Concepts Data Development Behavior Development Layout Your presenter - Bjørn Furuknap Bjørn Christoffer Thorsmæhlum Furuknap is a senior solutions architect, published author of Building the SharePoint User Experience, speaker, and passionate SharePointaholic. He has been doing software development professionally for 16 years for small companies as well as multinational corporations. He has also been a teacher at a college-level school, teaching programming and development to aspiring students, a job that inspired him to begin teaching what he has learned and learns every day. 2
Module 1: Building your Lab Environment The topic for this Module is your development environment, including installing and configuring your SharePoint lab machine.throughout your SharePoint development career, you will need to install SharePoint in a wide variety of configurations. Understanding how to do so and understanding the consequences of the various choices you make is very important to building the right setup for your requirements. This module is for new SharePoint developers. The topic for this Module is your development environment, including installing and configuring your SharePoint lab machine.throughout your SharePoint development career, you will need to install SharePoint in a wide variety of configurations. Understanding how to do so and understanding the consequences of the various choices you make is very important to building the right setup for your requirements. What your environment must have What you may want SharePoint installation requirements Installing SharePoint Configuring SharePoint for first use What you need to read The main book for this course is the USP Journal issue Beginning SharePoint Development, which is referred to in all modules of the course. Please download this to make sure you have it available for reading assignments. Beginning SharePoint Development 3 hours 2 BSPDEV-SP-M1 We assume you have a working knowledge of SharePoint. Also, previous ASP.NET or.net development experience is a great advantage, but we do provide lectures that give you the basic knowledge required. 3
Module 2: SharePoint Development Tools are a very important aspect of SharePoint development. As for any artisan, the toolbox employed largely defines the tasks you perform. However, there is a potential downside to tools usage as well. If you learn only to use your tools, you don t learn how to perform the tasks themselves. Your skills are therefore potentially less flexible; or, as I say in a number of situations, if all you have is a hammer, all problems look like nails. We're not just going to talk tools, though. We ll also start looking at the various tasks that SharePoint developers may face. This module is for SharePoint developers who have completed module 1 and have set up a lab environment. In this module, you ll get an overview of what SharePoint is all about, and we ll will explore SharePoint development tools and understand why and when to use tools. SharePoint Front Page SharePoint Create Page SharePoint Pages Site settings Best practice for using tools SharePoint Manager WSPBuilder What you need to read The main book for this course is the USP Journal issue Beginning SharePoint Development. For this module, you should read chapter 2, SharePoint as Birds See It. Beginning SharePoint Development 3.5 hours 2 BSPDEV-SP-M2 We assume you have a working knowledge of SharePoint and have set up a lab environment. Previous ASP.NET or.net development experience is an advantage, but not essential. 4
Module 3: Development Core Concepts in.net is just one part of developing for SharePoint. In this module, you'll also learn about CAML, features and solutions. We ll look at ASP.NET. It is not an essential skill at this stage in the course, but it makes sense to build on the object oriented programming and SharePoint object model introduction from module 2. This module is for beginning SharePoint developers who have completed modules 1 and 2, and have set up a lab environment. In this module, we'll expand on core concepts that you need to learn as a SharePoint developer. You ll start looking at code and coding principles in SharePoint. And you ll also be introduced to ASP.NET development. CAML Features Solutions The.NET object model ASP.NET development What you need to read The main book for this course is the USP Journal issue Beginning SharePoint Development. For this module, you should read chapter 3, Core Concepts. We assume you have a working knowledge of SharePoint and have set up a lab environment. Previous ASP.NET or.net development experience is an advantage, but not essential. Beginning SharePoint Development 7 hours 2 BSPDEV-SP-M3 5
Module 4: Data Development Now the time has come to look at the core of SharePoint: Data. Data development is a major component of SharePoint development and is vital to making sure your solution work both effectively and efficiently. This module is for beginning SharePoint developers who have completed modules 1, 2 and 3, and have begun development of the List Controller application. We'll look at the various options we have in SharePoint 2007 for working with data. We'll talk a lot about lists and content types and you should have a good understanding of these concepts by the end of this week. Creating a content type Content type features Content type ID List Instances List Definitions Speeding development with common tools What you need to read The main book for this course is the USP Journal issue Beginning SharePoint Development. For this module, you should read chapter 4, Data Development. We assume you have a working knowledge of SharePoint and have set up a lab environment. Previous ASP.NET or.net development experience is an advantage, but not essential. Beginning SharePoint Development 6 hours 2 BSPDEV-SP-M4 6
Module 5: Behavior Development Behave! We'll be cracking the whip in this module, teaching our data to behave how we want. Does that sound weird, 'teaching our data to behave'? Well, it is. I mean, data is just bits and bytes, right? It's not supposed to do anything. Well, that used to be the case prior to SharePoint. You put your information somewhere and if you wanted something to happen, you did it yourself. Want someone to know that you put a new document somewhere? Send them an email. Want permissions set on that document? Right-click in Windows Explorer, choose Properties, then go to the Security tab and make your changes. Want to retire the document after a few months? Well, you better remember when and where you put those documents there so you know which ones to remove. With workflow and the other behavior options we have in SharePoint, these kinds of tasks can now be automated. This module is for beginning SharePoint developers who have completed modules 1 to 4, and have begun development of the List Controller application. In this module, we'll look at two options for managing and automating workflows: event receivers and SharePoint Designer Workflows. Feature receivers Content type event receivers SharePoint Designer Workflows Workflows Strong naming.net assemblies What you need to read The main book for this course is the USP Journal issue Beginning SharePoint Development. For this module, you should read chapter 5, Behavior. Beginning SharePoint Development 6 hours 2 BSPDEV-SP-M5 We assume you have a working knowledge of SharePoint and have set up a lab environment. Previous ASP.NET or.net development experience is an advantage, but not essential. 7
Module 6: Layout Are looks everything? Throughout this course, you've been exposed to many of the common scenarios that SharePoint developers may face. It is, of course, only a start; there's far more to learn about all of the topics we've covered. You ll find many more SharePoint courses in your InnerWorkings catalog. Now, however, we'll wrap up by making everything look very pretty. It's time to look at looks and some of the options we have for visual development. This module is for beginning SharePoint developers who have completed modules 1 to 5, and have begun development of the List Controller application. In this module, we're looking at web parts and custom actions, two important aspects of developing the user experience in SharePoint. Web parts Creating a SharePoint Web part Custom actions Replacing a custom action Dynamic custom actions What you need to read The main book for this course is the USP Journal issue Beginning SharePoint Development. For this module, you should read chapter 6, Visual Stuff. We assume you have a working knowledge of SharePoint and have set up a lab environment. Previous ASP.NET or.net development experience is an advantage, but not essential. Beginning SharePoint Development 5 hours 2 BSPDEV-SP-M6 8
SharePoint Data View Web Part Basics This SharePoint course contains the following modules: Working with the DVWP Common Dialogs DVWP Code Structure Common XSL tags and their uses Useful DVWP development techniques Working with frequently used utility templates Variable-driven DVWPs Your Presenter - Marc D. Anderson Marc is the Co-Founder and President of Sympraxis Consulting LLC, located in the Boston suburb of Newton Centre, MA, USA. Sympraxis focuses on enabling collaboration throughout the enterprise using the SharePoint application platform. Marc has almost 30 years of experience in technology professional services and software development. Over a wideranging career in consulting as well as line manager positions, Marc has proven himself as a problem solver and leader who can solve difficult technology problems for organizations across a wide variety of industries and organization sizes. Prior to cofounding Sympraxis Consulting, Marc was Director of Operations at Jornata, a Boston-based technology consulting firm, which was acquired by Vitale, Caturano (now Caturano and Company) in the Spring of 2008. Marc has also held positions at world-class services firms such as Bain and Company, KPMG, and Renaissance Solutions. Marc also had a real job, managing the systems for Staples' delivery business as it grew from a $30 million experiment to an over $1 billion main line business unit. Having started his career as an assembly language and FORTRAN programmer, Marc truly knows what life is like in the trenches and brings that perspective to bear for all of his clients. Marc has a Bachelors of Arts in Computer Mathematics from the University of Pennsylvania and graduated from Phillips Exeter Academy in Exeter, NH. Lately, aside from client work, Marc has been: Developer of the jquery Library for SharePoint Web Services (SPServices) Faculty member at the USPJA Academy Frequent contributing author at EndUserSharePoint.com Blogging at Marc D Anderson s blog Trying to rid the world of bad SharePoint implementations. 9
Module 1: Working with the DVWP Common Dialogs The Data View Web Part: as with everything, you need to start somewhere. We will start with the options you have to configure a Data View Web Part using the Common Dialogs in SharePoint Designer 2007. This module is for SharePoint developers who are new to the DVWP, though may have some experience with SharePoint development. We will go through many of the Common Dialogs for the DVWP in SharePoint Designer 2007, not just to use them to reach an end result, but to understand what they do under-thecovers to make the DVWP work. DataSource types Common Data View Dialogs: Filter and Sort Common Data View Dialogs: Paging and Edit Columns Common Data View Dialogs: Change layout We assume you have a working knowledge of SharePoint. The course Beginning SharePoint Development would be a solid basis for this course. Also, previous ASP.NET or.net development experience is an advantage, but is not required. SharePoint Data View Web Part Basics 6 hours 2 DVWP101-SP-M1 10
Module 2: DVWP Code Structure We will look at the main parts of a Data View Web Part from an underlying code perspective. While the DVWP can do very useful things by simply using the Common Dialogs through the UI, you can create far more powerful solutions by working directly with the underlying code. Many people stop at the Common Dialogs with DVWPs, but since DVWPs are XSL-driven, you can do real development to make them accomplish almost anything you can imagine, assuming you have the underlying data you need in accessible DataSources. This module is for SharePoint developers who have completed module 1 and have built the SharePoint constructs from the Module 1 assignment. We will show you the main parts of the XML that make up a Data View Web Part. While we touch on some of the specific XSL tags, the goal of these lessons is to familiarize you with the important piece parts of DVWPs, and how they interact with each other and with the rest of SharePoint. DVWP code structure overview ParameterBindings and Datafields code XSL to display content XSL for a form We assume you have a working knowledge of SharePoint. Also, previous ASP.NET or.net development experience is an advantage. SharePoint Data View Web Part Basics 5 hours 2 DVWP101-SP-M2 11
Module 3: Common XSL tags and their uses This module provides an extensive overview of the available XSL tags that you can use in DVWPs, as well as many of the most useful XPath functions. This module is for SharePoint developers who have completed modules 1 and 2, and have SharePoint constructs from the assignments in the lab environment. We ll look at the most common XSL tags used in DVWPs and how they fit together to allow you to construct solutions with DVWPs. The most commonly used XSL tags: <xsl-template> <xsl:call-template> <xsl:with-param> <xsl:param> <xsl:variable> <xsl:for-each> <xsl:sort> <xsl:if> <xsl:choose> <xsl:when> <xsl:otherwise> <xsl:value-of> <xsl:comment> <xsl:text> <xsl:attribute> <xsl:import> and some of the most useful XPath functions. SharePoint Data View Web Part Basics 5 hours 2 DVWP101-SP-M3 We assume you have a working knowledge of SharePoint. Also, previous ASP.NET or.net development experience is an advantage. 12
Module 4: Useful DVWP development techniques So far, we've focused on the rudiments of the DVWP: what the main components are, how they fit together, how you can work with each, etc. In this module, we will look at some techniques that let you do some really cool things that otherwise would require custom managed code. We'll do this by looking at AggregateDataSources, CrossList DVWPs, and custom CAML. This module is for SharePoint developers who have completed modules 1, 2, and 3, and have SharePoint constructs from the assignments in the lab environment. We ll look at techniques allow you work with multiple databases, pull items from multiple lists, and also at some good reasons to consider a Middle Tier development strategy. AggregateDataSource CrossList DVWPs Custom CAML We assume you have a working knowledge of SharePoint. Also, previous ASP.NET or.net development experience is an advantage. SharePoint Data View Web Part Basics 5.5 hours 2 DVWP101-SP-M4 13
Module 5: Working with frequently used utility templates One of the biggest beefs you will hear with DVWPs is that there is no portability or reusability. In this topic, we will cover some techniques that prove some of those concerns to be moot. This module is for SharePoint developers who have completed modules 1-4, and have SharePoint constructs from the assignments in the lab environment. By using modular programming techniques and storing reusable templates centrally, we can approach XSL development for DVWPs just as we would any other programming language, building reusable code "nuggets". Modular programming Reusable XSL templates Codeplex open source project Recursive templates We assume you have a working knowledge of SharePoint. Also, previous ASP.NET or.net development experience is an advantage. SharePoint Data View Web Part Basics 5 hours 2 DVWP101-SP-M5 14
Module 6: Variable-driven DVWPs Variable-driven DVWPs allow you to present information in a different way based on user selections, column values, or even who the actual user is. This starts to get you into the realm of real personalization and can also help with business intelligence and dashboarding. By passing values into the page on the Query String, you can have your DVWPs act differently, whether it means pulling up different content, formatting that content conditionally, sorting the content, etc. In this topic, we will look at some of these techniques, specifically by enhancing the out of the box list forms. This module is for SharePoint developers who have completed modules 1-5. Variable-driven DVWPs allow you to present information in a different way based on user selections, column values, or even who the actual user is. This starts to get you into the realm of real personalization and can also help with business intelligence and dashboarding. By passing values into the page on the Query String, you can have your DVWPs act differently, whether it means pulling up different content, formatting that content conditionally, sorting the content, etc. In this topic, we will look at some of these techniques, specifically by enhancing the out of the box list forms. Using Query String parameters to alter what you display in your DVWP Customizing the values stored in forms by passing values from page to page Creating simple "wizard"-like process flow SharePoint Data View Web Part Basics 3 hours 2 DVWP101-SP-M6 We assume you have a working knowledge of SharePoint. Also, previous ASP.NET or.net development experience is an advantage. 15
SharePoint Designer 2010 Workflow This SharePoint course contains the following modules: Understanding Workflows and Behavior Development in SharePoint Introduction to SharePoint Designer and SharePoint Designer Workflows Workflow Forms, Variables, and Parameters Collecting Data from Users Controlling the Flow of Processes An End-to-end Workflow Solution Your presenter - Bjørn Furuknap Bjørn Christoffer Thorsmæhlum Furuknap is a senior solutions architect, published author of Building the SharePoint User Experience, speaker, and passionate SharePointaholic. He has been doing software development professionally for 16 years for small companies as well as multinational corporations. He has also been a teacher at a college-level school, teaching programming and development to aspiring students, a job that inspired him to begin teaching what he has learned and learns every day. 16
Module 1: Understanding Workflows and Behavior Development in SharePoint When workflow was introduced in SharePoint 2007 (WSS3 and MOSS), a whole new world opened up that had previously been available only to a select few. Suddenly, it became easy for organizations to formalize their business processes and introduce better control and flexibility in how they wanted their business to run. Throughout this course, we will explore many of the options available to organizations looking to implement BPM. SharePoint Designer offers a simple way of understanding what business process management is all about, with a learning curve as gentle as the hills of Denmark. This module is targeted at beginners, meaning you don't need any prior experience with anything beyond a basic knowledge of SharePoint. However, there will be interesting material even if you have worked with workflow in previous versions of SharePoint Designer. In his first module, we will primarily focus on learning general business process management (BPM) concepts and explore what and how BPM is used in organizations. We'll pick up on core vocabulary and definitions, look at various types of workflow, and discuss how BPM and workflow can and should be used. Sequential and State Machine workflows Site and List workflows Actions Branches Workflow step Variables Initiation parameter Workflow forms What you need to read The main book for this course is the USP Journal issue SharePoint Designer 2010 Workflows, which is referred-to in all modules of the course. Please download this to make sure you have it available for reading assignments. SharePoint Designer 2010 Workflow 3.5 hours 2 SPD2010WF-SP-M1 We assume you have a working knowledge of SharePoint. 17
Module 2: Introduction to SharePoint Designer and Share- Point Designer Workflows What is your workflow life cycle? We talked in Module 1 about the soft skills of behavior development, but stopped before the fifth step, which is implementation. In this and the remaining modules, we're going to focus on that implementation, all based on building a single workflow. Maintaining a workflow development project for weeks is not uncommon. For example, if your workflow has multiple components or stages of development, you may need feedback and testing of intermediate stages of your workflow. This module is targeted at beginners with a basic knowledge of SharePoint, and who have completed module 1 of this course. It s not necessary, but you ll benefit from having experience with SharePoint Designer. We'll start by exploring SharePoint Designer and creating our first 'Hello world' type workflow. We'll get an overview of the interface in SharePoint Designer and then get our feet wet creating one of my favorite workflows, the 'Notify administrator' workflow. SharePoint Designer workflows List workflows Reusable workflows Site workflows Workflow editing Setting up a workflow Setting workflow activities Publishing a workflow What you need to read The main book for this course is the USP Journal issue SharePoint Designer 2010 Workflows, which is referred-to in all modules of the course. Please download this to make sure you have it available for reading assignments. SharePoint Designer 2010 Workflow 2.5 hours 2 SPD2010WF-SP-M2 We assume you have a working knowledge of SharePoint. 18
Module 3: Workflow Forms, Variables, and Parameters If you have never done any kind of programming before, the idea of variables and parameters may seem foreign. However, if you think of parameters as input to a process (who will approve, why should they approve, by what date must they approve, and so on), it may make more sense. We ll look at variables and also at forms and form design. This module is targeted at beginners with a basic knowledge of SharePoint, and who have completed modules 1 and 2 of this course. It s not necessary for success, but you ll benefit from having experience with SharePoint Designer. In this module, we are focusing on forms, variables, and parameters. These concepts are important because they enable us to gather and manipulate data within our process. Initiation form Parameters Editing forms Editing workflow: Add or Change Lookup Working with variables Renaming variables What you need to read The main book for this course is the USP Journal issue SharePoint Designer 2010 Workflows, which is referred-to in all modules of the course. Please download this to make sure you have it available for reading assignments. SharePoint Designer 2010 Workflow 6.5 hours 2 SPD2010WF-SP-M3 We assume you have a working knowledge of SharePoint. 19
Module 4: Collecting Data from Users The topics of this module's lectures are collecting data from users and using that data in your workflow. This is a very, very common task in all but completely automatic processes. In SharePoint, those completely automatic processes are rare, so it pays to pay attention to what you learn this week. This module is targeted at beginners with a basic knowledge of SharePoint, and who have completed modules 1, 2 and 3. It s not necessary, but you ll benefit from having experience with SharePoint Designer. We ll look at the details of using data fields to collect data (as you might expect!) Data fields Workflow lookup Secondary lookup Publish and verify What you need to read The main book for this course is the USP Journal issue SharePoint Designer 2010 Workflows, which is referred-to in all modules of the course. Please download this to make sure you have it available for reading assignments. We assume you have a working knowledge of SharePoint. SharePoint Designer 2010 Workflow 6 hours 2 SPD2010WF-SP-M4 20
Module 5: Controlling the Flow of Processes How can you rule the world if you can't control your processes? So far, our processes have run very simply from start to finish. That's OK for the simplest of workflows, but if we want to map real-life processes, we need to control the flow beyond a simple line of execution. This module is targeted at beginners with a basic knowledge of SharePoint, and who have completed modules 1 to 4. It s not necessary, but you ll benefit from having experience with SharePoint Designer. In this module, we're focusing on methods for controlling the flow of our processes. We'll look at three different methods, conditions, parallel blocks, and loops. These methods allow us to create complex orders of execution that mimics the real world. Conditional branching Setting conditions Parallel blocks Loops in SharePoint Designer What you need to read The main book for this course is the USP Journal issue SharePoint Designer 2010 Workflows, which is referred-to in all modules of the course. Please download this to make sure you have it available for reading assignments. SharePoint Designer 2010 Workflow 6.5 hours 2 SPD2010WF-SP-M5 We assume you have a working knowledge of SharePoint. 21
Module 6: An End-to-end Workflow Solution It's time for what may seem like your biggest challenge yet. In this module, we'll be building a full solution, from scratch, using what you've learned in the previous modules of this course. However, I think you'll be surprised at how easy this will be. This module is targeted at beginners with a basic knowledge of SharePoint, and who have completed modules 1 to 4. While it s not necessary, you will benefit from having experience with SharePoint Designer. The main goal for this module is to show how, armed with the knowledge you've gained over the previous five modules, you can create real business solutions to real problems with SharePoint Designer 2010. Workflow solution preparation and outline Site workflow Content type updates Setting workflow list item properties Creating the report document Connecting Workflows in SharePoint What you need to read The main book for this course is the USP Journal issue SharePoint Designer 2010 Workflows, which is referred-to in all modules of the course. Please download this to make sure you have it available for reading assignments. SharePoint Designer 2010 Workflow 7 hours 2 SPD2010WF-SP-M6 We assume you have a working knowledge of SharePoint. 22
Developing SharePoint Content Types This SharePoint course contains the following modules: Introducing Cool Taxonomy and Metadata Behavior Layout Folders and Custom XML Documents Your presenter - Bjørn Furuknap Bjørn Christoffer Thorsmæhlum Furuknap is a senior solutions architect, published author of Building the SharePoint User Experience, speaker, and passionate SharePointaholic. He has been doing software development professionally for 16 years for small companies as well as multinational corporations. He has also been a teacher at a college-level school, teaching programming and development to aspiring students, a job that inspired him to begin teaching what he has learned and learns every day. 23
Module 1: Introducing Cool You are incredibly smart. I know that because you've enrolled to learn more about the coolest and most powerful feature of SharePoint. Content types are an absolutely essential part of any developer's toolkit, and it's not just one of those chores you have to get through either, because content types are fun as well! This module is for intermediate level SharePoint developers. If you don't know how cool and powerful content types are, don't worry; after this week, you'll certainly know, because we'll be spending time getting to know what content types can do in your solutions. If you have taken any of my classes before, you know I start off the first module easy to allow you to settle in and get acquainted the format and style. We'll take it a bit easy and just have a few lectures. However, these will be very important lectures, so you need to pay attention. What content types are What information can be stored in a content type Creating a content type What you need to read The text of this course is based on the following two Understanding SharePoint Journal issues: Developing SharePoint Content Types & Content Types for Business Users. Developing SharePoint Content Types 2 hours 45 minutes 3 DEVSPCT-SP-M1 You should be familiar with working in and be familiar with basic XML as it relates to SharePoint. Some parts of this course deals with.net code. If you have completed the InnerWorkings course Beginning SharePoint Development, you will have the recommended skills for this course. 24
Module 2: Taxonomy and Metadata Now it is time to dive into the first of the major features of SharePoint content types: taxonomy and metadata. In this module, we'll focus both on the business end of things as well as the technical implementation. In fact, that will be the case for the rest of this course; think in both camps, we are no longer isolated compartments in an organization. The individual assignment asks you to perform a fairly common task for content type developers; build and recreate in code something that is a business object. This module is for intermediate level SharePoint developers. Taxonomy is, simply put, just categorization and organization of information. How do we ensure we put the right information in the right places? Before we can answer that, we also need to know what the right information is. That's where metadata comes in. Taxonomy may be a foreign idea to most developers. After all, we don't normally deal with organizing content, we write code or build solutions for others to organize. However, SharePoint narrows the gap between the business and the developers so we need to better understand the business needs in addition to how to technically implement a solution. Content type columns Lists and libraries List views Content type inheritance Building a content type based taxonomy What you need to read The text of this course is based on the following two Understanding SharePoint Journal issues: Developing SharePoint Content Types & Content Types for Business Users. Developing SharePoint Content Types 3 hours 3 DEVSPCT-SP-M2 You should be familiar with working in and be familiar with basic XML as it relates to SharePoint. Some parts of this course deals with.net code. If you have completed the InnerWorkings course Beginning SharePoint Development, you will have the recommended skills for this course. 25
Module 3: Behavior This week is all about behavior; we'll teach our data to behave the way we want. "Data is just bits and bytes, you say, it cannot behave!" Well, you'd be surprised at what SharePoint data can do. When we're talking about behavior development in SharePoint, we're talking about making our data react to events or to teach it to do tricks. You have heard about workflow, for example, and workflows is just one way we can make our data behave. In your individual assignment, you'll build an event receiver. I know some of you struggle with.net programming, but if you want to build event receivers, a bit of programming is mandatory. This module is for intermediate level SharePoint developers. In this module, we focus both on workflows and event receivers, two of the most common behavior development technologies. I've added two pieces of optional content for those of you who want to go far deeper in SharePoint Designer workflows. They re optional because SPD 2007 workflows are not suited for connecting to content types; only SPD 2010 allows you to explicitly target a single content type. Event receivers Attaching event receivers to content types SharePoint Designer workflows What you need to read The text of this course is based on the following two Understanding SharePoint Journal issues: Developing SharePoint Content Types & Content Types for Business Users. Developing SharePoint Content Types 6 hours 3 DEVSPCT-SP-M3 You should be familiar with working in and be familiar with basic XML as it relates to SharePoint. Some parts of this course deals with.net code. If you have completed the InnerWorkings course Beginning SharePoint Development, you will have the recommended skills for this course. 26
Module 4: Layout Make it look pretty, please! In this module, we'll look at the third major feature of content types: visual customization. This module is for intermediate level SharePoint developers. As you should know by now, we can customize the forms used to display, edit, or create items based on our content types. This allows us to create a visual interface that closely matches what the users expects to see. Content type forms How content types forms relate to list forms Rendering templates Custom actions What you need to read The text of this course is based on the following two Understanding SharePoint Journal issues: Developing SharePoint Content Types & Content Types for Business Users. You should be familiar with working in and be familiar with basic XML as it relates to SharePoint. Some parts of this course deals with.net code. If you have completed the InnerWorkings course Beginning SharePoint Development, you will have the recommended skills for this course. Developing SharePoint Content Types 5 hours 3 DEVSPCT-SP-M4 27
Module 5: Folders and Custom XML Documents In this module we revisit XML documents and look at the hidden power they hold. We ll also consider the fact that folders are also content types, and we ll look at the amazing opportunities this opens up. This module is for intermediate level SharePoint developers. You've already had an exposure to XML documents over the previous modules, both in the Form customizations and in event receivers. However, these XML document nodes are much more powerful than that. In fact, Microsoft has opened up a world of opportunities to expand the functionality of content types to practically anything. Microsoft themselves use this functionality for several features in MOSS and SharePoint Server. And, in the assignment, you'll have a chance to both come up with a great new use for these elements. Folders as content types Iterating through items and folders in a list Creating folder content types in CAML Custom XML documents What you need to read The text of this course is based on the following two Understanding SharePoint Journal issues: Developing SharePoint Content Types & Content Types for Business Users. You should be familiar with working in and be familiar with basic XML as it relates to SharePoint. Some parts of this course deals with.net code. If you have completed the InnerWorkings course Beginning SharePoint Development, you will have the recommended skills for this course. Developing SharePoint Content Types 1 hour 3 DEVSPCT-SP-M5 28
Introduction to the SharePoint Web Services SharePoint s Web Services expose a wide range of methods you can use to interact with various containers, collections, and objects. This course introduces you to the Web Services that are available in WSS, MOSS, and their SharePoint 2010 counterparts. The Web Services in newer versions of SharePoint are additive, so understanding the prior version s capabilities is always useful. Although you can call Web Services from almost any programming language, this course focuses on using jquery to interact with the Web Services client side to build useful functionality into your SharePoint forms and pages. It is strongly recommended that you take Enhancing the User Experience with jquery prior to this course. This SharePoint course contains the following modules: Module 1: Introduction to Web Services, SharePoint Style Module 2: Working with List Data: The Lists Web Service Module 3: Site Collection Traversal and the Webs Web Service Module 4: Working with People Module 5: Search and Workflow Module 6: New Web Services in SharePoint 2010 Your Presenter - Marc D. Anderson Marc is the Co-Founder and President of Sympraxis Consulting LLC, located in the Boston suburb of Newton Centre, MA, USA. Sympraxis focuses on enabling collaboration throughout the enterprise using the SharePoint application platform. Marc has almost 30 years of experience in technology professional services and software development. Over a wideranging career in consulting as well as line manager positions, Marc has proven himself as a problem solver and leader who can solve difficult technology problems for organizations across a wide variety of industries and organization sizes. Prior to cofounding Sympraxis Consulting, Marc was Director of Operations at Jornata, a Boston-based technology consulting firm, which was acquired by Vitale, Caturano (now Caturano and Company) in the Spring of 2008. Marc has also held positions at world-class services firms such as Bain and Company, KPMG, and Renaissance Solutions. Marc also had a real job, managing the systems for Staples' delivery business as it grew from a $30 million experiment to an over $1 billion main line business unit. Having started his career as an assembly language and FORTRAN programmer, Marc truly knows what life is like in the trenches and brings that perspective to bear for all of his clients. Marc has a Bachelors of Arts in Computer Mathematics from the University of Pennsylvania and graduated from Phillips Exeter Academy in Exeter, NH. Lately, aside from client work, Marc has been: Developer of the jquery Library for SharePoint Web Services (SPServices) Faculty member at the USPJA Academy Frequent contributing author at EndUserSharePoint.com Blogging at Marc D Anderson s blog Trying to rid the world of bad SharePoint implementations. 29
Module 1: Introduction to Web Services, SharePoint Style SharePoint's Web Services are XML Web Services, so are not fundamentally different from any other XML Web Services you may have worked with in the past. However, because they are in SharePoint, there are a few quirks that make them unique. This module is for intermediate level SharePoint developers. In this module, we ll introduce the SharePoint Web Services, look briefly at what Web Services SharePoint offers, and use the Lists Web service to illustrate how you might use them. What a Web service is What SharePoint s Web Services offer Some advantages to using Web Services in SharePoint An introduction to the Lists Web service Connecting a Data View Web Part to a Web service Accessing a Web service using jquery It is strongly recommended that you take Enhancing the User Experience with jquery prior to starting this course. Introduction to the SharePoint Web Services 3 hours 3 SPWSINTRO-SP-M1 30
Module 2: Working with List Data: The Lists Web Service The Lists Web Service is probably the most commonly used Web Service. It allows you to work with lists and the items they contain in many different ways. This module is for intermediate level SharePoint developers. In this module, our detailed look at the Lists Web service will pave the way for you to understand the other SharePoint Web Services. Keep in mind that almost everything in SharePoint is stored in a list of some sort. Even libraries are just specialized lists. The Lists Web service Understanding the Lists Web Service documentation in the SharePoint SDK The GetListItems method How to add, modify, and delete list items and columns Get and set list attributes It is strongly recommended that you take Enhancing the User Experience with jquery prior to starting this course. Introduction to the SharePoint Web Services 4 hours 3 SPWSINTRO-SP-M2 31
Module 3: Site Collection Traversal & the Webs Web Service In this Module, we take a detailed look at the Webs Web Service, which you can use to "traverse" the site structure of your Site Collection. This module is for intermediate level SharePoint developers. We ll explore the Webs Web Service to get familiar with how you can discover the topology of a site collection you re working in, and then move through that topology. The Webs Web Service Understanding the Webs documentation in the SharePoint SDK Retrieving the properties of a site Retrieving the subsites and parent site of a Site Collection Traversing a Site Collection It is strongly recommended that you take Enhancing the User Experience with jquery prior to starting this course. Introduction to the SharePoint Web Services 5 hours 3 SPWSINTRO-SP-M3 32
Module 4: Working with People Often, you might like to make changes to people, or at the least peoples profiles, permissions, and group memberships in SharePoint applications. The Web Services we ll look at in this module will allow you to do just that. This module is for intermediate level SharePoint developers. There are several methods we can use to work with the concept of people in SharePoint. We ll look at the Web Services and jquery scripting techniques that allow you to change user and group characteristics and their permissions. The UserGroup Web Service The Permissions Web Service The UserProfileService Web Service Determining the identity of thecurrent user (a seemingly simple task which can turn out not to be) It is strongly recommended that you take Enhancing the User Experience with jquery prior to starting this course. Introduction to the SharePoint Web Services 5 hours 3 SPWSINTRO-SP-M4 33
Module 5: Search and Workflow The Search and Workflow Web Services allow you to go even further in your interactions with SharePoint. These two Web Services allow you to provide customized search results and interact with SharePoint's workflow engine. This module is for intermediate level SharePoint developers. We ll take a comprehensive tour of the Search and Workflow Web services, and the documentation that s available for them. We'll also take a slight detour into general error handling with the Web services. The Search Web Service The Workflow Web Service Error handling with Web Services It is strongly recommended that you take Enhancing the User Experience with jquery prior to starting this course. Introduction to the SharePoint Web Services 5 hours 3 SPWSINTRO-SP-M5 34
Module 6: New Web Services in SharePoint 2010 All of the familiar Web Services from SharePoint 2007 are still there in SharePoint 2010, but there are also new Web Services to work with. This module is for intermediate level SharePoint developers. We'll examine the major differences between Web Services in SharePoint 2007 and 2010 what s new, what s different, and what s gone. We ll pay particular attention to the allimportant Lists and Webs Web Services. What new Web Services were introduced with SharePoint 2010 What changes were implemented with the Web Services that existed in SharePoint 2007 It is strongly recommended that you take Enhancing the User Experience with jquery prior to starting this course. Introduction to the SharePoint Web Services 35 minutes 3 SPWSINTRO-SP-M6 35
Enhancing the SharePoint User Experience with jquery After taking this course, you will be able to improve the user experience in your SharePoint solutions, improving data quality and user adoption rates. You will learn how to get jquery set up for use with SharePoint and how to work with the client-side Document Object Model (DOM). Specific examples using the jquery Library for SharePoint Web Services (also called SPServices) will be included and may be of the most interest to business users. This SharePoint course contains the following modules: Module 1: Installing jquery in your Environment Module 2: Basic jquery Selectors and DOM Manipulation Module 3: Understanding the Pages that SharePoint Renders Module 4: Basic Page Manipulation with jquery Module 5: jquery s AJAX with SharePoint s Web Services Module 6: Tying it all Together - Complex jquery Usage Your Presenter - Marc D. Anderson Marc is the Co-Founder and President of Sympraxis Consulting LLC, located in the Boston suburb of Newton Centre, MA, USA. Sympraxis focuses on enabling collaboration throughout the enterprise using the SharePoint application platform. Marc has almost 30 years of experience in technology professional services and software development. Over a wideranging career in consulting as well as line manager positions, Marc has proven himself as a problem solver and leader who can solve difficult technology problems for organizations across a wide variety of industries and organization sizes. Prior to cofounding Sympraxis Consulting, Marc was Director of Operations at Jornata, a Boston-based technology consulting firm, which was acquired by Vitale, Caturano (now Caturano and Company) in the Spring of 2008. Marc has also held positions at world-class services firms such as Bain and Company, KPMG, and Renaissance Solutions. Marc also had a real job, managing the systems for Staples' delivery business as it grew from a $30 million experiment to an over $1 billion main line business unit. Having started his career as an assembly language and FORTRAN programmer, Marc truly knows what life is like in the trenches and brings that perspective to bear for all of his clients. Marc has a Bachelors of Arts in Computer Mathematics from the University of Pennsylvania and graduated from Phillips Exeter Academy in Exeter, NH. Lately, aside from client work, Marc has been: Developer of the jquery Library for SharePoint Web Services (SPServices) Faculty member at the USPJA Academy Frequent contributing author at EndUserSharePoint.com Blogging at Marc D Anderson s blog Trying to rid the world of bad SharePoint implementations. 36
Module 1: Installing jquery in your Environment Welcome! This module shows you some of the sites and basic concepts you'll need to know about for this course. This module is for intermediate level SharePoint developers. We will start out by reviewing some websites that are important resources for developers using jquery with SharePoint, and then jump into developing by learning how to reference jquery and any associated plugins and libraries. We ll also look at minification what it is, and why you should consider using it. An orientation on important jquery web sites How to reference the jquery library and other plugins The relative merits of different approaches to referencing the jquery library What Minification is, and why it matters There are no specific prerequisites for this course. However, jquery is built on JavaScript, so familiarity with client-side scripting techniques can be useful. Enhancing the SharePoint User Experience with jquery 3 hours 30 minutes 3 JQUERYUX-SP-M1 37
Module 2: Basic jquery Selectors and DOM Manipulation Question: How do you find an object in the DOM so that you can manipulate it? Answer: jquery selectors! This module is for intermediate level SharePoint developers. JavaScript can do everything that jquery can do, but jquery can make some operations much simpler and more efficient to develop. Selectors are a good example. We ll look at simple and medium-level-complexity selectors. Getting your initial selectors right can be the hardest step, as most of the rest of your script will depend on those selectors being correct. Additionally, the DOM for pages which SharePoint generates is complex. Getting a basic understanding of how SharePoint's pages are constructed on the client side is crucial to success. Using simple jquery selectors to find objects in a page The SPArrangeChoices function from SPServices Manipulating the DOM and other objects There are no specific prerequisites for this course. However, jquery is built on JavaScript, so familiarity with client-side scripting techniques can be useful. Enhancing the SharePoint User Experience with jquery 5 hours 3 JQUERYUX-SP-M2 38
Module 3: Understanding the Pages SharePoint Renders The pages that SharePoint renders are simply HTML and script, but they have some consistent characteristics that are useful to understand as you start working with them and jquery. This module is for intermediate level SharePoint developers. There are many different pages in SharePoint, but two of the most common constructs are the Quick Launch and the list forms. We will look at some of the most common SharePoint page objects. Using IE8+ and the Developer Tools to understand the Document Object Module that SharePoint renders The DOM for Quick Launch The DOM for a List Form There are no specific prerequisites for this course. However, jquery is built on JavaScript, so familiarity with client-side scripting techniques can be useful. Enhancing the SharePoint User Experience with jquery 5 hours 3 JQUERYUX-SP-M3 39
Module 4: Basic Page Manipulation with jquery With some more advanced examples, we ll give you a handle on the types of things you can do with jquery on your SharePoint pages. Building your own functions like this, which can be used on multiple sites and pages, will give you the biggest "bang for the buck". This module is for intermediate level SharePoint developers. Reusability is always a key goal in programming, and jquery is not different. By looking at some common page constructs and thinking about building reusable script functions, you can begin to build a library of capabilities you can use within your organization. The DOM Quick Launch construct Sample jquery code for an accordion effect The SPSetMultiSelectSizes function The.animate() function There are no specific prerequisites for this course. However, jquery is built on JavaScript, so familiarity with client-side scripting techniques can be useful. Enhancing the SharePoint User Experience with jquery 5 hours 3 JQUERYUX-SP-M4 40
Module 5: jquery s AJAX with SharePoint s Web Services SPServices is a jquery library that abstracts SharePoint's Web Services and makes them easier to use. This module is for intermediate level SharePoint developers. We ll look at SPServices functions that use the various Web Service operations to provide more useful (and cool) capabilities. By making AJAX calls, we can interrogate SharePoint to get information and even manipulate it. The SOAP Web Services preceded the Client Object model in SharePoint 2010 and have been available since SharePoint 2003. They work identically in SharePoint 2007 and 2010, though 2010 exposes some new Web Services and operations which allow you to interact with its new functionality. Functions widely used in SPServices Calling SharePoint Web Services from jquery Wrapping Web Services calls in jquery There are no specific prerequisites for this course. However, jquery is built on JavaScript, so familiarity with client-side scripting techniques can be useful. Enhancing the SharePoint User Experience with jquery 5 hours 3 JQUERYUX-SP-M5 41
Module 6: Tying it all Together - Complex jquery Usage After mastering the DOM and Web Services, we look at some of the complex things we can now do with SharePoint. We will look also at customizations and extensions we can make. This module is for intermediate level SharePoint developers. On the surface, the SPCascadeDropdowns function in SPServices offers functionality that is pretty straightforward. In this module, we will dive under the covers of this function to expose the complexity that is possible within SharePoint applications. SPCascadeDropdowns ties together multiple Web Services calls, list form manipulation, and requires multiple lists to function. SPCascadeDropdowns Relational tables Setting defaults for jquery function parameters Binding functions to different events GetListItems() Data View Web Parts with jquery There are no specific prerequisites for this course. However, jquery is built on JavaScript, so familiarity with client-side scripting techniques can be useful. Enhancing the SharePoint User Experience with jquery 5 hours 3 JQUERYUX-SP-M6 42