Paul Taylor, Solution Architect October 29, 2014
D E C O U P L E D A R C H I T E C T U R E A N D M V C
CMS Publishing Architectures
Decoupled Architecture and MVC Agenda
DECOUPLED ARCHITECTURE AND MVC - AGENDA
ASP.NET MVC Deployment Architecture
Resources
Your Feedback
DEMO: ASP.NET MVC Deployment with CrownPeak
2
CONFIDENTIAL
CMS PUBLISHING ARCHITECTUREIMPORTING / EXPORTING DATA
Any Platform
Anywhere…AnyIntegration
Any Device
4
CONFIDENTIAL
CMS PUBLISHING ARCHITECTUREDECOUPLED
ARCHITECTURE AND MVC
Delivery
Dynamic Services
Core Content Management
Template-Managed I/O
Policies and Standards
Input Processing
Search Management
Targeting and PersonalizationRepository
(content, security, workflow)
EndUser
System
Content DeliveryContent Management
Output Generation
5
CONFIDENTIAL
CMS PUBLISHING ARCHITECTUREDECOUPLED
ARCHITECTURE AND MVC
Core Content Management
Template-Managed I/O
Policies and Standards
Input Processing
Repository(content, security, workflow)
Content DeliveryContent Management
Output Generation
Delivery
CrownPeak-Hosted Platform
Customer-Hosted Platform
Third-Party Service
6
CONFIDENTIAL
CMS PUBLISHING ARCHITECTUREDECOUPLED
ARCHITECTURE AND MVC
Core Content Management
Template-Managed I/O
Policies and Standards
Input Processing
Repository(content, security, workflow)
Content DeliveryContent Management
Output Generation
Delivery
Java EE (JSP)
.Net (ASP)
PHP
XML
CSV
JSON
7
CONFIDENTIAL
WHAT IS MVC?MVC
DEPLOYMENT ARCHITECTURE
“Model-view-controller (MVC) is a software architectural pattern for implementing user interfaces”
Divides an application into three interconnected parts, abstracting responsibility into each
The Controller sends commands to the model to update its stateThe Model notifies its associated Views and Controllers where there has been a change in stateThe View requests information from the model to generate output to the user
http://en.wikipedia.org/wiki/Model–view–controller
9
CONFIDENTIAL
MVC AND CROWNPEAK?
In terms of the CrownPeak CMS, an MVC deployment is no different to anything else
We still publish files, from templates, onto a publishing target
MVC DEPLOYMENT
ARCHITECTURE
10
CONFIDENTIAL
MVC AND CROWNPEAK?
CompromiseMVC separates Model, View & ControllerThe CMS doesn’t understand the MVC concept, and so can’t separate Model from View to enable CMS preview
Traditionalists won’t like the breakdown of rulesAccommodate some compromises to work with a CMS tool
It’s not all change…Still work with Global Layouts, Views, Partial Views, ViewBag, ViewData & RAZR syntax!There are no requirements for custom code to be deployed on the Delivery Server
MVC DEPLOYMENT
ARCHITECTURE
11
CONFIDENTIAL
MVC AND CROWNPEAK?MVC
DEPLOYMENT ARCHITECTURE
Models
Controllers
Layout(s)
View(s)
ASP.NET MVC Application
Configuration
Developer Maintained Code
Model(s)
Controller(s)
Configuration (routes)
CrownPeak CMSLayouts
Views / Partial Views
Developer Maintained Code
CrownPeak CMSPreview
12
CONFIDENTIAL
DEMODECOUPLED
ARCHITECTURE AND MVC
Deploy site as an ASP.NET MVC Application from within the CrownPeak CMSBuild site structure & templates in the CMS to facilitate the deployment of Views into the custom ASP.NET MVC projectConfigure custom publishing rules
Build a custom ASP.NET MVC project in C# to handle Models & Controllers
ASP.NET MVC Application
/bin, /Views,/Global.asax,/Web.configDeveloper
Maintained CodeVisual Studio
(Models, Controllers, Routes)
CrownPeak CMSOutput Template Files
(Layouts, Views, Partial Views)
Microsoft IIS Server
14
CONFIDENTIAL
RESOURCESPlaybooks – Available on CrownPeak Connect
https://connect.crownpeak.com/developers_and_partners/solutions/solutions_reference_guides/documents/design-patterns-best-practices/playbooks/crownpeakplaybookmvcimplementationspdf
Best Practicehttps://connect.crownpeak.com/developers_and_partners/solutions/solutions_reference_guides/documents/design-patterns-best-practices/best_practices/crownpeakmvcreferencearchitecturepdf
Discussionhttps://connect.crownpeak.com/developers_and_partners/forums/solutions_and_extensions
SEARCH G2 -INTRODUCTION
16
Product Management
Community Feedback Developers
Customer Success
We want your feedback!We are here to hear your ideas and requests.
PARTNER SUMMIT - FEEDBACK
18
Twitter@CrownPeak#CrownPeakPartners
For ongoing discussions with the CrownPeak community on
• Template development• User & Developer Experience• Solutions and Extensions• Product features & roadmap• Hosting & Publishing• Integrations
Forums on Connect
PARTNER SUMMIT - FEEDBACK
19
MEET THE TEAM
MAKE
SUGGESTIONS
ASK QUESTIONS
Partners and Developers
Access to Customer Success and Product Teams
PARTNER SUMMIT - FEEDBACK
20