Orchard CMS v1.0.20 Ivan Pavlović, Hive Studios MVP For Visual C#, Scrum Master paki@hive-studios.com twitter.com/ipavlovi Objectives and Takeaways • Session Objective(s): – Explain what is Orchard, why we are doing it, our target audiences – Demonstrate Orchard from both end-user and developer perspectives • Takeaways: – Orchard is powerful CMS offering rooted in ASP.NET concepts (MVC 3, Razor, Areas) – Delivering as open source allows deep involvement from community & partners Context… • How many of you build .NET sites from scratch? – Using Visual Studio, MVC, WebForms, etc. • How many of you start from an existing app/solution and customize it? – We find this is an increasing trend among Web professionals… – Over two-thirds of Internet-facing Websites are small-medium businesses, with lots of common features/behavior – Most of these sites are built starting from open source apps – Productivity is most important consideration for Web pros/consultants Orchard Project • Orchard is a free, open source CMS solution for web agencies who want to simply, quickly create Internet-facing Web sites. • http://orchardproject.net • Built on top of the MVC 3 and SQL Server / CE • Included in the ASP.NET Open Source Gallery under the CodePlex Foundation – Free, open source, and fully extensible – new BSD license – Accepting community contributions today– get involved Target Audiences • End-users – Pre-configured Orchard distributions enable creation of web sites through UI customization • Developers – Orchard is a CMS platform for creating custom applications and modules • Designers – Orchard offers a flexible theming platform • Web Professionals – Orchard is a highly customizable CMS application – Market place with a large choice of themes and modules Setup Orchard - Setup IIS Platform Installer Configuration Content Publishing Orchard Architecture Orchard Modules Pages Blogs Comments Tags Media Feeds Scheduling XmlRpc Users Roles Themes Navigation Setup Settings Homepage Orchard CMS ASP.NET MVC 3 Extension points Extension module: Adds some (low-level) features that will benefit the website. Eg: Ability to search your content or to use an external editor to write blog posts (like Live Writer) Content module: Adds everything (code and visual) required to view/edit some type of content (like blog posts) Extension points Widget module: Adds a small visual content that can be displayed on the side of existing content modules (like a Tag cloud next to a blog) Theme module: Changes the look of existing content modules (This is what the designer would typically create) Building a Custom Module Content Types and Parts Data Composition Record Product Data Events Tags Comments Common Record Record ProductHandler Record …passes back parts attached to Product type… Data Composition ContentItemRecord BodyRecord RoutableRecord Id ContentTypeRecord_Id Id Text Id Slug 5 1 5 5 “first-post” 7 1 “<p>First post</p>” 7 “second-post” ContentTypeRecord Id Name 1 “page” 7 “<p>Second</p>” Building a Content Type Themes • • • • • One theme per Tenant Everything is overidable Layuot is separated into Zones Zones are populated with Shapes Shapes can contain other Shapes – (list / summary / content / parts) • Widgets are placed into Zones Modules • • • • • • • • • • • • • • • • Analytics Captcha Lightbox/slideshow/image gallery Sitemap Calendar/events Voting Newsletter Shopping Cart Maps and geolocation Workflow Forum FAQ Private Messaging Advertising Video Guest book • • • • • • • • • • • • • • • Wiki Search Weather File attachments Forms Chat Project management Classifieds External RSS Integration CRM Social Networking Mobile Polls Podcast/audio Email notifications Widget walktrough Next Release v1.1 (April 1st) • Post 1.0 bug fixes • Administration user experience: – Widget and layer management – Content Item List management • • • • Deployment and Hosting improvements Import/Export Module Recipes Developer scenario improvements – Shape tracer, bug fixes, Field placements Uključite se • Lokalizacija v1.0.20 na sr-Latn-RS i sr-Cyrl-RS je završena – Predstoji lokalizacija v1.1 u narednih desetak dana • Priključite se razvoju • Podelite module koje razvijete na CodePlex-u