SlideShare a Scribd company logo
1 of 45
Alexandre Marreiros, 2011




Development discussion for web
Alexandre Marreiros, 2011


Agenda
 Introduction
 Review
 UI Pipeline
 Content Display Placement
 Get The Enviroment to develop
 Development modules
 Taxonomy
 MultiLanguage
Alexandre Marreiros, 2011


Agenda
 Navigation
 Thinks about Content
 Theme Build
 ContentDisplay Development Aproach
 Galleries
 Building a Module
 Integrate MVC Module
 ContentPart Build
 Widget
Alexandre Marreiros, 2011


Introduction
In this module we will learn and explore the development in
Orchard CMS.

Is requirement for this module the understanding of Orchard
concepts
Alexandre Marreiros, 2011


Review
                       Orchard CMS



        Razor Views                  Database Engine


                                         OR
       ASP.NET MVC 3                              Sql Server
                              SQL CE
                                                      (*)


          .NET 4.5


*sql server > 2000 any version in house and SQL Azure
Alexandre Marreiros, 2011


Review
                                                                  Buch of
Typed single                                                      information and
Information    Content                              Content
                Field                                             reusable
                                                     Part         behaviour



                                    Content
          Classes of                 Type
          Data, Abstration of
          concepts


                                Instance of content     Content
                                type, Single piece of    Item
                                content
Alexandre Marreiros, 2011


Review
Theme rendering engine



                      Current                   Active
                      Theme                     Theme




                                                   Module



•   When a theme does not define the look and feel of a module that comes from
    the active team and if no active team from the module itself
•   The Active Theme can become the cureent theme if a theme selector elevate is
    priority
Alexandre Marreiros, 2011


Review
Render Engine
                          Header       Widget           Shape
 Theme        Layout        …
 Render         UI
                          Content      Content          Shape


The UI of Orchard are a compound UI once that all the UI is
divided in to different small blocks of UI

Shapes are dynamic UI models of data

We can define just as a Shape as simple a Razor template
Alexandre Marreiros, 2011


Orchard Render pipeline
                        Theme


                Layer
                                     Layout


                                              Template
       widget                                  Display




                Zone                   Shape




                         Placement
Alexandre Marreiros, 2011


Content Display Concepts
Placed:
 Location-Driven
 Widgets


Dynamic:
 Metadata Driven
 From other parts of the website
Alexandre Marreiros, 2011


Get the Enviroment to develop
Orchard is Hosted in a Mercurial client if you want a full
version of Orchard you should get one.

So first lets install TortoiseHG

Once installed let’s get the orchard Code full version from
codeplex cloning the source
Alexandre Marreiros, 2011


Get the Enviroment to develop
Alexandre Marreiros, 2011




       Demo how to use the Tortoise




Demo
Alexandre Marreiros, 2011


Development Modules
Orchard Gallery have to Modules that were
made to be used as development helper tools:

   Code Generation

   Designer Tools

First step before start developing is install them
Alexandre Marreiros, 2011


Development Modules
Code Generation
Is a command line tool that enable us to generate
the modules template to make easy the
development
Alexandre Marreiros, 2011


Development Modules
Designer Tools

This modules come with different features, for
validate in runtime the different Shapes involved in
Content presentation.
Alexandre Marreiros, 2011




       Demo how to use the Tools




Demo
Alexandre Marreiros, 2011


Taxonomy
To enable Taxonomy go to the gallery and get the module
named:
      Taxonomies
Once instaled you will get a new entrance in the menu
dashboard named Taxonomie. Here you can create your
taxonomy store and manage the vocabulary.
Alexandre Marreiros, 2011


Taxonomy
To use taxonomy in a ContentType you need to add a
Taxonomy Field
                   Then you need to configure the field




When a user creates a content type in edit mode he will be
able to associate with a Taxonomy
Alexandre Marreiros, 2011


MultiLanguage
 If we want Orchard to be capable of working with multi
language we should first off all say that ContentItems can
be in different Cultures. That is made in Orchard
Settings>general




We have to install from the gallery the Module Culture
Picker. Now we can now create contents in different
languages
Alexandre Marreiros, 2011


MultiLanguage
To have the capacity to create populated zone
for a specific cultures we shoul install the
Module:
      Culture Layer

This module will enable you to have a different
layer foreach culture
Alexandre Marreiros, 2011




       Demo Taxonomy and MultiLanguage




Demo
Alexandre Marreiros, 2011


Navigation
 Orchard Content Items are viewed as plain
contents side by side.

The default menu for Orchard is a plain Menu.

Theres another modules in the gallery that allows
multi level menus: AdvancedMenu
This enable you to create menus that have
associated contents.
Alexandre Marreiros, 2011


Navigation
If you need some kind of context or tree view of
navigation Is sujested you create your own menu
Module.

In the Gallery you have also a menu that is based
off the navigation choosen by you like:
BetterMenus
Alexandre Marreiros, 2011


Thinks about Content
One of the first things to think when modeling a Orchard website
is the types of content we will display in the site.

When to define specific Content Types:
 If I had Content that can be viewed as a class of content
 If some type of content has a special kind of layout (imagine a
  Event Page != Page becouse info and presentation)
 I have the need to relate content based on his class not his
  taxonomy or tag but semantic type class
 Types with very specific kinds of data
Alexandre Marreiros, 2011


Thinks about Content
Like said previous ContentParts are a way to specify that
Classes of types:
 Have some specific parts of relational data
 And implement based on his existence some behaviour


When modeling new content types is important to decide
what are the behaviours we intend that or ContentTypes
Instance will implement

                          New Type



            Containable              Route
Alexandre Marreiros, 2011


Thinks about Content
To change the Look and Feel of the content the most simple
ways are:

   Create a partial view that are render in layout based on
    the ContentType (when layout is very different)
   Create an alternate for the Content shape based on the
    Content Type (when is all a matter of how content
    renders and what renders)
Alexandre Marreiros, 2011


Thinks about Content
One important lesson to remember some of the main native
Orchard Content Parts

   Common: enables item to be consider as a public item to
    be rendered
   Route: enables Item to have a slug, based an be
    contained by navigation
   Containable: enables a item to be part of a container
   Container: enables an item to contain other items
Alexandre Marreiros, 2011


Thinks about Content
Alexandre Marreiros, 2011


Thinks about Content
Alexandre Marreiros, 2011




       Demo of Content Types power




Demo
Alexandre Marreiros, 2011


Theme Build
The steps to build a Orchard Theme
Step1: generate the theme package
Go to orchard commandline and call codegen

*when generating the theme choose include in the soultion.
Step 2: add the CSS files and script files to the
right Folder of the Theme
Alexandre Marreiros, 2011


Theme Build
       You can create the base definition for the
       HTML render document:
           Document.cshtml
To define the layout of the site we should
implement the Layout.cshtml

In this file we include the styles images and
templates fort each content and zones are
called.
Alexandre Marreiros, 2011


Theme Build
If we want to define a bunch of totally different
layouts we can call partial views for each
content based on a condition.



            @Html.Partial("_Inner")
Alexandre Marreiros, 2011


Theme Build
On thing to consider is the zones avaiable and
when they render
@{
  var displayFooter = (Model.Footer != null);
}

@if(displayFooter){
    <div id="footerList"> @Display(Model.Footer) </div>
}


You have also to declare in the manifest the different zones
to consider (using the theme manifesto Theme.txt)
Alexandre Marreiros, 2011


Theme Build
Final step is to use Shapes and placement to
choose the way we want contents to be render
and where.
A good aproach for that is using Shapetrace
Alexandre Marreiros, 2011




       Demo Theme Building




Demo
Alexandre Marreiros, 2011


ContentDisplay Dev Aproach
 There are different ways to look to development in
Orchard. One approach is prepare the Theme to
answer the stimulus off the content on the render
time to change the display how give final user
some functionality.




      Front End                 Ritch Text edition
Alexandre Marreiros, 2011




       Demo ContentDisplay aproach




Demo
Alexandre Marreiros, 2011


Galleries
 Theres a bunch of Module Galleries in the
communitie. When we talk about gallerie there are
to different famelies
                            Galleries



             Content item                A field or part
               Gallery                  that is a gallery

     Pretty Gallery                             Image Gallery
     Fliker Gallery                             Document Gallery
Alexandre Marreiros, 2011


Building a Module
 The first thing before create a Orchard Module is
to understand some of his pieces

     Model        The class that represents the part or the data.



     Drivers      Prepare Shapes for render handle Posts from admin


    Handler         Class that execute code for specific events


                Discription of operations to use when module install
    Migration
                                      or migrates
Alexandre Marreiros, 2011


Building a Module
With this in mind building a module is not
different from building a module to na MVC app.

But demmands the knowldge of this new
concepts.

Now hands on job let’s build modules, and a
content part
Alexandre Marreiros, 2011




       Demo building a module and a contentpart




Demo
Alexandre Marreiros, 2011


References
   http://www.orchardproject.net/
   http://www.deepcode.co.uk/2011/05/real-world-orchard-
    cms-part-3-creating.html
   http://channel9.msdn.com/Events/TechEd/NorthAmerica/
    2011/DEV355
   http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-
    net-mvc-3-and-the-helper-syntax-within-razor.aspx
   http://Asp.net
Alexandre Marreiros, 2011




Email: Amarreiros@gmail.com
Twitter: @alexmarreiros

Feel free to ask

More Related Content

Similar to Pragmatic orchard 2

one|content : joomla on steroids
one|content : joomla on steroidsone|content : joomla on steroids
one|content : joomla on steroidsPaul Delbar
 
Drupal - presentazione formazione sessione I
Drupal - presentazione formazione sessione IDrupal - presentazione formazione sessione I
Drupal - presentazione formazione sessione IGian Luca Matteucci
 
Customizing ERModernLook Applications
Customizing ERModernLook ApplicationsCustomizing ERModernLook Applications
Customizing ERModernLook ApplicationsWO Community
 
Domas monkus drupal module development
Domas monkus drupal module developmentDomas monkus drupal module development
Domas monkus drupal module developmentDomas Monkus
 
Beginner's guide to drupal
Beginner's guide to drupalBeginner's guide to drupal
Beginner's guide to drupalmayank.grd
 
C# Design Patterns | Design Pattern Tutorial For Beginners | C# Programming T...
C# Design Patterns | Design Pattern Tutorial For Beginners | C# Programming T...C# Design Patterns | Design Pattern Tutorial For Beginners | C# Programming T...
C# Design Patterns | Design Pattern Tutorial For Beginners | C# Programming T...Simplilearn
 
Things Made Easy: One Click CMS Integration with Solr & Drupal
Things Made Easy: One Click CMS Integration with Solr & DrupalThings Made Easy: One Click CMS Integration with Solr & Drupal
Things Made Easy: One Click CMS Integration with Solr & Drupallucenerevolution
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfOrtus Solutions, Corp
 
Introduction To Drupal
Introduction To DrupalIntroduction To Drupal
Introduction To DrupalLauren Roth
 
Dita for the web: Make Adaptive Content Simple for Writers and Developer
Dita for the web: Make Adaptive Content Simple for Writers and DeveloperDita for the web: Make Adaptive Content Simple for Writers and Developer
Dita for the web: Make Adaptive Content Simple for Writers and DeveloperDon Day
 
Drupal8 corporate training in Hyderabad
Drupal8 corporate training in HyderabadDrupal8 corporate training in Hyderabad
Drupal8 corporate training in Hyderabadphp2ranjan
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"GlobalLogic Ukraine
 
Cocoa encyclopedia
Cocoa encyclopediaCocoa encyclopedia
Cocoa encyclopediaAlex Ali
 
ECM And Enterprise Metadata in SharePoint 2010
ECM And Enterprise Metadata in SharePoint 2010ECM And Enterprise Metadata in SharePoint 2010
ECM And Enterprise Metadata in SharePoint 2010Phuong Nguyen
 
Elements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdfElements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdfJeff Smith
 
Elements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdfElements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdfJeff Smith
 
Elements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdfElements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdfJeff Smith
 
Elements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdfElements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdfJeff Smith
 

Similar to Pragmatic orchard 2 (20)

one|content : joomla on steroids
one|content : joomla on steroidsone|content : joomla on steroids
one|content : joomla on steroids
 
Drupal - presentazione formazione sessione I
Drupal - presentazione formazione sessione IDrupal - presentazione formazione sessione I
Drupal - presentazione formazione sessione I
 
Customizing ERModernLook Applications
Customizing ERModernLook ApplicationsCustomizing ERModernLook Applications
Customizing ERModernLook Applications
 
Domas monkus drupal module development
Domas monkus drupal module developmentDomas monkus drupal module development
Domas monkus drupal module development
 
Beginner's guide to drupal
Beginner's guide to drupalBeginner's guide to drupal
Beginner's guide to drupal
 
Design patterns
Design patternsDesign patterns
Design patterns
 
C# Design Patterns | Design Pattern Tutorial For Beginners | C# Programming T...
C# Design Patterns | Design Pattern Tutorial For Beginners | C# Programming T...C# Design Patterns | Design Pattern Tutorial For Beginners | C# Programming T...
C# Design Patterns | Design Pattern Tutorial For Beginners | C# Programming T...
 
Things Made Easy: One Click CMS Integration with Solr & Drupal
Things Made Easy: One Click CMS Integration with Solr & DrupalThings Made Easy: One Click CMS Integration with Solr & Drupal
Things Made Easy: One Click CMS Integration with Solr & Drupal
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
 
Introduction To Drupal
Introduction To DrupalIntroduction To Drupal
Introduction To Drupal
 
Raptor 2
Raptor 2Raptor 2
Raptor 2
 
Dita for the web: Make Adaptive Content Simple for Writers and Developer
Dita for the web: Make Adaptive Content Simple for Writers and DeveloperDita for the web: Make Adaptive Content Simple for Writers and Developer
Dita for the web: Make Adaptive Content Simple for Writers and Developer
 
Drupal8 corporate training in Hyderabad
Drupal8 corporate training in HyderabadDrupal8 corporate training in Hyderabad
Drupal8 corporate training in Hyderabad
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
 
Cocoa encyclopedia
Cocoa encyclopediaCocoa encyclopedia
Cocoa encyclopedia
 
ECM And Enterprise Metadata in SharePoint 2010
ECM And Enterprise Metadata in SharePoint 2010ECM And Enterprise Metadata in SharePoint 2010
ECM And Enterprise Metadata in SharePoint 2010
 
Elements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdfElements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdf
 
Elements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdfElements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdf
 
Elements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdfElements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdf
 
Elements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdfElements_Content_Model_Overview.pdf
Elements_Content_Model_Overview.pdf
 

More from Alexandre Marreiros

Xamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsXamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsAlexandre Marreiros
 
ASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a coupleASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a coupleAlexandre Marreiros
 
Jws masterclass progressive web apps
Jws masterclass progressive web appsJws masterclass progressive web apps
Jws masterclass progressive web appsAlexandre Marreiros
 
Quick View of Angular JS for High School
Quick View of Angular JS for High SchoolQuick View of Angular JS for High School
Quick View of Angular JS for High SchoolAlexandre Marreiros
 
Pt xug xamarin pratices on big ui consumer apps
Pt xug  xamarin pratices on big ui consumer appsPt xug  xamarin pratices on big ui consumer apps
Pt xug xamarin pratices on big ui consumer appsAlexandre Marreiros
 
Gab2015 azure search as a service
Gab2015 azure search as a serviceGab2015 azure search as a service
Gab2015 azure search as a serviceAlexandre Marreiros
 
Pragmatic responsive web design industry session 7
Pragmatic responsive web design   industry session 7Pragmatic responsive web design   industry session 7
Pragmatic responsive web design industry session 7Alexandre Marreiros
 
Universal Apps Development using HTML 5 and WINJS
Universal Apps Development using HTML 5 and WINJSUniversal Apps Development using HTML 5 and WINJS
Universal Apps Development using HTML 5 and WINJSAlexandre Marreiros
 
Windows8.1 html5 dev paradigm discussion netponto
Windows8.1 html5 dev paradigm discussion netpontoWindows8.1 html5 dev paradigm discussion netponto
Windows8.1 html5 dev paradigm discussion netpontoAlexandre Marreiros
 

More from Alexandre Marreiros (20)

Agular fromthetrenches2netponto
Agular fromthetrenches2netpontoAgular fromthetrenches2netponto
Agular fromthetrenches2netponto
 
Whats a Chat bot
Whats a Chat botWhats a Chat bot
Whats a Chat bot
 
Type of angular 2
Type of angular 2Type of angular 2
Type of angular 2
 
Xamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsXamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected apps
 
ASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a coupleASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a couple
 
Angular 2
Angular 2Angular 2
Angular 2
 
Jws masterclass progressive web apps
Jws masterclass progressive web appsJws masterclass progressive web apps
Jws masterclass progressive web apps
 
Xamarin.forms
Xamarin.forms Xamarin.forms
Xamarin.forms
 
Quick View of Angular JS for High School
Quick View of Angular JS for High SchoolQuick View of Angular JS for High School
Quick View of Angular JS for High School
 
Pt xug xamarin pratices on big ui consumer apps
Pt xug  xamarin pratices on big ui consumer appsPt xug  xamarin pratices on big ui consumer apps
Pt xug xamarin pratices on big ui consumer apps
 
Get satrted angular js day 2
Get satrted angular js day 2Get satrted angular js day 2
Get satrted angular js day 2
 
Get satrted angular js
Get satrted angular jsGet satrted angular js
Get satrted angular js
 
Gab2015 azure search as a service
Gab2015 azure search as a serviceGab2015 azure search as a service
Gab2015 azure search as a service
 
Pragmatic responsive web design industry session 7
Pragmatic responsive web design   industry session 7Pragmatic responsive web design   industry session 7
Pragmatic responsive web design industry session 7
 
Boot strapandresponsiveintro
Boot strapandresponsiveintroBoot strapandresponsiveintro
Boot strapandresponsiveintro
 
WebSite development using WinJS
WebSite development using WinJSWebSite development using WinJS
WebSite development using WinJS
 
Universal Apps Development using HTML 5 and WINJS
Universal Apps Development using HTML 5 and WINJSUniversal Apps Development using HTML 5 and WINJS
Universal Apps Development using HTML 5 and WINJS
 
GWAB Mobile Services
GWAB Mobile ServicesGWAB Mobile Services
GWAB Mobile Services
 
Html5ignition newweborder
Html5ignition newweborderHtml5ignition newweborder
Html5ignition newweborder
 
Windows8.1 html5 dev paradigm discussion netponto
Windows8.1 html5 dev paradigm discussion netpontoWindows8.1 html5 dev paradigm discussion netponto
Windows8.1 html5 dev paradigm discussion netponto
 

Recently uploaded

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Recently uploaded (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

Pragmatic orchard 2

  • 2. Alexandre Marreiros, 2011 Agenda  Introduction  Review  UI Pipeline  Content Display Placement  Get The Enviroment to develop  Development modules  Taxonomy  MultiLanguage
  • 3. Alexandre Marreiros, 2011 Agenda  Navigation  Thinks about Content  Theme Build  ContentDisplay Development Aproach  Galleries  Building a Module  Integrate MVC Module  ContentPart Build  Widget
  • 4. Alexandre Marreiros, 2011 Introduction In this module we will learn and explore the development in Orchard CMS. Is requirement for this module the understanding of Orchard concepts
  • 5. Alexandre Marreiros, 2011 Review Orchard CMS Razor Views Database Engine OR ASP.NET MVC 3 Sql Server SQL CE (*) .NET 4.5 *sql server > 2000 any version in house and SQL Azure
  • 6. Alexandre Marreiros, 2011 Review Buch of Typed single information and Information Content Content Field reusable Part behaviour Content Classes of Type Data, Abstration of concepts Instance of content Content type, Single piece of Item content
  • 7. Alexandre Marreiros, 2011 Review Theme rendering engine Current Active Theme Theme Module • When a theme does not define the look and feel of a module that comes from the active team and if no active team from the module itself • The Active Theme can become the cureent theme if a theme selector elevate is priority
  • 8. Alexandre Marreiros, 2011 Review Render Engine Header Widget Shape Theme Layout … Render UI Content Content Shape The UI of Orchard are a compound UI once that all the UI is divided in to different small blocks of UI Shapes are dynamic UI models of data We can define just as a Shape as simple a Razor template
  • 9. Alexandre Marreiros, 2011 Orchard Render pipeline Theme Layer Layout Template widget Display Zone Shape Placement
  • 10. Alexandre Marreiros, 2011 Content Display Concepts Placed:  Location-Driven  Widgets Dynamic:  Metadata Driven  From other parts of the website
  • 11. Alexandre Marreiros, 2011 Get the Enviroment to develop Orchard is Hosted in a Mercurial client if you want a full version of Orchard you should get one. So first lets install TortoiseHG Once installed let’s get the orchard Code full version from codeplex cloning the source
  • 12. Alexandre Marreiros, 2011 Get the Enviroment to develop
  • 13. Alexandre Marreiros, 2011 Demo how to use the Tortoise Demo
  • 14. Alexandre Marreiros, 2011 Development Modules Orchard Gallery have to Modules that were made to be used as development helper tools:  Code Generation  Designer Tools First step before start developing is install them
  • 15. Alexandre Marreiros, 2011 Development Modules Code Generation Is a command line tool that enable us to generate the modules template to make easy the development
  • 16. Alexandre Marreiros, 2011 Development Modules Designer Tools This modules come with different features, for validate in runtime the different Shapes involved in Content presentation.
  • 17. Alexandre Marreiros, 2011 Demo how to use the Tools Demo
  • 18. Alexandre Marreiros, 2011 Taxonomy To enable Taxonomy go to the gallery and get the module named: Taxonomies Once instaled you will get a new entrance in the menu dashboard named Taxonomie. Here you can create your taxonomy store and manage the vocabulary.
  • 19. Alexandre Marreiros, 2011 Taxonomy To use taxonomy in a ContentType you need to add a Taxonomy Field Then you need to configure the field When a user creates a content type in edit mode he will be able to associate with a Taxonomy
  • 20. Alexandre Marreiros, 2011 MultiLanguage If we want Orchard to be capable of working with multi language we should first off all say that ContentItems can be in different Cultures. That is made in Orchard Settings>general We have to install from the gallery the Module Culture Picker. Now we can now create contents in different languages
  • 21. Alexandre Marreiros, 2011 MultiLanguage To have the capacity to create populated zone for a specific cultures we shoul install the Module: Culture Layer This module will enable you to have a different layer foreach culture
  • 22. Alexandre Marreiros, 2011 Demo Taxonomy and MultiLanguage Demo
  • 23. Alexandre Marreiros, 2011 Navigation Orchard Content Items are viewed as plain contents side by side. The default menu for Orchard is a plain Menu. Theres another modules in the gallery that allows multi level menus: AdvancedMenu This enable you to create menus that have associated contents.
  • 24. Alexandre Marreiros, 2011 Navigation If you need some kind of context or tree view of navigation Is sujested you create your own menu Module. In the Gallery you have also a menu that is based off the navigation choosen by you like: BetterMenus
  • 25. Alexandre Marreiros, 2011 Thinks about Content One of the first things to think when modeling a Orchard website is the types of content we will display in the site. When to define specific Content Types:  If I had Content that can be viewed as a class of content  If some type of content has a special kind of layout (imagine a Event Page != Page becouse info and presentation)  I have the need to relate content based on his class not his taxonomy or tag but semantic type class  Types with very specific kinds of data
  • 26. Alexandre Marreiros, 2011 Thinks about Content Like said previous ContentParts are a way to specify that Classes of types:  Have some specific parts of relational data  And implement based on his existence some behaviour When modeling new content types is important to decide what are the behaviours we intend that or ContentTypes Instance will implement New Type Containable Route
  • 27. Alexandre Marreiros, 2011 Thinks about Content To change the Look and Feel of the content the most simple ways are:  Create a partial view that are render in layout based on the ContentType (when layout is very different)  Create an alternate for the Content shape based on the Content Type (when is all a matter of how content renders and what renders)
  • 28. Alexandre Marreiros, 2011 Thinks about Content One important lesson to remember some of the main native Orchard Content Parts  Common: enables item to be consider as a public item to be rendered  Route: enables Item to have a slug, based an be contained by navigation  Containable: enables a item to be part of a container  Container: enables an item to contain other items
  • 31. Alexandre Marreiros, 2011 Demo of Content Types power Demo
  • 32. Alexandre Marreiros, 2011 Theme Build The steps to build a Orchard Theme Step1: generate the theme package Go to orchard commandline and call codegen *when generating the theme choose include in the soultion. Step 2: add the CSS files and script files to the right Folder of the Theme
  • 33. Alexandre Marreiros, 2011 Theme Build You can create the base definition for the HTML render document: Document.cshtml To define the layout of the site we should implement the Layout.cshtml In this file we include the styles images and templates fort each content and zones are called.
  • 34. Alexandre Marreiros, 2011 Theme Build If we want to define a bunch of totally different layouts we can call partial views for each content based on a condition. @Html.Partial("_Inner")
  • 35. Alexandre Marreiros, 2011 Theme Build On thing to consider is the zones avaiable and when they render @{ var displayFooter = (Model.Footer != null); } @if(displayFooter){ <div id="footerList"> @Display(Model.Footer) </div> } You have also to declare in the manifest the different zones to consider (using the theme manifesto Theme.txt)
  • 36. Alexandre Marreiros, 2011 Theme Build Final step is to use Shapes and placement to choose the way we want contents to be render and where. A good aproach for that is using Shapetrace
  • 37. Alexandre Marreiros, 2011 Demo Theme Building Demo
  • 38. Alexandre Marreiros, 2011 ContentDisplay Dev Aproach There are different ways to look to development in Orchard. One approach is prepare the Theme to answer the stimulus off the content on the render time to change the display how give final user some functionality. Front End Ritch Text edition
  • 39. Alexandre Marreiros, 2011 Demo ContentDisplay aproach Demo
  • 40. Alexandre Marreiros, 2011 Galleries Theres a bunch of Module Galleries in the communitie. When we talk about gallerie there are to different famelies Galleries Content item A field or part Gallery that is a gallery Pretty Gallery Image Gallery Fliker Gallery Document Gallery
  • 41. Alexandre Marreiros, 2011 Building a Module The first thing before create a Orchard Module is to understand some of his pieces Model The class that represents the part or the data. Drivers Prepare Shapes for render handle Posts from admin Handler Class that execute code for specific events Discription of operations to use when module install Migration or migrates
  • 42. Alexandre Marreiros, 2011 Building a Module With this in mind building a module is not different from building a module to na MVC app. But demmands the knowldge of this new concepts. Now hands on job let’s build modules, and a content part
  • 43. Alexandre Marreiros, 2011 Demo building a module and a contentpart Demo
  • 44. Alexandre Marreiros, 2011 References  http://www.orchardproject.net/  http://www.deepcode.co.uk/2011/05/real-world-orchard- cms-part-3-creating.html  http://channel9.msdn.com/Events/TechEd/NorthAmerica/ 2011/DEV355  http://weblogs.asp.net/scottgu/archive/2011/05/12/asp- net-mvc-3-and-the-helper-syntax-within-razor.aspx  http://Asp.net
  • 45. Alexandre Marreiros, 2011 Email: Amarreiros@gmail.com Twitter: @alexmarreiros Feel free to ask