Orchard CMS v Ivan Pavlović, Hive Studios MVP For Visual C#, Scrum Master twitter.com/ipavlovi
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 Objectives and Takeaways
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 Context…
Orchard Project Orchard is a free, open source CMS solution for web agencies who want to simply, quickly create Internet-facing Web sites. 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
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 Target Audiences
Setup Orchard -Setup IIS -Platform Installer -Configuration -Content Publishing
Orchard Architecture ASP.NET MVC 3 Orchard CMS Orchard Modules Pages Blogs Users Comments Tags Roles Media Setup Themes XmlRpc Scheduling Navigation Homepage Feeds Settings
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)search your contentuse 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 Data Composition Product ProductHandler Tags Comments Common …passes back parts attached to Product type… Events Record
Data Composition ContentItemRecord IdContentTypeRecord_Id ContentTypeRecord IdName 1“page” BodyRecord IdText 5“ First post ” 7“ Second ” RoutableRecord IdSlug 5“first-post” 7“second-post”
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 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 v 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