1 | SharePoint Saturday Chicago 2013Twitter: @SPSChicago Hashtag #SPSChicago
Becky BertramOwner, Savvy Technical SolutionsSharePoint MVP, Microsoft Certified Trainer
Exam Cram for Exam 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions
2 | SharePoint Saturday Chicago 2013Twitter: @SPSChicago Hashtag #SPSChicago
About Me Owner of Savvy Technical Solutions 5x SharePoint MVP Started working with MS CMS in 2001 Passed 19 exams since 2000 Authored several MS SharePoint exams Microsoft Certified Trainer Blog: http://blog.beckybertram.com Twitter: @beckybertram
3 | SharePoint Saturday Chicago 2013Twitter: @SPSChicago Hashtag #SPSChicago
Outline & Agenda Overview of new MS Certification Paths Overview of SharePoint 2013 Exams New Question Formats How To Study Review of Exam 70-488 Objectives:
Plan and Design SharePoint Sites Implement Authorization and Authentication Access Data Implement SharePoint Solutions Implement the User Experience and Information Architecture Create Business Processes Create Office Apps
4 | SharePoint Saturday Chicago 2013Twitter: @SPSChicago Hashtag #SPSChicago
Overview of new MS Certification Paths
5 | SharePoint Saturday Chicago 2013Twitter: @SPSChicago Hashtag #SPSChicago
MCSE and MCSD Redux Microsoft Certified Solutions Expert
Microsoft Certified Solutions Developer Windows Store Apps Web Applications Application Lifecycle Management SharePoint Applications
Microsoft Certified Solutions Master - Discontinued
Server Infrastructure Desktop
Infrastructure Private Cloud Data Platform
Business Intelligence
Messaging Communication SharePoint
6 | SharePoint Saturday Chicago 2013Twitter: @SPSChicago Hashtag #SPSChicago
Overview of SharePoint 2013 Exams
7 | SharePoint Saturday Chicago 2013Twitter: @SPSChicago Hashtag #SPSChicago
MCSD: SharePoint Programming in HTML5 with JavaScript and CSS3 Developing ASP.NET MVC 4 Web Applications Developing Microsoft SharePoint Server
2013 Core Solutions Developing Microsoft SharePoint Server 2013
Advanced Solutions
This MCSD certification requires you to show continued ability to perform in your chosen solution area by completing a recertification exam every two years.
8 | SharePoint Saturday Chicago 2013Twitter: @SPSChicago Hashtag #SPSChicago
Exam Breakdown SharePoint 2007:
WSS Dev + SharePoint Server Dev WSS Infra + SharePoint Server Infra
SharePoint 2010 SharePoint App Dev MCTS +Dev Pro = MCPD SharePoint Infra Config MCTS +Infra Pro =
MCITP SharePoint 2013
MCSE: AD, SQL, Firewalls, O365, Exchange, etc. MCSD: App Dev + Central Admin Core + Advanced
9 | SharePoint Saturday Chicago 2013Twitter: @SPSChicago Hashtag #SPSChicago
New Question Formats
10 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Question Types Active Screen
Screenshot of a screen, select as you would in the actual UI Hot Area
Click applicable section, such as the correct link on the Site Settings page
Build List Drag and drop a list of items that need to happen in a particular order
Case Study Multiple questions that all pertain to a particular case study
Multiple Choice Sometimes one answer, sometimes more than one answer. If more
than one, sometimes each answer is part of the answer, or each answer completely answers the question independent of the other.
Drag and Drop Drag and drop items onto a screen, such as code blocks
11 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
How To Study
12 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
ObjectivesThe exam writing process goes like this:
Your best (and free) way of studying is to read up on each objective. The exam questions are written directly from them!
Objectives
Exam Questions
Courseware
MS Learning Exam Cram Books
13 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Objective Review
14 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Plan and Design SharePoint
Sites Manage the site life cycle Create content types Manage content type behaviors Implement site provisioning
15 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Manage the site life cycleThis objective may include but is not limited to:
create a delayed site collection manage site collection disposition identify inactive site collections back up and archive site collection data
16 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample PowerShell Commands Create new site collection:
New-SPSite -Url http://contoso/sites/newsitecollection -OwnerAlias "CONTOSO\ARoland" -Language 1033
Retrieving a site collection: Get-SPSite http://contoso/sites/accounting
Getting particular site collections: Get-SPSite -Filter {$_.Owner –EQ "CONTOSO\ARoland"} -Limit 50
Creating a new subsite: New-SPWeb http://contoso/sites/accounting/softwarewiki -Template "WIKI#0" -Name
17 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
More PowerShell Commands Deleting a site collection:
Remove-SPSite –Identity "http://contoso/sites/accounting" –GradualDelete
Backing up a site collection: Backup-SPSite -Identity http://intranet -Path D:\Intranet.bak
Restoring a site collection that overwrites the existing site collection Restore-SPSite -Identity http://intranet
-Path C:\Backups\Intranet.bak -Force
18 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Create Content TypeThis objective may include but is not limited to:
subscribe to published content types choose appropriate content type
creation use Schema Development create content types using Object Model create site columns use content type inheritance
19 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Content Type Subscription Uses the managed metadata service Set up one site collection as publisher Other site collections can subscribe You can push from the publisher to the
subscribers Subscribing content types are read-only You can create new content types in the
subscribing site collections that inherit from content types that are there because of a subscription
20 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Manage content type behaviorsThis objective may include but is not limited to:
manage event receivers manage workflow associations manage policies manage document templates
21 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Types of Event Receivers SPWebEventReceiver SPListEventReceiver SPItemEventReceiver SPEmailEventReceiver SPWorkflowEventReceiver
22 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample Event Receiverusing System; using Microsoft.SharePoint;
namespace Contoso.EventReceivers { public class CustomItemEventReceiver : SPItemEventReceiver { public override void ItemAdding(SPItemEventProperties properties) { … }
public override void ItemDeleting(SPItemEventProperties properties) { … } } }
23 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Associating an event receiver declaratively<ContentType ID="0x010100e64149cb14d34323bff8d55aed30b31201" …/> <FieldRefs/> <XmlDocuments> <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/events"> <Receivers> <Receiver> <Name>Contoso Custom Event Handler</Name> <Type>ItemAdding</Type> <SequenceNumber>10000</SequenceNumber> <Assembly>Contoso.SharePoint.Eventhandlers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6b56175en13dg1wx</Assembly> <Class>Contoso.EventReceivers.CustomItemEventReceiver</Class> </Receiver> </Receivers> </XmlDocument> </XmlDocuments></ContentType>
24 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Associating an event receiver using server-side codeSPContentType projDocContentType = SPContext.Current.Site.RootWeb.ContentTypes["Project Document"]; SPEventReceiverDefinition receiverDef = projDocContentType.EventReceivers.Add(); receiverDef.Assembly = "Contoso.SharePoint.Eventhandlers, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=6b56175en13dg1wx"; receiverDef.Class = "Contoso.EventReceivers.CustomItemEventReceiver";receiverDef.Type = SPEventReceiverType.ItemAdding; receiverDef.Name = "Contoso Custom Event Handler";receiverDef.SequenceNumber = 1000; receiverDef.Update();
25 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Implement site provisioningThis objective may include but is not limited to: create site definitions create web templates implement feature stapling implement custom provisioning code
26 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Feature Stapling Manifest File<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <FeatureSiteTemplateAssociation Id="57FG4AP8-69A1-45OM-V133-QB349E8053DK“ TemplateName="BLOG#0" /></Elements>
27 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionYou have a document library called Expense Reports, and each document uploaded to the library uses the Expense Report content type. Each time a new expense report is uploaded to the library, it needs to go through an approval process before it can be entered in the accounting software for the company. You need to write an event receiver that will execute when an expense report is approved, which will take the data from the expense report and automatically load in into the accounting software. Which event receiver type should you attach to the Expense Report content type? A. ItemAdding B. ItemAdded C. ItemUpdating D. ItemUpdated E. ItemCheckedOut F. ItemCheckedIn
28 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionYou have a document library called Expense Reports, and each document uploaded to the library uses the Expense Report content type. Each time a new expense report is uploaded to the library, it needs to go through an approval process before it can be entered in the accounting software for the company. You need to write an event receiver that will execute when an expense report is approved, which will take the data from the expense report and automatically load in into the accounting software. Which event receiver type should you attach to the Expense Report content type? A. ItemAdding B. ItemAdded C. ItemUpdating D. ItemUpdated E. ItemCheckedOut F. ItemCheckedIn
29 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Implement Authorization and Authentication
Implement user authentication Implement application authentication
and authorization Plan and implement user
authorization
30 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Implement User AuthenticationThis objective may include but is not limited to:
create a custom claims provider create a custom sign-in page create a custom membership provider package and deploy a custom claims provider package and deploy a custom membership
provider authenticate a user from a client application
31 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Custom Claim Provider Create class that inherits from SPClaimProvider protected const string AudienceClaimType =
"http://www.wingtip.com/identity/claims/audience"; protected const string StringTypeClaim =
Microsoft.IdentityModel.Claims.ClaimValueTypes.String; internal const string ClaimProviderDisplayName =
"Audience Claim Provider"; internal const string ClaimProviderDescription =
"A demo claims provider"; Must override read-only Name property Most override four Booleans and return true for which functionality the claims
provider supports: SupportsEntityInformation, SupportsHierarchy, SupportsSearch, SupportsResolve
Override methods FillClaimTypes, FillClaimValueTypes, FillClaimsForEntity, FillSearch and FillSchema, and two overloaded instances of FillResolve method.
32 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Register and Deploy Custom Claims Provider Create custom feature event receiver that inherits from
SPClaimProviderFeatureReceiver Override four properties: ClaimProviderDisplayName ,
ClaimProviderDescription, ClaimProviderAssembly, and ClaimProviderType
If the claims provider is a stand-alone assembly, you would include the assembly in a solution package manually
Sources: http://msdn.microsoft.com/en-us/library/gg481769(v=office.14).aspx#claimswalkthrough5_Scenario and http://msdn.microsoft.com/en-us/library/gg615945(v=office.14).aspx
33 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Add Membership Provider to SP Web ApplicationModify SP app web.config: Add to
<membership><providers><provider></providers></membership> node:
<add name="custommembershipprovider" type="ContosoProviders.Members, ContosoProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=26fc91a86676aa9f" />
Source: http://msdn.microsoft.com/en-us/library/gg317440(v=office.14).aspx
34 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Implement application authentication and authorizationThis objective may include but is not limited to: use the SharePoint App TokenHelper class specify the App permission request scope
manifest and permission request manifest specify permissions for Office Store Apps specify permissions for Corporate Catalog Apps specify permissions for remote apps to access
SharePoint data
35 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
TokenHelper.cs Created automatically in VS if you create a new SharePoint
App project Public static methods:
void TrustAllCertificates(){} string GetContextTokenFromRequest SharePointContextToken ReadAndValidateContextToken OAuth2AccessTokenResponse GetAccessToken (overloaded) OAuth2AccessTokenResponse GetAppOnlyAccessToken ClientContext GetClientContextWithAuthorizationCode ClientContext GetClientContextWithAccessToken ClientContext GetClientContextWithContextToken string GetAuthorizationUrl (overloaded) string GetAppContextTokenRequestUrl string GetS2SAccessTokenWithWindowsIdentity ClientContext GetS2SClientContextWithWindowsIdentity
36 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
App Permissions App authorization policy types: user-only, user +
app policy, app-only policy App permission-request scopes: site collection,
web, list, and tenancy Rights at each scope: Read, Write, Manage, Full
Control Search also has a Query right Project Server has SubmitStatus and Elevate
rights Taxonomy only has Read and Write Office Store apps only have Read, Write, and
Manage Source: http://
msdn.microsoft.com/en-us/library/fp179892.aspx and http://msdn.microsoft.com/en-us/library/fp142383.aspx
37 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Plan and implement user authorizationThis objective may include but is not limited to: create custom role definitions create custom permission levels maintain permissions implement impersonation plan and implement anonymous access create a custom role manager
38 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionYou want to write an app that will automatically create and approve pages in a particular sub-site, regardless of who is accessing the site and whether they have been granted permission to edit or approve pages. You want to make this app available in the Office Store. Which scope and permission level should you choose?Scope Permission Level
Site Collection Red
Web Site Write
List Manage
Tenancy Full Control
SubmitStatus
Elevate
39 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionYou want to write an app that will automatically create and approve pages in a particular sub-site, regardless of who is accessing the site and whether they have been granted permission to edit or approve pages. You want to make this app available in the Office Store. Which scope and permission level should you choose?Scope Permission Level
Site Collection Red
Web Site Write
List Manage
Tenancy Full Control
SubmitStatus
Elevate
40 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Access and Manage Data
Design solutions to handle large amounts of data
Access data contained in SharePoint Store configuration data
41 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Design solutions to handle large amounts of dataThis objective may include but is not limited to: create efficient CAML queries and views choose appropriate APIs create and use indexed columns use Object Model Overrides use Content Iterator implement cross-site queries
42 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Query Override Sample
SPQueryThrottleOption enumeration: Default, Override, Strict
SPQuery query = new SPQuery();query.QueryThrottleMode = SPQueryThrottleOption.Override;
43 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Access data contained in SharePointThis objective may include but is not limited to: access data using server-side object model access data using client-side object model
(CSOM) access data using REST API access data using out-of-the-box Web Services access data using a custom WCF (Windows
Communication Foundation) service to facilitate integration with an existing application
44 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
REST Sample endpoints:
http://server/site/_api/site http://server/site/_api/web http://server/site/_api/lists
Perform operations e.g. http://server/site/_api/lists/getbytitle('listname')
Http Request types map to CRUD operations: GET (Read), POST (Write), PUT (Update), DELETE
(Delete)
Source: http://msdn.microsoft.com/en-US/library/office/fp142380.aspx
45 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
REST Sample CodeThe following C# code demonstrates how to make this GET request that returns a JSON representation of all of a site’s lists by using JQuery. It also assumes that you have a valid OAuth access token that is stored in the accessToken variable. You do not need the access token if you make this call from inside an app web, as you would in a SharePoint-hosted app.
HttpWebRequest endpointRequest = (HttpWebRequest)HttpWebRequest.Create("http://site/_api/web/lists");endpointRequest.Method = "GET";endpointRequest.Accept = "application/json;odata=verbose";endpointRequest.Headers.Add("Authorization", "Bearer " + accessToken);HttpWebResponse endpointResponse = (HttpWebResponse)endpointRequest.GetResponse();
Source: http://msdn.microsoft.com/en-US/library/office/jj164022.aspx
46 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
DataContext and WCF Endpoint SampleDevSiteDataContext dc = new DevSiteDataContext(new Uri("http://intranet/_vti_bin/ListData.svc/")); dc.Credentials = System.Net.CredentialCache.DefaultCredentials;
47 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Store configuration dataThis objective may include but is not limited to: implement a hierarchical data store implement a property bag implement web.config implement SharePoint List implement credential storage
48 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionYou have written a web part that uses BCS to connect to an external SQL database. You want to everyone who accesses the data to use a common service account, but you want to be able to modify which service account is used in each of your environments (Dev, QA, and Prod). You want to accomplish this without any custom code. You do not have access to modify any of the files on your web server(s). What should you do?
A. Store configuration data in a custom list and have the BCS model use the connection information stored in the list.
B. Store the connection string to the database in the web.config file.
C. Store the connection string in the property bag of the site collection.
D. Use the Secure Store service.
49 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionYou have written a web part that uses BCS to connect to an external SQL database. You want to everyone who accesses the data to use a common service account, but you want to be able to modify which service account is used in each of your environments (Dev, QA, and Prod). You want to accomplish this without any custom code. You do not have access to modify any of the files on your web server(s). What should you do?
A. Store configuration data in a custom list and have the BCS model use the connection information stored in the list.
B. Store the connection string to the database in the web.config file.
C. Store the connection string in the property bag of the site collection.
D. Use the Secure Store service.
50 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Implement SharePoint Solutions
Manage SharePoint Object Life Cycle Upgrade solutions and features Determine a solution structure Create sandbox solutions Create a no-code solution
51 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Manage SharePoint Object Life CycleThis objective may include but is not limited to: implement Object Life Cycle management for
SPWeb implement Object Life Cycle management for
SPSite implement Object Life Cycle management for
other objects implement Object Life Cycle management with
Windows PowerShell implement Object Life Cycle management for
SPContext
52 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Upgrade solutions and featuresThis objective may include but is not limited to: implement versioning of features and solutions upgrade features and solutions implement assembly versioning build components for in-process request routing
53 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Determine a solution structureThis objective may include but is not limited to: select feature scope and visibility define feature dependencies define solution dependencies organize SharePoint project items structure app packages
54 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
App Package Contents App manifest Solution package Host web feature (i.e. a feature not contained in the solution
package, which can be used to deploy a custom action such as a link on the Site Settings page) or app parts
Localization resource files (.resx) Data Tier Application Packages (DACPACs): in auto-hosted
app, installs a SQL Azure database in an account that is associated with an Microsoft SharePoint Online account.
Web Deploy Packages: In an autohosted app, there may be a Web Deploy package that installs a Windows Azure Web Site that is associated with an Microsoft SharePoint Online account.
Apps for Office manifest: only for corporate marketplaces, not Office Store
Source: http://msdn.microsoft.com/en-us/library/office/fp179918.aspx
55 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Create sandbox solutionsThis objective may include but is not limited to: scope features to constraints identify SharePoint artifacts that can be used in
sandbox access data outside of Sandbox scope configure and troubleshoot sandbox solution
deployment upgrade sandbox solutions implement solutions validators
56 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Solution Validator Called each time an uploaded sandbox
solution is activated. If the solution is updated, it’s called again the next time the code is executed.
Create a class that inherits from SPSolutionValidator
Override ValidateSolution and ValidateAssembly methods
Deploy via code (such as in a feature event receiver) or PowerShell
Source: http://msdn.microsoft.com/en-us/magazine/ee335711.aspx
57 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Create a no-code solutionThis objective may include but is not limited to: configure no-code customizations for the
SharePoint 2013 platform create XSLT for web parts create and upload JavaScript files create Display Templates
58 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionYou want to create a custom Display Template. What two kinds of files should you create? (Each answer is part of the answer.)A. .ascxB. .htmlC. .aspxD. .txtE. .jsF. .master
59 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionYou want to create a custom Display Template. What two kinds of files should you create? (Each answer is part of the answer.)A. .ascxB. .htmlC. .aspxD. .txtE. .jsF. .master
60 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Implement the User Experience and Information Architecture
Implement branding Implement navigation Customize UI elements
61 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Implement brandingThis objective may include but is not limited to: incorporate designer outputs use Design Manager functionality apply custom themes export the design create Master Page create a channel
62 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Custom Composed Look Theme color info stored in an .spcolor file. Theme font info stored in an .spfont file. If you want a master page available in a
composed look, make sure it has a .preview file.
You can upload your files to your site then create a composed look via Site Settings Composed Looks
63 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
SPColor File Format:<s:colorPalette isInverted="InvertedSetting" previewSlot1="Slot1" previewSlot2="Slot2" previewSlot3="Slot3“ xmlns:s="http://schemas.microsoft.com/sharepoint/"> <s:color name="ColorSlot" value="Color" /> <!--additional color slots--> </s:colorPalette>
Sample<s:colorPalette isInverted="true" previewSlot1="BackgroundOverlay" previewSlot2="BodyText“ previewSlot3="AccentText“ xmlns:s="http://schemas.microsoft.com/sharepoint/"> <s:color name="BodyText" value="FFFFFF" /></s:colorPalette>
64 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
SPFont File Sample<s:fontScheme name="Rockwell" previewSlot1="title" previewSlot2="body“ xmlns:s="http://schemas.microsoft.com/sharepoint/"> <s:fontSlots> <s:fontSlot name="title"> <s:latin typeface="Rockwell Light" eotsrc="/_layouts/15/fonts/RockwellLight.eot" woffsrc="/_layouts/15/fonts/RockwellLight.woff" ttfsrc="/_layouts/15/fonts/RockwellLight.ttf" svgsrc="/_layouts/15/fonts/RockwellLight.svg" largeimgsrc="/_layouts/15/fonts/RockwellLightLarge.png" smallimgsrc="/_layouts/15/fonts/RockwellLightSmall.png" /> <s:ea typeface="" /> <s:cs typeface="Segoe UI Light" /> <s:font script="Arab" typeface="Segoe UI Light" /> </s:fontSlot> </s:fontSlots></s:fontSchema>
65 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Implement navigationThis objective may include but is not limited to: create a custom navigation provider create taxonomy-based navigation create search-driven navigation configure global/current navigation
66 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Taxonomy-Driven Navigation Be very familiar with TaxonomySession and NavigationTermSet
Be familiar with using SSOM and CSOM to modify navigation
67 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample CSOM Taxonomy CodeClientContext clientContext = new ClientContext(TestConfig.ServerUrl); TaxonomySession taxonomySession = TaxonomySession.GetTaxonomySession(clientContext);taxonomySession.UpdateCache();clientContext.Load(taxonomySession, ts => ts.TermStores);clientContext.ExecuteQuery();TermStore termStore = taxonomySession.TermStores[0];clientContext.Load(termStore, ts => ts.Name, ts => ts.WorkingLanguage);…NavigationTermSet navTermSet = NavigationTermSet.GetAsResolvedByWeb(clientContext, termSet, clientContext.Web, "GlobalNavigationTaxonomyProvider");
Source: http://msdn.microsoft.com/en-us/library/jj163978.aspx
68 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Customize UI elementsThis objective may include but is not limited to: customize the ribbon customize the edit control block (ECB) customize the status bar and notifications customize the modal dialog window customize the upgrade notification select areas for Focus on Content
69 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionYou want to create a Device Channel for iPad 2 users and have your site rendered using the Custom.master master page when an iPad 2 user browses the site. What should you do?A. On the Site Master Page Settings page, associate
Custom.master with your iPad 2 device channel.B. When creating your device channel, specify the master
page that should be used for that device channel.C. When you create the master page, specify the device
channel it’s associated with, when you deploy it to the master page gallery.
D. On the Edit Master Pages page in the Design Manager, associate Custom.master with the iPad 2 device channel.
70 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionYou want to create a Device Channel for iPad 2 users and have your site rendered using the Custom.master master page when an iPad 2 user browses the site. What should you do?A. On the Site Master Page Settings page, associate
Custom.master with your iPad 2 device channel.B. When creating your device channel, specify the master
page that should be used for that device channel.C. When you create the master page, specify the device
channel it’s associated with, when you deploy it to the master page gallery.
D. On the Edit Master Pages page in the Design Manager, associate Custom.master with the iPad 2 device channel.
71 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Create Business Processes
Create event receivers and timer jobs. Create SharePoint Designer workflows. Create and deploy Microsoft Visual Studio
workflows.
72 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Create event receivers and timer jobsThis objective may include but is not limited to: plan the use of event receivers or timer jobs create remote event receivers create a work item timer job
73 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Create SharePoint Designer workflowsThis objective may include but is not limited to: plan the type of workflow and associated forms
(site, reusable, list, InfoPath) use custom actions create workflow definition create reusable workflows for content types import and export Microsoft Visio workflows export a workflow to a SharePoint solution
74 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Create and deploy Microsoft Visual Studio workflowsThis objective may include but is not limited to: create custom actions create a workflow definition create external connectors deploy a workflow as part of a SharePoint solution
or app upgrade a SharePoint 2013 Visual Studio
workflow plan the type of workflow and associated forms
75 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionThroughout the day, customer service agents are adding orders to a SharePoint list called Pending Orders. When the list reaches 100 items, all the orders (i.e. information from all the items in the list) are transmitted to a back-end order fulfillment application all at once and all the items are deleted from the list. The processing of these orders could potentially take a long time and shouldn’t hamper the performance of the SharePoint site. What should you do?A. Create a synchronous event receiver and attach it to the ItemAdding event. Send
information to the order fulfillment system for the list item. If the item is the 100th item, delete all the items in the list
B. Create an asynchronous event receiver and attach it to the ItemAdding event. Send information to the order fulfillment system for the list item. If the item is the 100th item, delete all the items in the list
C. Create a synchronous event receiver and attach it to the ItemAdded event. If the item is the 100th item, send the information for all 100 items to the order fulfillment system and then delete all the items.
D. Create a timer job that runs once an hour and associate it with the web application that contains the Central Administration web site. If the list contains 100 items, send the information from the first 100 items to the order fulfillment system and delete those first 100 items.
E. Create a timer job that runs once an hour and associate it with the web application that contains the Pending Orders list. If the list contains 100 items, send the information from the first 100 items to the order fulfillment system and delete those first 100 items.
76 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionThroughout the day, customer service agents are adding orders to a SharePoint list called Pending Orders. When the list reaches 100 items, all the orders (i.e. information from all the items in the list) are transmitted to a back-end order fulfillment application all at once and all the items are deleted from the list. The processing of these orders could potentially take a long time and shouldn’t hamper the performance of the SharePoint site. What should you do?A. Create a synchronous event receiver and attach it to the ItemAdding event. Send
information to the order fulfillment system for the list item. If the item is the 100th item, delete all the items in the list
B. Create an asynchronous event receiver and attach it to the ItemAdding event. Send information to the order fulfillment system for the list item. If the item is the 100th item, delete all the items in the list
C. Create a synchronous event receiver and attach it to the ItemAdded event. If the item is the 100th item, send the information for all 100 items to the order fulfillment system and then delete all the items.
D. Create a timer job that runs once an hour and associate it with the web application that contains the Central Administration web site. If the list contains 100 items, send the information from the first 100 items to the order fulfillment system and delete those first 100 items.
E. Create a timer job that runs once an hour and associate it with the web application that contains the Pending Orders list. If the list contains 100 items, send the information from the first 100 items to the order fulfillment system and delete those first 100 items.
77 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Create Office Apps Plan and design applications Create applications Package and deploy Apps Manage the App life cycle
78 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Plan and design applicationsThis objective may include but is not limited to: choose a hosting location specify a starting location specify a licensing model specify permission requirements select a user experience for apps
79 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
SharePoint App UX Chrome Control allows you to use
SharePoint top nav bar and SharePoint styles in an auto-hosted app
App.master for SharePoint-hosted apps You can add custom actions to add App
functionality to the ribbon or the ECB menu
You can add App Parts which can be deployed like web parts
80 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Create applicationsThis objective may include but is not limited to: create provider-hosted applications create auto-hosted applications create SharePoint-hosted applications apply chrome control
81 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Package and deploy AppsThis objective may include but is not limited to: package an application publish to Corporate Catalog publish to SharePoint store publish to Windows Azure manage trust relationship with other providers
82 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample App Manifest<?xml version="1.0" encoding="utf-8" ?><App xmlns=http://schemas.microsoft.com/sharepoint/2012/app/manifest ProductID="{4a07f3bd-803d-45f2-a710-b9e944c3396e}" Version="1.0.0.0" SharePointMinVersion="15.0.0.0" Name="MySampleApp"> <Properties> <Title>My Sample App</Title> <StartPage>http://MyRemoteWebApplicationServer/default.aspx/?SPHostUrl={HostUrl}</StartPage> <SupportedLocales> <SupportedLocale CultureName="en-US" /> </SupportedLocales> </Properties> <AppPermissionRequests> <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="Write"/> </AppPermissionRequests> <AppPrincipal> <RemoteWebApplication ClientId="1ee82b34-7c1b-471b-b27e-ff272accd564" /> </AppPrincipal></App>
83 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Manage the App life cycleThis objective may include but is not limited to: upgrade an application remove an application manage licensing manage usage tracking
84 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionYou want to deploy an app that contains server-side code. What are your options? (Choose all that apply.)A. If this is a provider-hosted app, host the app on a
dedicated server inside your network.B. If this is a provider-hosted app, host the app on a
Windows Azure server connected to your network.
C. If this is an auto-hosted app, the code will be deployed to Windows Azure Web Sites and executed there.
D. You cannot run server-side code in a SharePoint app.
85 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Sample QuestionYou want to deploy an app that contains server-side code. What are your options? (Choose all that apply.)A. If this is a provider-hosted app, host the app on a
dedicated server inside your network.B. If this is a provider-hosted app, host the app on a
Windows Azure server connected to your network.
C. If this is an auto-hosted app, the code will be deployed to Windows Azure Web Sites and executed there.
D. You cannot run server-side code in a SharePoint app.
86 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Questions
87 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
YammerHow to Join the Conversation1. Download the Yammer phone app from the iTunes, Windows Phone, or
Android App Store.2. Join your company network, if you haven't already, at
http://www.yammer.com.3. Go to https://www.yammer.com/microsoftmidwestcustomers and click
"request an invitation". When you receive the invitation click "accept."4. Go to
https://www.yammer.com/microsoftmidwestcustomers/groups/spschicago and click "join." You will receive a welcome message in 24-72 hrs.
5. Once you have access you will be able to download posted presentations, ask questions of any of the subject matter experts and participate in any conversations going on in the group
88 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Housekeeping Please remember to submit your session
evaluation using our mobile application Follow SharePoint Saturday Chicago on
Twitter @spschicago & use hashtag #spschicago
89 | SharePoint Saturday Chicago 2013
Twitter: @SPSChicago Hashtag #SPSChicago
Thanks to Our Sponsors!