exam cram for 70-488: developing microsoft sharepoint server 2013 core solutions

89
1 | SharePoint Saturday Chicago 2013 Twitter: @SPSChicago Hashtag #SPSChicago Becky Bertram Owner, Savvy Technical Solutions SharePoint MVP, Microsoft Certified Trainer Exam Cram for Exam 70- 488: Developing Microsoft SharePoint Server 2013 Core Solutions

Upload: beckybertram

Post on 09-May-2015

24.085 views

Category:

Technology


1 download

DESCRIPTION

Becky Bertram's presentation about Microsoft's exam 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions.

TRANSCRIPT

Page 1: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 2: Exam Cram for 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

Page 3: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 4: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

4 | SharePoint Saturday Chicago 2013Twitter: @SPSChicago Hashtag #SPSChicago

Overview of new MS Certification Paths

Page 5: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 6: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

6 | SharePoint Saturday Chicago 2013Twitter: @SPSChicago Hashtag #SPSChicago

Overview of SharePoint 2013 Exams

Page 7: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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.

Page 8: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 9: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

9 | SharePoint Saturday Chicago 2013Twitter: @SPSChicago Hashtag #SPSChicago

New Question Formats

Page 10: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 11: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

11 | SharePoint Saturday Chicago 2013

Twitter: @SPSChicago Hashtag #SPSChicago

How To Study

Page 12: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 13: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

13 | SharePoint Saturday Chicago 2013

Twitter: @SPSChicago Hashtag #SPSChicago

Objective Review

Page 14: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 15: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 16: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 17: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 18: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 19: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 20: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 21: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

21 | SharePoint Saturday Chicago 2013

Twitter: @SPSChicago Hashtag #SPSChicago

Types of Event Receivers SPWebEventReceiver SPListEventReceiver SPItemEventReceiver SPEmailEventReceiver SPWorkflowEventReceiver

Page 22: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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) { … } } }

Page 23: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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>

Page 24: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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();

Page 25: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 26: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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>

Page 27: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 28: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 29: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 30: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 31: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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.

Page 32: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 33: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 34: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 35: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 36: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 37: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 38: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 39: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 40: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 41: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 42: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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;

Page 43: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 44: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 45: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 46: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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;

Page 47: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 48: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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.

Page 49: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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.

Page 50: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 51: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 52: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 53: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 54: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 55: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 56: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 57: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 58: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 59: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 60: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

60 | SharePoint Saturday Chicago 2013

Twitter: @SPSChicago Hashtag #SPSChicago

Implement the User Experience and Information Architecture

Implement branding Implement navigation Customize UI elements

Page 61: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 62: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 63: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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>

Page 64: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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>

Page 65: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 66: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 67: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 68: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 69: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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.

Page 70: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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.

Page 71: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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.

Page 72: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 73: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 74: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 75: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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.

Page 76: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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.

Page 77: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 78: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 79: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 80: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 81: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 82: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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>

Page 83: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 84: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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.

Page 85: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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.

Page 86: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

86 | SharePoint Saturday Chicago 2013

Twitter: @SPSChicago Hashtag #SPSChicago

Questions

Page 87: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 88: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

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

Page 89: Exam Cram for 70-488: Developing Microsoft SharePoint Server 2013 Core Solutions

89 | SharePoint Saturday Chicago 2013

Twitter: @SPSChicago Hashtag #SPSChicago

Thanks to Our Sponsors!