Introduction |
|
xvii | |
|
Chapter 1 SharePoint 2013 developer roadmap |
|
|
1 | (34) |
|
A brief history of SharePoint |
|
|
2 | (2) |
|
Understanding the impact of SharePoint Online on the SharePoint platform |
|
|
3 | (1) |
|
Examining SharePoint Foundation architecture |
|
|
4 | (22) |
|
Understanding SharePoint farms |
|
|
6 | (2) |
|
Creating web applications |
|
|
8 | (4) |
|
Understanding service applications |
|
|
12 | (2) |
|
Creating service applications in SharePoint Server 2013 |
|
|
14 | (1) |
|
|
15 | (4) |
|
|
19 | (4) |
|
Using SharePoint Designer 2013 |
|
|
23 | (1) |
|
Understanding site customization vs. SharePoint development |
|
|
24 | (2) |
|
Windows PowerShell boot camp for SharePoint professionals |
|
|
26 | (8) |
|
Learn Windows PowerShell in 21 minutes |
|
|
26 | (4) |
|
The Windows PowerShell Integrated Scripting Environment (ISE) |
|
|
30 | (1) |
|
The SharePoint PowerShell snap-in |
|
|
31 | (3) |
|
|
34 | (1) |
|
Chapter 2 SharePoint development practices and techniques |
|
|
35 | (36) |
|
Setting up a developer environment |
|
|
36 | (6) |
|
Deciding between virtual and physical |
|
|
37 | (1) |
|
Understanding hardware and software requirements |
|
|
38 | (2) |
|
Delivering high-quality solutions |
|
|
40 | (2) |
|
Automating SharePoint administration by using Windows PowerShell scripts |
|
|
42 | (4) |
|
Using PowerShell to deploy a custom solution |
|
|
44 | (2) |
|
Configuring SharePoint service applications |
|
|
46 | (6) |
|
|
52 | (3) |
|
Working with ULS and Windows event logs |
|
|
53 | (1) |
|
Using the Developer Dashboard |
|
|
54 | (1) |
|
Using the SharePoint Developer Tools in Visual Studio 2012 |
|
|
55 | (4) |
|
Choosing a development approach |
|
|
59 | (2) |
|
Using the SharePoint APIs |
|
|
61 | (8) |
|
Understanding the server-side object model |
|
|
62 | (1) |
|
Using the client-side object model |
|
|
63 | (4) |
|
|
67 | (2) |
|
|
69 | (2) |
|
Chapter 3 Server-side solution development |
|
|
71 | (48) |
|
Understanding the server-side object model |
|
|
73 | (3) |
|
Developing farm solutions |
|
|
76 | (26) |
|
Creating a SharePoint project in Visual Studio |
|
|
77 | (2) |
|
Designing your SharePoint solution: Features |
|
|
79 | (2) |
|
Adding declarative elements |
|
|
81 | (3) |
|
Adding a feature receiver |
|
|
84 | (2) |
|
Understanding the SharePoint root directory |
|
|
86 | (3) |
|
Deploying and debugging farm solutions |
|
|
89 | (5) |
|
|
94 | (1) |
|
|
95 | (7) |
|
Developing sandboxed solutions |
|
|
102 | (15) |
|
Understanding the sandbox execution environment |
|
|
104 | (2) |
|
Creating a SharePoint project for a sandboxed solution |
|
|
106 | (3) |
|
Deploying and debugging sandboxed solutions |
|
|
109 | (4) |
|
Updating and upgrading sandboxed solutions |
|
|
113 | (4) |
|
|
117 | (2) |
|
Chapter 4 SharePoint apps |
|
|
119 | (44) |
|
Understanding the new SharePoint app model |
|
|
119 | (3) |
|
Understanding SharePoint solution challenges |
|
|
120 | (2) |
|
Understanding the SharePoint app model design goals |
|
|
122 | (1) |
|
Understanding SharePoint app model architecture |
|
|
122 | (22) |
|
Working with app service applications |
|
|
123 | (1) |
|
Understanding app installation scopes |
|
|
124 | (1) |
|
Understanding app code isolation |
|
|
125 | (1) |
|
Understanding app hosting models |
|
|
126 | (4) |
|
Reviewing the app manifest |
|
|
130 | (2) |
|
Setting the start page URL |
|
|
132 | (2) |
|
Understanding the app web |
|
|
134 | (3) |
|
Working with app user interface entry points |
|
|
137 | (7) |
|
|
144 | (3) |
|
Packaging and distributing apps |
|
|
147 | (15) |
|
|
147 | (5) |
|
|
152 | (3) |
|
|
155 | (2) |
|
|
157 | (1) |
|
Trapping app life cycle events |
|
|
158 | (4) |
|
|
162 | (1) |
|
Chapter 5 Client-side programming |
|
|
163 | (50) |
|
Understanding app designs |
|
|
163 | (2) |
|
Assessing SharePoint-hosted app designs |
|
|
164 | (1) |
|
Assessing cloud-hosted app designs |
|
|
164 | (1) |
|
Introduction to JavaScript for SharePoint developers |
|
|
165 | (8) |
|
Understanding JavaScript namespaces |
|
|
165 | (1) |
|
Understanding JavaScript variables |
|
|
166 | (1) |
|
Understanding JavaScript functions |
|
|
167 | (1) |
|
Understanding JavaScript closures |
|
|
168 | (1) |
|
Understanding JavaScript prototypes |
|
|
169 | (1) |
|
Creating custom libraries |
|
|
170 | (3) |
|
Introduction to jQuery for SharePoint developers |
|
|
173 | (4) |
|
|
174 | (1) |
|
Understanding the global function |
|
|
174 | (1) |
|
Understanding selector syntax |
|
|
175 | (1) |
|
Understanding jQuery methods |
|
|
175 | (1) |
|
Understanding jQuery event handling |
|
|
176 | (1) |
|
Working with the client-side object model |
|
|
177 | (18) |
|
Understanding client object model fundamentals |
|
|
177 | (3) |
|
Working with the managed client object model |
|
|
180 | (8) |
|
Working with the JavaScript client object model |
|
|
188 | (7) |
|
Working with the Rest API |
|
|
195 | (17) |
|
Understanding Rest fundamentals |
|
|
196 | (4) |
|
Working with the Rest API in JavaScript |
|
|
200 | (6) |
|
Working with the Rest API in C# |
|
|
206 | (6) |
|
|
212 | (1) |
|
Chapter 6 SharePoint security |
|
|
213 | (54) |
|
Reviewing authentication and authorization |
|
|
213 | (11) |
|
Understanding user authentication |
|
|
214 | (2) |
|
Understanding the User Information List |
|
|
216 | (1) |
|
Working with users and groups |
|
|
216 | (3) |
|
Working with application pool identities |
|
|
219 | (1) |
|
Understanding the Sharepoint\System account |
|
|
220 | (1) |
|
Delegating user credentials |
|
|
221 | (1) |
|
User impersonation with the user token |
|
|
221 | (1) |
|
Securing objects with SharePoint |
|
|
222 | (2) |
|
Rights and permission levels |
|
|
224 | (1) |
|
Understanding app authentication |
|
|
224 | (10) |
|
Understanding app authentication flow |
|
|
233 | (1) |
|
Understanding app authorization |
|
|
234 | (31) |
|
|
235 | (1) |
|
Understanding app permission policies |
|
|
235 | (1) |
|
Requesting and granting app permissions |
|
|
236 | (3) |
|
Requesting app-only permissions |
|
|
239 | (1) |
|
Establishing app identity by using OAuth |
|
|
240 | (2) |
|
Understanding app principals |
|
|
242 | (5) |
|
|
247 | (9) |
|
Establishing app identity by using S2S trusts |
|
|
256 | (1) |
|
Architecture of an S2S trust |
|
|
257 | (2) |
|
|
259 | (4) |
|
Developing provider-hosted apps by using S2S trusts |
|
|
263 | (2) |
|
|
265 | (2) |
|
Chapter 7 SharePoint pages |
|
|
267 | (42) |
|
|
267 | (15) |
|
|
267 | (4) |
|
Understanding how SharePoint relates to IIS web applications |
|
|
271 | (1) |
|
Understanding the web.config file |
|
|
272 | (2) |
|
Understanding the SharePoint virtual file system |
|
|
274 | (1) |
|
Working with files and folders in SharePoint |
|
|
275 | (2) |
|
Understanding page customization |
|
|
277 | (5) |
|
Using pages in SharePoint |
|
|
282 | (21) |
|
Understanding master pages |
|
|
282 | (5) |
|
|
287 | (2) |
|
Understanding content pages |
|
|
289 | (7) |
|
Creating a custom branding solution |
|
|
296 | (2) |
|
Working with application pages |
|
|
298 | (5) |
|
|
303 | (4) |
|
Understanding the anatomy of the SharePoint ribbon |
|
|
303 | (1) |
|
Adding a custom ribbon control |
|
|
304 | (3) |
|
|
307 | (2) |
|
Chapter 8 SharePoint Web Parts |
|
|
309 | (44) |
|
Understanding Web Part fundamentals |
|
|
309 | (4) |
|
|
309 | (1) |
|
Comparing ASP.NET and SharePoint Web Parts |
|
|
310 | (1) |
|
|
311 | (1) |
|
Understanding Web Part zones |
|
|
311 | (1) |
|
Understanding the Web Part Manager |
|
|
312 | (1) |
|
Understanding static Web Parts |
|
|
312 | (1) |
|
Storing Web Part control description files in the Web Part Gallery |
|
|
313 | (1) |
|
Developing and deploying Web Parts |
|
|
313 | (11) |
|
Building your first Web Part |
|
|
313 | (4) |
|
Deploying and uninstalling a Web Part |
|
|
317 | (2) |
|
Deploying a Web Part page with Web Parts |
|
|
319 | (5) |
|
Controlling Web Part rendering |
|
|
324 | (7) |
|
Overriding the RenderContents method |
|
|
324 | (1) |
|
Using CreateChildControls |
|
|
325 | (1) |
|
|
325 | (2) |
|
Combining CreateChildControls and RenderContents |
|
|
327 | (2) |
|
|
329 | (2) |
|
Working with Web Part properties |
|
|
331 | (6) |
|
Persisting Web Part properties |
|
|
331 | (2) |
|
Using custom Editor Parts |
|
|
333 | (4) |
|
Exploring advanced Web Part development |
|
|
337 | (13) |
|
|
337 | (3) |
|
Using Web Part connections |
|
|
340 | (5) |
|
Using parallel and asynchronous execution in Web Parts |
|
|
345 | (5) |
|
|
350 | (3) |
|
Chapter 9 SharePoint lists |
|
|
353 | (52) |
|
|
353 | (4) |
|
Working with fields and field types |
|
|
357 | (5) |
|
Performing basic field operations |
|
|
358 | (3) |
|
Working with lookups and relationships |
|
|
361 | (1) |
|
Understanding site columns |
|
|
362 | (4) |
|
Working with content types |
|
|
366 | (6) |
|
Programming with content types |
|
|
368 | (2) |
|
Creating custom content types |
|
|
370 | (2) |
|
Working with document libraries |
|
|
372 | (7) |
|
Creating a document library |
|
|
372 | (1) |
|
Adding a custom document template |
|
|
373 | (2) |
|
Creating document-based content types |
|
|
375 | (3) |
|
|
378 | (1) |
|
Creating and registering event handlers |
|
|
379 | (10) |
|
Understanding event receiver classes |
|
|
380 | (1) |
|
Understanding remote event receivers |
|
|
381 | (2) |
|
Registering event handlers |
|
|
383 | (4) |
|
Programming before events |
|
|
387 | (1) |
|
|
388 | (1) |
|
|
389 | (7) |
|
Understanding CAML fundamentals |
|
|
389 | (2) |
|
|
391 | (1) |
|
|
392 | (2) |
|
|
394 | (2) |
|
Working with LINQ to SharePoint |
|
|
396 | (8) |
|
Generating entities with SPMetal |
|
|
396 | (5) |
|
Querying with LINQ to SharePoint |
|
|
401 | (1) |
|
Adding, deleting, and updating with LINQ to SharePoint |
|
|
402 | (2) |
|
|
404 | (1) |
|
Chapter 10 SharePoint type definitions and templates |
|
|
405 | (36) |
|
|
405 | (23) |
|
Creating custom field types |
|
|
406 | (4) |
|
Creating custom field controls |
|
|
410 | (10) |
|
|
420 | (8) |
|
Custom site columns and content types |
|
|
428 | (5) |
|
Creating site columns and content types by using CAML |
|
|
428 | (2) |
|
Creating site columns and content types by using the server-side object model |
|
|
430 | (3) |
|
|
433 | (6) |
|
|
439 | (2) |
|
Chapter 11 SharePoint site provisioning |
|
|
441 | (26) |
|
The Global site definition |
|
|
442 | (1) |
|
|
443 | (8) |
|
|
443 | (2) |
|
ONET.xml for site definitions |
|
|
445 | (3) |
|
|
448 | (1) |
|
Order of provisioning when using site definitions |
|
|
449 | (1) |
|
|
450 | (1) |
|
|
451 | (7) |
|
|
451 | (1) |
|
ONET.xml for web templates |
|
|
452 | (3) |
|
|
455 | (3) |
|
Using custom code to create sites |
|
|
458 | (1) |
|
|
458 | (1) |
|
Site provisioning providers |
|
|
459 | (2) |
|
|
461 | (2) |
|
Web templates and SharePoint apps |
|
|
463 | (2) |
|
|
465 | (2) |
|
Chapter 12 SharePoint workflows |
|
|
467 | (36) |
|
Workflow architecture in SharePoint 2013 |
|
|
467 | (3) |
|
Installing and configuring a Workflow Manager 1.0 farm |
|
|
468 | (1) |
|
Understanding workflow in SharePoint 2013 |
|
|
469 | (1) |
|
Creating custom workflows for SharePoint 2013 |
|
|
469 | (1) |
|
Building custom workflows |
|
|
470 | (22) |
|
Custom workflows with Visio 2013 and SharePoint Designer 2013 |
|
|
470 | (6) |
|
Custom workflows with Visual Studio 2012 |
|
|
476 | (9) |
|
SharePoint Designer 2013 and web services |
|
|
485 | (2) |
|
Creating custom activities |
|
|
487 | (5) |
|
|
492 | (5) |
|
Adding tasks to a workflow |
|
|
492 | (2) |
|
|
494 | (3) |
|
Workflow services CSOM and JSOM |
|
|
497 | (1) |
|
Adding custom forms to workflows |
|
|
498 | (4) |
|
Association forms in SharePoint 2013 |
|
|
498 | (2) |
|
Initiation forms in SharePoint 2013 |
|
|
500 | (2) |
|
|
502 | (1) |
|
Chapter 13 SharePoint search |
|
|
503 | (38) |
|
Introducing search-based applications |
|
|
504 | (2) |
|
Understanding search architecture |
|
|
506 | (4) |
|
Understanding the indexing process |
|
|
507 | (2) |
|
Understanding the query process |
|
|
509 | (1) |
|
Understanding Keyword Query Language |
|
|
510 | (3) |
|
Creating no-code customizations |
|
|
513 | (10) |
|
Creating simple link queries |
|
|
513 | (1) |
|
Extending the Search Center |
|
|
514 | (9) |
|
Using the Content Search Web Part |
|
|
523 | (1) |
|
Using the client-side API |
|
|
523 | (5) |
|
|
524 | (2) |
|
|
526 | (2) |
|
Using the script Web Parts |
|
|
528 | (1) |
|
|
529 | (2) |
|
Enhancing content processing |
|
|
531 | (3) |
|
Creating Net Assembly Connectors for search |
|
|
534 | (5) |
|
|
534 | (3) |
|
Implementing security in search results |
|
|
537 | (2) |
|
Crawling the NET Assembly Connector |
|
|
539 | (1) |
|
|
539 | (2) |
|
Chapter 14 SharePoint Enterprise Content Management |
|
|
541 | (50) |
|
Understanding the Managed Metadata Service Application |
|
|
541 | (18) |
|
Understanding managed metadata |
|
|
542 | (3) |
|
Using managed metadata in a custom solution |
|
|
545 | (11) |
|
Understanding content type syndication |
|
|
556 | (3) |
|
|
559 | (25) |
|
|
559 | (4) |
|
Understanding Document IDs |
|
|
563 | (4) |
|
Understanding Document Sets |
|
|
567 | (7) |
|
Using the Content Organizer |
|
|
574 | (4) |
|
Understanding Word Automation Services |
|
|
578 | (6) |
|
|
584 | (5) |
|
In-place records management |
|
|
584 | (2) |
|
|
586 | (1) |
|
|
586 | (3) |
|
|
589 | (2) |
|
Chapter 15 Web content management |
|
|
591 | (30) |
|
Understanding the WCM features |
|
|
591 | (3) |
|
Publishing site templates |
|
|
592 | (2) |
|
Accessing SharePoint publishing files |
|
|
594 | (1) |
|
Mapping to the SharePoint Master Page Gallery |
|
|
594 | (1) |
|
|
595 | (5) |
|
Understanding the page model |
|
|
595 | (2) |
|
Creating a new page layout |
|
|
597 | (1) |
|
Managing the presentation of page fields |
|
|
597 | (2) |
|
Working with edit mode panels |
|
|
599 | (1) |
|
Working with Web Part zones |
|
|
600 | (1) |
|
Understanding device channels |
|
|
600 | (4) |
|
Working with device channel panels |
|
|
603 | (1) |
|
Understanding managed navigation |
|
|
604 | (3) |
|
Working with managed navigation APIs |
|
|
604 | (1) |
|
Creating a navigational term set |
|
|
605 | (2) |
|
|
607 | (10) |
|
Deciding between the Content Query and Content Search Web Parts |
|
|
609 | (2) |
|
Working with display templates |
|
|
611 | (6) |
|
Understanding cross-site publishing |
|
|
617 | (3) |
|
|
617 | (3) |
|
|
620 | (1) |
|
Chapter 16 Business Connectivity Services |
|
|
621 | (52) |
|
Introduction to Business Connectivity Services |
|
|
622 | (2) |
|
Creating simple BCS solutions |
|
|
624 | (4) |
|
Creating External Content Types |
|
|
624 | (3) |
|
|
627 | (1) |
|
Understanding External List limitations |
|
|
628 | (2) |
|
Understanding BCS architecture |
|
|
630 | (9) |
|
|
631 | (1) |
|
Understanding Business Data Connectivity |
|
|
631 | (1) |
|
|
632 | (3) |
|
Understanding the BDC Server Runtime |
|
|
635 | (1) |
|
Understanding the client cache |
|
|
635 | (1) |
|
Understanding the BDC Client Runtime |
|
|
635 | (1) |
|
Introduction to the Secure Store Service |
|
|
635 | (4) |
|
Understanding package deployment |
|
|
639 | (1) |
|
Understanding authentication scenarios |
|
|
639 | (4) |
|
Configuring authentication models |
|
|
639 | (4) |
|
Accessing claims-based systems |
|
|
643 | (1) |
|
Accessing token-based systems |
|
|
643 | (1) |
|
Managing client authentication |
|
|
643 | (1) |
|
Creating External Content Types |
|
|
644 | (7) |
|
|
645 | (3) |
|
|
648 | (1) |
|
|
649 | (2) |
|
Using ECTs in SharePoint 2013 |
|
|
651 | (4) |
|
|
651 | (1) |
|
Using External Data Columns |
|
|
652 | (1) |
|
Using External Data Web Parts |
|
|
652 | (1) |
|
|
653 | (1) |
|
Searching External Systems |
|
|
654 | (1) |
|
Supplementing user profiles |
|
|
655 | (1) |
|
Using ECTs in Office 2013 |
|
|
655 | (1) |
|
Understanding Outlook integration |
|
|
655 | (1) |
|
|
656 | (1) |
|
Creating custom BCS solutions |
|
|
656 | (15) |
|
Using the BDC Runtime object models |
|
|
656 | (3) |
|
Using the Administration Object Model |
|
|
659 | (3) |
|
Creating custom event receivers |
|
|
662 | (1) |
|
Creating NET Assembly Connectors |
|
|
663 | (5) |
|
Developing SharePoint apps |
|
|
668 | (3) |
|
|
671 | (2) |
|
Chapter 17 SharePoint social enterprise features |
|
|
673 | (52) |
|
What's new in SharePoint 2013 |
|
|
673 | (1) |
|
Understanding social components |
|
|
674 | (2) |
|
Working with the social APIs |
|
|
675 | (1) |
|
Understanding user profiles |
|
|
676 | (13) |
|
Retrieving user profile properties |
|
|
677 | (12) |
|
Understanding social feeds |
|
|
689 | (21) |
|
Retrieving posts from your newsfeed |
|
|
689 | (9) |
|
Retrieving posts from a site feed |
|
|
698 | (6) |
|
Posting to your personal feed |
|
|
704 | (5) |
|
|
709 | (1) |
|
Understanding following within SharePoint 2013 |
|
|
710 | (9) |
|
|
712 | (7) |
|
|
719 | (4) |
|
Understanding how Yammer can work with SharePoint |
|
|
719 | (1) |
|
Retrieving followers and followings from Yammer |
|
|
719 | (4) |
|
|
723 | (2) |
Index |
|
725 | |