Deep Dive into Orchard Extensibility for CMS Developers Renaud Paquay Senior Developer Lead Orchard Team [email protected].

Download Report

Transcript Deep Dive into Orchard Extensibility for CMS Developers Renaud Paquay Senior Developer Lead Orchard Team [email protected].

Deep Dive into Orchard Extensibility for CMS Developers

Renaud Paquay

Senior Developer Lead Orchard Team [email protected]

Orchard CMS

DEMO

What Is Orchard?

• Orchard is a free, open source, community-focused project aimed at delivering applications and reusable components on the ASP.NET platform.

http://orchard.codeplex.com

http://orchardproject.net

http://orchard.codeplex.com/releases

Target Audiences

Extensibility Deep Dive

• • • Audience for the rest of the presentation is developers Building a (very) basic “Products” module Goal is to give a glimpse of the CMS platform the core Orchard team is building

Orchard Architecture

Pages Feeds Themes Blogs Orchard Modules Comments Tags Scheduling Navigation XmlRpc Setup Users Settings Media Roles Homepage Orchard CMS ASP.NET MVC

Writing a module

DEMO

Orchard Themes

.ascx

(action specific view) Layout.ascx

<% Html.RegisterStyle("site.css“) Model.Zones.Add("header”); %>

<%

Html.ZoneBody("content")

;%>

Document.aspx

<%=Html.Title()%> <% Model.Zones.Add("head:before”); Html.Zone("head", ":metas :styles :scripts"); %> <%

Html.ZoneBody(“layout")

;%> Layout View Context

Accessing the database

DEMO

Composition

Data Composition

Record

Data

Record Record Record

Events

…passes back parts attached to Product type…

Data Composition

Product

Record

Data Tags Comments

Record Record

Common

Record

Events ProductHandler

…passes back parts attached to Product type…

Data Composition

ContentItemRecord

Id ContentTypeRecord_Id 5 7 1 1

ContentTypeRecord

Id Name 1 “page”

BodyRecord

Id Text 5 7 “

First post

” “

Second

RoutableRecord

Id Slug 5 7 “first-post” “second-post”

ContentItemRecord

Id ContentTypeRecord_Id 5 7 15 2 21 2 1 1

ContentTypeRecord

Id Name 1 2 “page” “product”

Data Composition

BodyRecord

Id Text 5 7 “

demo

” “

about us

ProductRecord

Id Sku Description 15 “sku1” 21 “sku2” “shoes” “t-shirt”

RoutableRecord

Id 5 7 Price 99.99

19.99

Slug “/home” “/about”

Defining a new content type

DEMO

UI Composition

UI Composition

Defining a content driver

DEMO

Conclusion

• • • • • •

What you’ve seen:

Defining a simple module as MVC “Area” Working with data (ProductRecord) Defining a content type (Product) Data Composition – ProductHandler, wiring up “Parts” like Common, Comments, Tags UI Composition – ProductDriver, ViewModels – Editor templates on back-end/admin Complete sample code on http://orchardproject.net

Conclusion

Other works-in-progress (not shown today):

• • • • • • • • • Permissions, default roles RSS/Atom XmlRpc Background tasks Eventing Logging Localization Site settings Etc.

Opportunities for You

• • • •

Success of Orchard depends on community contribution

We are seeking partners and early evaluators/adopters Reminder: this project is at a very early stage, so expect churn and breaking changes.

A few partners have started building stuff on Orchard today, and we’re getting great input from them…

Partners @ Mix

Itelios/Magelia – commerce module

Magelia Commerce is a complete e-commerce offering.

Matt Lee (Redgate) – reviewer app

Online book hosting and review

Charlie Strout (SevenShadow) – troav app

Troav is a social encyclopedia, where users can create "treasures" that they share with their friends.

Scott Cate (EasySearchASP.net) – search module

EasySearchASP.NET is a search engine component that is very easy to integrate to an ASP.NET web site.

Magelia

Magelia

Magelia

Magelia

• •

Magelia NetStore

Complete e-commerce offering

Targets mid-sized businesses

Open Source Edition H2 2010 (CodePlex)

Commercial version in 2011

Visit www.magelia.org

or www.itelios.com

Orchard & Magelia

Magelia benefits from Orchard extensibility

Orchard users can easily add commerce to sites

Reviewer

Reviewer

• •

Why Reviewer?

– Red Gate publishes technical books • http://www.red-gate.com/books – Needed innovative way of publishing and getting user feedback

Why Orchard?

– Get “common things” for free – users / comments / admin system / persistence – Orchard users can add reviewer to other sites as a module

Troav

Troav

• • • • • • • An Online Encyclopedia with a Social Twist Users Create “Treasures” to Share Friends Users Create Connections Between Treasures Custom Educational Tours of Historic Treasures Comments, Feeds, Linking, Blogs Geo-location and Mapping Location-aware Features

Why Orchard ?

– .NET MVC Framework – Out of the Box Modules Like Blogs and Pages – Easy Module and Theme Development – Ability to Use/Develop/Share Modules – Vibrant Developer Community http://Troav.com

[email protected]

Troav

EasySearchASP.NET

• TODO: Screenshot of EasySearch

EasySearchASP.NET

• TODO: Talking Points for EasySearch

Orchard Partners @ Mix

DEMO

Call to Action

• • •

Visit http://orchardproject.net

Opportunities to contribute to the system – Modules – Themes – Features – Design – Etc.

Come find us in the lounge following this session – we will be there to answer questions!