Foreword |
|
xiii | |
About the Authors |
|
xv | |
About the Contributor |
|
xvii | |
About the Technical Reviewers |
|
xix | |
Acknowledgments |
|
xxi | |
Introduction |
|
xxiii | |
|
Chapter 1 Getting Started |
|
|
1 | (38) |
|
|
1 | (2) |
|
Developer Platforms versus Portal Solutions |
|
|
3 | (1) |
|
Sitecore's Key Features and Capabilities |
|
|
4 | (5) |
|
Infrastructure and Services Architecture Options |
|
|
9 | (6) |
|
A Tour of the Sitecore Admin Interface |
|
|
15 | (3) |
|
What's New in Sitecore 8? |
|
|
18 | (2) |
|
|
20 | (1) |
|
|
21 | (2) |
|
|
23 | (1) |
|
|
24 | (3) |
|
Setting Up Your Development Environment |
|
|
27 | (1) |
|
Tools Every Sitecore Developer Needs |
|
|
27 | (1) |
|
|
27 | (4) |
|
|
31 | (7) |
|
|
38 | (1) |
|
Chapter 2 Building Your First Component |
|
|
39 | (38) |
|
Building a View Rendering |
|
|
39 | (1) |
|
Working with Layouts and Placeholders |
|
|
39 | (12) |
|
|
51 | (1) |
|
|
52 | (2) |
|
Adding a Component to a New Page |
|
|
54 | (7) |
|
Building a Controller Rendering |
|
|
61 | (1) |
|
Controller Renderings versus View Renderings |
|
|
61 | (1) |
|
Creating a Controller Rendering |
|
|
62 | (13) |
|
|
75 | (2) |
|
Chapter 3 Data Templates and Content |
|
|
77 | (38) |
|
|
77 | (1) |
|
|
78 | (1) |
|
|
79 | (4) |
|
|
83 | (7) |
|
|
90 | (1) |
|
|
90 | (1) |
|
|
90 | (2) |
|
|
92 | (3) |
|
Data Template Inheritance |
|
|
95 | (2) |
|
Working with Standard Values |
|
|
97 | (1) |
|
Configuring Default Values |
|
|
98 | (5) |
|
Configuring Insert Options |
|
|
103 | (1) |
|
Templates and Configurations |
|
|
103 | (1) |
|
Creating Our Branch Templates |
|
|
103 | (2) |
|
Content Management Fundamentals |
|
|
105 | (1) |
|
Where Do You Manage Content? |
|
|
105 | (2) |
|
Architecting Your Content Tree |
|
|
107 | (2) |
|
|
109 | (1) |
|
|
110 | (1) |
|
|
111 | (1) |
|
Content Approval and Publishing Workflows |
|
|
112 | (1) |
|
|
112 | (1) |
|
Deleting and Archiving Content |
|
|
112 | (1) |
|
|
113 | (1) |
|
Multilingual Content Translations |
|
|
113 | (1) |
|
|
114 | (1) |
|
Chapter 4 Back-End Dev Architectures |
|
|
115 | (36) |
|
The Model-View-Controller Design Pattern |
|
|
115 | (8) |
|
Sitecore Modular Architecture |
|
|
123 | (5) |
|
|
128 | (1) |
|
Stubbing Out a Web Project |
|
|
128 | (14) |
|
Creating Your First Module |
|
|
142 | (3) |
|
|
145 | (4) |
|
|
149 | (2) |
|
Chapter 5 Improving the Design with Patterns |
|
|
151 | (36) |
|
Refactoring: Incorporating the Repository Pattern |
|
|
151 | (7) |
|
Refactoring: Incorporating a Service Layer Pattern |
|
|
158 | (11) |
|
Refactoring: Incorporating Object-Relational Mapping |
|
|
169 | (5) |
|
Refactoring: Incorporating Generics |
|
|
174 | (6) |
|
Refactoring: Incorporating Inversion of Control |
|
|
180 | (6) |
|
|
186 | (1) |
|
Chapter 6 Front-End Dev Techniques |
|
|
187 | (22) |
|
Presentation and Applying Layouts |
|
|
187 | (8) |
|
Razor, CSS, JavaScript, and Gulp |
|
|
195 | (1) |
|
Programming Razor and Forms |
|
|
195 | (7) |
|
Getting CSS and JS on a Page |
|
|
202 | (1) |
|
CSS and JS Minification with Gulp |
|
|
202 | (4) |
|
|
206 | (2) |
|
|
208 | (1) |
|
Chapter 7 Unit Testing Sitecore |
|
|
209 | (32) |
|
Getting Started Unit Testing |
|
|
210 | (3) |
|
Making Tests Easier to Read with FluentAssertions |
|
|
213 | (1) |
|
Creating Dummy Data, the Easy Way, with AutoFixture |
|
|
214 | (2) |
|
|
216 | (2) |
|
|
218 | (4) |
|
Refactoring to Include a Service Test Harness |
|
|
222 | (3) |
|
Unit Testing a Controller |
|
|
225 | (4) |
|
Refactoring to Include a Controller Test Harness |
|
|
229 | (4) |
|
|
233 | (6) |
|
|
239 | (2) |
|
Chapter 8 Search-Driven Solutions |
|
|
241 | (38) |
|
|
241 | (5) |
|
|
246 | (13) |
|
Creating a Computed Field |
|
|
259 | (9) |
|
|
268 | (3) |
|
Refining Results with Faceted Search |
|
|
271 | (7) |
|
|
278 | (1) |
|
Chapter 9 Programming the Customer Journey |
|
|
279 | (40) |
|
Extending Web Forms for Marketers |
|
|
280 | (11) |
|
Programing Goals, Events, and Outcomes |
|
|
291 | (3) |
|
Custom Personalization Rules |
|
|
294 | (6) |
|
Extending Engagement Plans |
|
|
300 | (4) |
|
Programming the xDB Contact |
|
|
304 | (1) |
|
|
304 | (2) |
|
|
306 | (1) |
|
|
307 | (2) |
|
Programing the Out-of-the-Box Facets |
|
|
309 | (2) |
|
|
311 | (3) |
|
Federated Experience Manager |
|
|
314 | (3) |
|
|
317 | (2) |
|
Chapter 10 Sitecore PowerShell Extensions |
|
|
319 | (60) |
|
Installing the PowerShell Extensions |
|
|
320 | (1) |
|
|
320 | (1) |
|
|
320 | (7) |
|
|
327 | (1) |
|
|
328 | (1) |
|
|
328 | (1) |
|
|
329 | (1) |
|
|
330 | (1) |
|
Out-of-the-Box SPE Features |
|
|
330 | (1) |
|
|
330 | (8) |
|
|
338 | (2) |
|
|
340 | (1) |
|
Programming Sitecore with PowerShell |
|
|
341 | (1) |
|
Learning PowerShell as a Language |
|
|
341 | (5) |
|
|
346 | (1) |
|
Building Your First Module |
|
|
347 | (23) |
|
|
370 | (2) |
|
|
372 | (4) |
|
|
376 | (1) |
|
|
377 | (2) |
|
Chapter 11 Extending the Experience Editor |
|
|
379 | (40) |
|
Configuring Dynamic Placeholders |
|
|
379 | (3) |
|
Customizing Renderings in the Experience Editor |
|
|
382 | (7) |
|
Custom Experience Editor Buttons and Properties |
|
|
389 | (3) |
|
Configuring Custom Component Toolbar Buttons |
|
|
392 | (4) |
|
Configuring Custom Component Parameters |
|
|
396 | (5) |
|
Configuring Custom Component Experience Editor Buttons |
|
|
401 | (17) |
|
|
418 | (1) |
Index |
|
419 | |