Your SlideShare is downloading. ×
Oleksandr Krakovetskyi - Orchard CMS
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Oleksandr Krakovetskyi - Orchard CMS


Published on

Orchard CMS - this is a new content management system supported by Microsoft. During the presentation will be reviewed basic principles of architecture, system modules and usage

Orchard CMS - this is a new content management system supported by Microsoft. During the presentation will be reviewed basic principles of architecture, system modules and usage

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Orchard CMSand other ASP.NET content management systems
    Software Developer, Team Lead at Ciklum
    Microsoft Regional Director, ASP.NET MVP, @msugvnua,
  • 2. ASP.NET
    Content Management Systems
  • 3. DotNetNuke
    Telligent Community Server
    Telligent Graffiti
    mojoPortal, Umbraco
    1С Битрикс (.NET Forge CMS), SiteCore, TelerikSitefinity, EPIServer, BlogEngine.NET
    List of ASP.NET CMS
  • 4. Open Source (BSD)
    Written in VB.NET
    Moved to C# not so far
  • 5. Paid
    Suitable for online communities
    Blogs, Forums, Social, Calendar etc.
    Good for big communities & good hosting
    Telligent Community Server
  • 6. Free and open source
    Limited Community Server functionality
    Microsoft Reciprocal License (Ms-RL)
    Telligent Graffiti
  • 7. Free and open source
    mojoPortal: Common Public License, Umbraco: MIT
    mojoPortal, Umbraco
  • 8. Free and open source (with logo and trademarks)
    The nopCommerce Public License Version 1.0 ("NPL")
    Shopping card, e-commerce
  • 9. Oxite based
    Free and open source
    Microsoft supported
    ORCHARD CMS. Quick facts
  • 10. ASP.NET MVC3.0
    NHibernate: an object-relational mapping tool
    Autofac: an IoCcontainer
    Castle Dynamic Proxy: dynamic proxy generation
    ORCHARD CMS. Architecture
  • 11. Content Item
    A content item is a single piece of content, often associated with a single URL (address) on the site. Examples of content items are pages, blog posts or products.Content type
    Content items are instances of content types. Said differently, content types are classes of content items. What we call a blog post is just an item of type blog post.
    ORCHARD CMS. Main concepts. Content Item and type
  • 12. In Orchard, content types are built from smaller parts, that are conveniently called content parts. Content parts are atoms of content that are enough to build a specific coherent behavior and that can be reused across content types.
    ORCHARD CMS. Main concepts. Content Part
  • 13. Content fields are pieces of information that can be added to a content type. Content fields have a name and a type and are specific to a content type. There can be several of each field type on any given content type.For example, a Product content type can have a text field representing its Sku, a numeric field representing its price, and another numeric field representing its weight. Each of these fields probably only makes sense on a product.
    ORCHARD CMS. Main concepts. Content Field
  • 14. The various possible custom possible extensions that can be built for Orchard are typically built as modules. A module is a set of extensions for Orchard that are grouped under a single sub-folder of the Modules directory that can be found under the Orchard web site.
    ORCHARD CMS. Module
  • 15. A module can contain one or more features, which is a logical grouping of functionality that can be enabled or disabled individually. For example, an auth module could have separate features for OpenID, FaceBook, LiveID, Twitter or Google authentication that can each be turned on or off.
    ORCHARD CMS. Main concepts. Features
  • 16. A manifest is a small text file that describes a module or a theme to the system.
    ORCHARD CMS. Main concepts. Manifest
  • 17. A theme is a packaged look and feel for a site. It can consist of any combination of style sheets, images, layouts, templates and even custom code. It is even possible to create a theme that inherits from another, which is very useful if you are trying to make only small modifications on an existing theme.
    ORCHARD CMS. Main concepts. UI. Theme
  • 18. Each content part, each field and each widget will need to be graphically represented in the front-end, transforming the data that it represents into a form that can be read by the users of the site. A template is the recipe that formats that data and transforms it into HTML for the browser to display. You can think of a template as plain HTML with well-defined "holes" where data gets inserted.
    ORCHARD CMS. Main concepts. UI. Template
  • 19. Before displaying something using a template, that something gets transformed into a shape, which is a very malleable object that contains all the information required in order to display it. Before getting rendered by templates, everything gets mapped into a tree of shapes that is a sort of abstract representation of the contents of the final page. The advantage of such trees of shapes is that any module can modify existing shapes or create new ones.
    ORCHARD CMS. Main concepts. UI. Shape
  • 20. When rendering the collections of parts and fields -or any other shapes- that compose a page or content item, Orchard needs to know in what order to do so. files are XML files that describe rules that can be used to determine what shapes go into what zones and in what order.
    <Place Parts_Map="Content:10"/>
    <Place Parts_Map_Edit="Content:7.5"/>
    ORCHARD CMS. Main concepts. UI. Placement
  • 21. A layout is a file in a theme that defines the general organization of the pages of the.
    Zones are specific parts of a layout that can be customized by inserting widgets.
    ORCHARD CMS. Main concepts. UI. Layout & Zones
  • 22. A widget is a small fragment of UI that can be added to some or all pages of the site. Examples of widgets are tag clouds, maps, archives, a search form, or recent blog posts.
    ORCHARD CMS. Main concepts. UI. Widgets
  • 23. A layer is a group of widgets (with their specific configuration, which includes their positioning -zone name and ordering-) that is activated by a specific rule.
    TheHomePage, Default etc.
    ORCHARD CMS. Main concepts. UI. Layer
  • 24. Administrator
    ORCHARD CMS. Main concepts. Security. Roles
  • 25. ORCHARD CMS. Main concepts. Security. Privileges and Permissions
  • 26. A handler is similar to an MVC filter in that it contains code that will execute for specific events of the request life-cycle. They are typically used to set-up data repositories or to do additional operations when something gets loaded.Driversare similar to MVC controllers, but they act at the level of a content part instead of at the level of the full request. They typically prepare shapes for rendering and handle post-backs from admin editors.
    ORCHARD CMS. Development
  • 27. Record
    A record is a class that models the database representation of a content part. They are POCOs where each property must be virtual.Model
    What plays the part of the model for a content part is the part class itself. Some parts also define view models, in the form of strongly-typed classes or of more flexible dynamic shapes.
    ORCHARD CMS. Development
  • 28. Migration
    A migration is a description of the operations to execute when first installing a feature or when upgrading it from a version to the next. This enables smooth upgrades of individual features without data loss. Orchard includes a data migration framework.
    ORCHARD CMS. Development
  • 29. Injection
    Inversion of Control, or injection, is widely used in Orchard. When any piece of code requires a dependency, it will typically demand the injection of one or several instances of a specific interface. The framework will take care of selecting, instantiating and injecting the right implementations at runtime.
    ORCHARD CMS. Development
  • 30.
    ORCHARD CMS. References
  • 31.
    Thanks! Q&A!