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

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

No notes for slide

Oleksandr Krakovetskyi - Orchard CMS

  1. 1. Orchard CMSand other ASP.NET content management systems<br />OleksandrKrakovetskyi<br />Software Developer, Team Lead at Ciklum<br />Microsoft Regional Director, ASP.NET MVP<br />Alex.Krakovetskiy@gmail.com, @msugvnua<br />http://msug.vn.ua, http://wp7rocks.com/<br />
  2. 2. ASP.NET <br />Content Management Systems<br />Agenda<br />
  3. 3. DotNetNuke<br />Telligent Community Server<br />Telligent Graffiti<br />mojoPortal, Umbraco<br />nopCommerce<br />1С Битрикс (.NET Forge CMS), SiteCore, TelerikSitefinity, EPIServer, BlogEngine.NET <br />List of ASP.NET CMS<br />
  4. 4. Open Source (BSD)<br />Written in VB.NET <br />Moved to C# not so far<br />DotNetNuke<br />http://dotnetnuke.com/<br />
  5. 5. Paid<br />Suitable for online communities<br />Blogs, Forums, Social, Calendar etc.<br />Good for big communities & good hosting<br />Telligent Community Server<br />http://telligent.com/<br />
  6. 6. Free and open source<br />Limited Community Server functionality<br />Microsoft Reciprocal License (Ms-RL)<br />Telligent Graffiti<br />http://graffiticms.com/<br />http://graffiticms.codeplex.com/<br />
  7. 7. Free and open source<br />mojoPortal: Common Public License, Umbraco: MIT<br />mojoPortal, Umbraco<br />http://www.mojoportal.com/<br />
  8. 8. Free and open source (with logo and trademarks)<br />The nopCommerce Public License Version 1.0 ("NPL")<br />Shopping card, e-commerce<br />nopCommerce<br />http://www.nopcommerce.com/<br />
  9. 9. Oxite based<br />http://nuget.org<br />http://orchardproject.net/gallery<br />http://visitmix.net/<br />Free and open source<br />Microsoft supported<br />ORCHARD CMS. Quick facts<br />
  10. 10. ASP.NET MVC3.0<br />NHibernate: an object-relational mapping tool<br />Autofac: an IoCcontainer<br />Castle Dynamic Proxy: dynamic proxy generation<br />ORCHARD CMS. Architecture<br />
  11. 11. Content Item<br />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<br />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.<br />ORCHARD CMS. Main concepts. Content Item and type<br />
  12. 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.<br />ORCHARD CMS. Main concepts. Content Part<br />
  13. 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.<br />ORCHARD CMS. Main concepts. Content Field<br />
  14. 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.<br />ORCHARD CMS. Module<br />
  15. 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.<br />ORCHARD CMS. Main concepts. Features<br />
  16. 16. A manifest is a small text file that describes a module or a theme to the system.<br />ORCHARD CMS. Main concepts. Manifest<br />
  17. 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.<br />ORCHARD CMS. Main concepts. UI. Theme<br />
  18. 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.<br /><h1>@Model.Title</h1><br />ORCHARD CMS. Main concepts. UI. Template<br />
  19. 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.<br />ORCHARD CMS. Main concepts. UI. Shape<br />
  20. 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. Placement.info files are XML files that describe rules that can be used to determine what shapes go into what zones and in what order. <br /><Placement> <br /> <Place Parts_Map="Content:10"/> <br /> <Place Parts_Map_Edit="Content:7.5"/> <br /></Placement><br />ORCHARD CMS. Main concepts. UI. Placement<br />
  21. 21. A layout is a file in a theme that defines the general organization of the pages of the.<br />Zones are specific parts of a layout that can be customized by inserting widgets. <br />ORCHARD CMS. Main concepts. UI. Layout & Zones<br />
  22. 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.<br />ORCHARD CMS. Main concepts. UI. Widgets<br />
  23. 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.<br />TheHomePage, Default etc.<br />ORCHARD CMS. Main concepts. UI. Layer<br />
  24. 24. Administrator<br />Editor<br />Moderator<br />Author<br />Contributor<br />Anonymous<br />Authenticated<br />Own <br />ORCHARD CMS. Main concepts. Security. Roles<br />
  25. 25. ORCHARD CMS. Main concepts. Security. Privileges and Permissions<br />
  26. 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.<br />ORCHARD CMS. Development<br />
  27. 27. Record<br />A record is a class that models the database representation of a content part. They are POCOs where each property must be virtual.Model<br />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.<br />ORCHARD CMS. Development<br />
  28. 28. Migration<br />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.<br />ORCHARD CMS. Development<br />
  29. 29. Injection<br />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.<br />ORCHARD CMS. Development<br />
  30. 30. http://msug.vn.ua/<br />http://www.orchardproject.net/docs/<br />https://blogs.msdn.com/b/vyunev/<br />http://stackoverflow.com/questions/1978360/anybody-using-orchard-cms<br />http://channel9.msdn.com/Events/MIX/MIX10/FT06<br />ORCHARD CMS. References<br />
  31. 31. http://wp7rocks.com<br />http://msug.vn.ua<br />http://twitter.com/msugvnua<br />Alex.Krakovetskiy@gmail.com<br />Thanks! Q&A!<br />