The Orchard Learning Curve/Cliff

Topics: Customizing Orchard, General
Oct 28, 2013 at 7:24 PM
Edited Oct 28, 2013 at 7:25 PM
Hello,

I'm trying to learn Orchard for the second time in 18 months. I previously used it for an internal team blog, customizing a bit of CSS but giving up on anything else, especially given the time-constraints of a financial services gig. Now I have some personal time to spare and I'm trying again, I've read and read and all I have to show for it is a headache.

I'm very close to giving up again and writing my own CMS for this client. Is there any other documentation, or videos, or something that can help me?

I've been coding since I was 8, I built a code-entry system for my bedroom when I was 12, I am a pro .NET developer of 8 years, I have an IQ of 148, I write trading systems for a living in WPF and ASP.NET, I understand complex financial derivatives, I bought a Ferrari with cash when I was 26, I built my own house, my wife and children are all beautiful and I cook a perfect soufflé every time, but Orchard? That's proving impenetrably difficult.

My requirements are meagre. I only want a few different types of page and to customize the markup, add a bit of JavaScript etc. but the system, or at least the docs, have a knowledge-dependency graph that's intractable and a set of synthetic abstractions that are removed from the concepts I know dear with ASP.NET MVC.

Am I missing a page or something? Genuinely, and in spite of my sardonic tone, is there something else I can do to help myself here?

A lot of effort has gone into Orchard by a talented team of people, but I fear the project will fail if the onboarding process and educational materials aren't improved. It feels like you're following a Microsoft strategy to add more features when you should be following Apple and striving for simplicity and usability.

And I bet its actually really simple.

Sincerely,

Luke
Coordinator
Oct 28, 2013 at 7:57 PM
I would suggest you look into the videos from Lombiq. http://www.youtube.com/channel/UCDVUxCz2RvkgTbA0wAYKwRA?feature=watch

We are aware of this though, and we take it very seriously, but because we don't have all the resources we would like, we focus on providing the best modules we can right now, and be the best as we can on the forums. It will take some time but at some point we'll get very good documentation.
Coordinator
Oct 28, 2013 at 8:21 PM
Congratulations on the Ferrari, house, wife, children and soufflés ;)

If you can be a little more specific about your requirements, which sound indeed pretty simple, I'm sure we can guide you in the right direction. After all, people less intelligent than you are using it successfully ;)
Oct 29, 2013 at 11:28 AM
Edited Oct 29, 2013 at 11:57 AM
Morning guys,

The videos that Sebastien has pointed me to are looking like the sort of thing I need, so thanks very much for that.

Bertrand makes a good point that less-experienced people are getting on just fine with Orchard, which I suspected and is partly why I asked if I might be missing something. However, it might be that younger devs are better-adapted to dealing with patchy documentation; they've not been spoiled as I have been with years of wonderful MSDN docs, well-written books from Amazon, Channel9, MIX and Build Session videos and walkthroughs, but also because they have more time.

It's also likely that these tenacious people just pushed on through. Orchard looks like something worth doing, the view from the top is fantastic.

But how many people have given up and turned back? You cannot measure that, and that's why I wanted to feedback in (almost rude) terms how tough it is right now for a seasoned developer to grok. I believe strongly in feedback, its so precious, if received early enough. (I also believe that you shouldn't necessarily give too much value to the feedback of just one guy that's shouts the loudest, which might be me :) )

There's nothing special about building a product for a programmer customer base. As such, I think UX is just as important for an API or SDK as it would be for an iOS app. We're all dummies to new things.

Here are some specifics for the documentation (its editable via a GitHub fork, but that's not really wiki):
  • Should you be collecting feedback on the documentation pages? Some people hate videos, I love 'em.
  • Have you considered opening a UserVoice for Orchard? (you have a nice module for this ;)) Maybe I'm wrong, maybe no one has any problem with the docs.
  • The videos are great, have you considered asking MS for a spot on Channel 9? They'd love your content.
  • The videos are not prominent, there's no visual heirarchy to the learning journey.
  • There's a Customizing Websites section, but it doesn't cover markup or adding JavaScript, that's in Accessing & Rendering Shapes, which is mysterious Orchard terminology.
  • Goal first, Terminology second. For example, Accessing & Rendering Shapes is insider jargon, you've put the answer before the question.
  • Independent concepts are conflated and advanced concepts are thrown into the mix, adding intellectual overhead. The Accessing & Rendering Shapes page exemplifies this, it deals with rendering shapes and shape templates (which is customizing markup) but in the middle of the page is an advanced topic of creating shapes with Drivers and some code I don't understand. What's a Driver, do I need to know about drivers to customize my homepage? Do I care about alternates? Boom! My head exploded already. The lifecycle of a shape is unclear. On the default page, there are some default parts with some fields, how do I go from a field to accessing the field from a Razor partial view? What Views folder are these in? Where are the default ones? I have >50 Views folders in my solution.
  • Layer up the complexity like an oil painting.
  • Use hyperlinks to maintain the verbal flow, while pointing to more advanced subject information.
  • There are no diagrams and schematics. A picture says a thousand words.
  • Point to related documentation, based on user goals.
  • Don't invent new cool terminology for well-known analogs. A Shape is a view model or a partial view model right? A template is a partial view?
  • Turn by turn SatNav, i.e. click by click walk-throughs to the most common destinations.
You probably know all this and I must add that the competition is equally as guilty here.

I just want to change the markup for the default page. I am no closer to working out how to do that. I've now spent £1,800 of my time reading documentation and writing on forums and I'm no closer to my goal. And to be honest, that's part of a wider problem with Open Source. The hidden cost is often the documentation.

In Umbraco, I learned how to change markup in literally 2 minutes. I visited the Video Tutorials page and then the second video is Templates, and its dead easy. Come on, really, I want to install Orchard, I want to customize the markup. That's it.

My last tip is to understand your product's value proposition: "Using Orchard (and its modules) is easier and more productive than writing a simple bespoke CMS with ASP.NET MVC and EF/Mongo/Azure Table Storage/XML file for my client and results in an equally sexy website."

I'm not sure that's true right now.

Thanks for listening,

Luke
Oct 29, 2013 at 1:32 PM
Hi Luke. Let me first say I'm not much experienced in Orchard (few months) and I didn't contribute to Orchard source or documentation. Some translation and trying to reply some questions on this forum, reporting bugs, that's all. Still, your "almost rude" style offended me, probably because I'm jealous. I have an ugly wife and I can't afford to have children. Or because I like Orchard (Stockholm Syndrome).

I agree (everyone would agree) that Orchard lacks good documentation. Sebastien replied that one day it will be good. I'm sure steering committee will evaluate your input, and use it as soon as possible.

Regarding your time lost, I feel for you. I spent my share of time reading documents, figuring out everything wrong over and over. My problem is, I think I'm smart enough to understand everything by myself reading about it online, cos internet has everything. Well I couldn't this time. However one day I asked a question on orcard irc channel, and somebody posted the link to skywalker's blog posts on module development, and then it started to make more sense.

But mentioning 1800 pounds? In bold characters? That's cold man. That's thousands of man-hours of work you download for free. Nobody charges you anything for their support in the forum. Even Bertrand was nice when you ranted in your first post, keeping up with the promise he made before the steering committee election, which gives more hope people will do something about the documentation as they promised.

Seriously, why do you even bother anyway? Clearly you can hire someone to build or customize whatever CMS you choose for you. It might even be better that what you would ever accomplished, due to experience in the area. You didn't try and build a Ferrari (kudos for the house, I'm sure building it was the easiest and the most productive way of having one), did you?




Oct 29, 2013 at 2:05 PM
Hi Kassobasi

Thanks for your comments. I am being quite rude, I admit I'm doling out some tough love, but it is intentional and provocative. My aim is to highlight some problems with the product today out of respect for those that have dedicated their time to this project, I owe it to them to take the time to try and learn on my own, and I can at least take the time and be bothered to feedback and improve things for all concerned.

The very vast majority of people out there do not participate in any way. The hard truth is that people don't care about your app or how long it took to build. The product has to win the love of its user, even if the product is free. In fact, studies show that consumers are likely to put more effort in with something they paid for, making it all the more reason that free software must be competitive.

I cannot hire someone to build a CMS, that would make me a middle-man for my client. That being said, I would rather spend money on a product (not just a CMS, but any software) if I knew that the money helped build a better product and I was able to get on my way faster, live a less frustrated life. I also enjoy knowing that someone got paid for their hard work. I often donate to those apps that offer a donations system.

In the real world, clients are paying consultants a lot of money for websites and expecting results within a reasonable amount of time. Thus, web consultants must be able to adopt a CMS quickly and cheaply and/or acquire personnel skilled in that CMS on the open market at a low cost. Highlighting the cost of my time is admittedly cold, but I hoped to draw attention to the way Orchard customers will assess the product. How much money does it cost to work with compared to writing a bespoke site or CMS for a customer?

I think the Orchard team are at a stage where they have a technically solid offering and should now turn their attention to polishing the adoption experience.

My apologies if I have offended anyone, that was never my intention.

Luke
Coordinator
Oct 29, 2013 at 6:46 PM
You can be rude without offending, no hard feelings ;) I don't mind either but I know Bertrand appreciates the difference !

On the long term this will work though, I just remember v1.0 almost 3 years ago now, knowing that we missed a lot of features but time would do its job, same thing today.
Coordinator
Oct 29, 2013 at 8:03 PM
We like feedback, and I don't dislike rude, because it means I can be rude in return ;)

Some answers:
  • UserVoice exists: http://orchard.uservoice.com/forums/50435-general
  • Channel9: that's something we considered, but I know from experience that the process involved in getting something onto Channel 9 is pretty heavy. Publishing on YouTube is just faster and easier. If someone wants to manage Channel 9 videos, that's great. By all means.
  • Video organization is a good point, you are right. Someone needs to find time to do it. Volunteers more than welcome.
  • Mysterious terminology is clearly an issue. There has to be terminology, there is no way around that, but we need to do a better job at introducing new users to those terms. A doc topic is not enough (here is the one we have: http://docs.orchardproject.net/Documentation/Basic-Orchard-Concepts). Suggestions and contributions welcome.
  • In general, we all agree that user-level documentation is severely lacking. We are still at the stage where the documentation we have is very technical. It is really, really hard to find people willing to write documentation for free, who are also competent to do so: if you don't know, you can't, and if you can, you don't need to.
  • Some of your questions about shapes would find an answer by using shape tracing: http://docs.orchardproject.net/Documentation/Customizing-Orchard-using-Designer-Helper-Tools
  • Diagrams and schematics are great, but take time, like everything else. Contributions welcome.
  • A shape plays the same role as a view model, but it's dynamic and has quite a few unique properties that differentiate it enough that a new name was required.
  • A template is a partial view that renders a shape. I would kind of agree in this case that partial view would have been more familiar to MVC developers, but it would have been completely alien to more design-oriented people. Template is hardly a new and fancy term, it's one that is familiar to a lot of people. We've seen the reverse reaction: "wtf is a partial view? Oh, you mean it's a template?"
  • Do you want a check, cash, or do you accept credit cards for the time we've cost you? I'll subtract the time it took me to respond you. Oh wait, I'm more expensive than you are. You owe me $500.
I'll finish on one thing you said: "free software must be competitive" As far as I'm concerned, that's not true. It may be different for others, but all I care about personally is that it's useful to me and my business, and I think that's pretty typical of FOSS projects. I don't directly care that it is useful to yours, sorry. I care about contributions, and getting new users is necessary for this to happen, but that's about it. The requirement to be "competitive" is indirect at best. Success can be defined in many different ways, adoption is just one of them...
Oct 30, 2013 at 2:13 AM
Edited Oct 30, 2013 at 2:15 AM
You'll find it said over and over again, but truly the code is the documentation (not that it's an excuse for not having better documentation). Just my two cents, but if I'm not mistaken systems like Umbraco, although "open source" still enjoy some revenue-making model. This could account for all the polish, but I don't think it makes it a better product. Not slamming Umbraco here or advocating that Orchard do the same - just pointing it out.

Back to my original point. I've dabbled in programming for a while, nothing serious. It's taken me some time to get my head around Orchard, but that doesn't mean anything. However, after a lot of time I have learned that looking at other modules helps. Start with the core ones. Blogs was a great module to learn some things from.

Also, the people at Orchard Hungary / Lombiq created a great training module that is fully documented. That truly got me going with the concepts and gave me a lot of "ah ha" moments between what you find on the internet, posts by members/contributors to Orchard, and the discussion boards here (and on StackOverflow.com).

Here is a link: Orchard Training Demo Module

Also there is an Orchard Jumpstart module that is helpful: Orchard Jumpstart Module.

And what is great about Orchard is that you can take almost any MVC code you create separately and make it into a module. Yes, there are some "gotchas", but for the most part the ability to take something you created in plain MVC and make it into a module is one of the main reasons I use Orchard.
Oct 30, 2013 at 11:13 AM
For what it's worth, I am just 24-hours in to 'playing' with Orchard, but I have probably spent may be 30 hours prior to downloading the code, reading the documentation and watching videos.

Stage one, getting a demo site up and running and applying a theme and some widgets etc. was actually ridiculously quick and easy. I'm now beginning to hit the slope where I want to start 'adjusting' things and I think my biggest difficulty is understanding and remembering some of the concepts. What is the difference between a Component Item and a Component Part? How do I place fields in different regions of the theme? How does the placement file work? How do I inject JavaScript/CSS if I build a simple module? How can I pull images out of a Gallery module? All fairly basic things, but critical I suspect to leveraging the most out of Orchard.

Yes, the documentation can be a bit sparse on occasion but, for me anyway, a comprehensive overview of the components, concepts and features that make up Orchard would be useful, together with how they interact together would be a major help. Orchard is, without doubt, technically demanding to learn, but if it wasn't I would probably be bleating that "it can't do this" or "it won't do that", so I'll pay my money and stick with it!

Why? I have been a 'jobbing' one-man band web developer for the past 12 years focusing exclusively on ASP.net technologies. Around 8 years ago I, like many others, thought I could write a better CMS product and, to a point, I did. I managed to sell around 80 licenses and it has kept a roof over my head (but only a Toyota I'm afraid on the car front). But that was then, and this is now. Continuing to develop my product, support my customers and court new customers is no longer possible. Customer expectations have change dramatically in the past 2/3 years - security, SEO, social networking, video are all terms and features that my customers know about today and want. The cold reality is that I can no longer survive commercially if spend the time needed to keep my application current and fresh and this is why projects like Orchard are to be applauded. They provide a solid, secure and professional platform out of the box. I would sooner spend a few months grappling with my lack of understanding, than trying to maintain the perpetual development cycle of a home-grown CMS. Been there and done that and it's not easy!

So here is my premature thanks to all of those Orchard contributors and activators that give me this choice.
Coordinator
Oct 30, 2013 at 3:24 PM
A content item is made of content parts. For example, a blog post has a title, a body, tags and comments. A blog post is a content item, title, body, tags and comments are parts. You can make other content item types using the same and other parts. For example, a product could be a title, a body, a product part (with sku and price). Parts can be added or removed at will. For example, our product type could get a tags part later, or you could add reviews, etc.

You can place fields using placement files: http://docs.orchardproject.net/Documentation/Understanding-placement-info You can prefix the zone name with a slash ('/') to send a part or field into a zone defined in the layout.cshtml file. Can you be a little more specific about what you want to know about placement?

You can inject javascript and stylesheet files using @Script.Include("nameofthefile.js") (put the file in the /Scripts folder of your module or theme) and @Style.Include("nameofthefile.css") (put the file in /Styles).

You can pull images out of the media library by adding a media library field to your content type.

Can you tell us what you think should be improved in http://docs.orchardproject.net/Documentation/Basic-Orchard-Concepts and http://docs.orchardproject.net/Documentation/Builtin-features ?

I totally know what you mean about proprietary CMS. Been there too...
Oct 30, 2013 at 4:04 PM
Thank you for taking the time to respond in such detail - very helpful.

In terms of placement, one of the graphic designers I work with has a habit of creating designs with two or more HTML 'regions' on the page. For example, he might put a page synopsis in a left-sidebar, or perhaps a customer quotation specific for the page in a container to the right of the main body. So, for my familiarisation project I decided to jump in at the deep end and replicate one of these existing designs - perhaps not my best idea! As you probably gathered, I ran into a bit of a wall quite early on as I couldn't figure out how to move a content field out of the main flow of the content. For some reason, probably stupidity, I hadn't realised that the placement info file could be used for this task - makes sense though reading the reference article again. I suppose, I had just assumed that this would be achievable via the admin user interface. To be fair, this is perhaps quite an unusual design requirement, it just so happens that I have used it in around 7 of the last 10 web sites I have created. I will re-read and digest the placement info documentation and have a play around.

Thank you for your direction on script referencing/injection and the media library info - I had missed the media content library field entirely.

With reference to my comment on the basic orchard concepts, I think that a) I should have read this more than once! and b) having done that, I would still like more of an overview or workflow of how a page comes into being, a timeline if you will of how the components are assembled and the events and interactions between them. Since my earlier post I have also had a brief poke around in the code. My only comment is that working backwards from the views is not overly helpful as much of the data is dynamic so it is quite difficult to trace where things are coming from. I'm not saying dynamic data models are a bad thing, far from it, they just add a layer of obfuscation that wouldn't exist in a more concrete methodology. Please bear in mind my current Orchard experience here. At the moment I'm tending to jump around a bit and I would be better off easing back a bit and becoming familiar with the core concepts rather than trying to guess.

Once again, thank you for your help. I'm looking forward to developing my relationship with Orchard.
Coordinator
Oct 31, 2013 at 5:56 AM
Well, there is a new module from Onestop that may help you build complex layouts from the admin: Onestop.Layouts. It's available from Bitbucket.

I wrote something about the lifetime of a page a long time ago that you may find interesting: http://weblogs.asp.net/bleroy/archive/2011/03/29/what-happens-when-i-request-a-page-in-orchard.aspx A few things have changed since it was written but most of it still holds true.

If you like more concrete and explicit ways of rendering contents, you might like this alternative approach: http://weblogs.asp.net/bleroy/archive/2013/02/13/easy-content-templates-for-orchard-take-2.aspx
Oct 31, 2013 at 3:24 PM
Edited Oct 31, 2013 at 3:31 PM
I've noticed some improvements over the recent months to the Orchard Documentation. So definitely kudos for that.

Solely as a suggestion, might it be an option to "host" / "copy" some of the more relevant blogs out there, particularly from the developers, somewhere on the Orchard site? Even a page with links to some of the nuggets out there might help some people along (e.g., even links to things like Orchard.Jumpstart or the Training module, where it's in one place people can find). Additionally, some of the more "direct to documentation" type blog posts can be uploaded into the Documentation section. For example, I think one of last year's Custom Forms / EMail blog posts was put into the documentation somewhere. Just a thought.

BTW: I know that recent blogs are posted on the front page of the Orchard Site, but sometimes relevant posts get buried deep if they are months (years?) old. Additionally, I know that Orchard Dojo does a good job of compiling posts/discussions and is a good resource as well.
Coordinator
Oct 31, 2013 at 4:00 PM
If someone wants to volunteer to maintain a list of interesting blog post pointers, that's great. (as you can see, the not so hidden underlying message is that we're all doing as much as we can, but we need more people involved, doing the stuff that we don't currently have resources for). If blog post authors want to contribute some of their posts as documentation, that's good too.
Oct 31, 2013 at 4:13 PM
Edited Oct 31, 2013 at 4:14 PM
I'm going to try to tackle this. Going to take a bit of time. Just as a starting point:
  • Going to create a page that mimics the outline structure of the Documentation page and then add some items relevant to each (I don't think I'd be able to get something for everything, so I'll hope others add stuff too).
  • Using the above, I am thinking of adding an "Additional Resources" section to the actual documentation pages that I have links for. I'm not sure if I can only place that at the end of each page or whether or not I am allowed to create a little widget on the side of the page (much like the headings are displayed on each documentation page).
If anyone has any suggestions for links/posts, please send them to this user name at G-Mail.

Thanks.
Oct 31, 2013 at 5:21 PM
Thank you for the link for the page lifetime overview - very helpful. I need to read more about shapes and their relevance in Orchard - because they don't appear on the Dashboard, I had overlooked them - shame on me - I can't blame the documentation for that! :)

I will also have a look at the Onestop.Layouts module, but first I will get to grips with working with the placement file.

Thanks again for your help.
Developer
Oct 31, 2013 at 5:57 PM
Edited Oct 31, 2013 at 5:58 PM
Let me chime in, also as one of the guys behind the Orchard Hungary/Lombiq-related learning resources. Any argument on lacking terminology definition is invalid :-).

Orchard is hard to learn, yes, I totally agree (but it is also possible to learn it from scratch by yourself fairly quickly if you have the links to a handful of jumpstart resources). But I assume you want it to have many features and ideally a ready to eat answer to every possible question that may arise when you develop a web application with it. However, you can't have features and framework functionality without having code, and this amount of code will be huge; what, to be maintainable should be structured and engineered, what in turn adds to the complexity.

Now what to do? I don't think there's too much to cut from Orchard regarding the complexity of the system: it could be simpler, but with it also dumber. A framework's task is to provide a backbone for every possible scenario. While it could be simpler to support some scenarios it would also create new barriers.

OK, but if I want to display a Like button under my blogposts do I really have to create 8 files (driver, handler, part, part record, migrations, editor shape, display shape, placement) and having to understand that many Orchard-related notions? Well, good point, you shouldn't, really. I think what makes Orchard hard to learn that you're immediately exposed to the very complex API. The complexity of that API is justified IMO (this is how it can support so many different usages) but we could do something about having simplified abstractions to support the most basic tasks.

What am I thinking about? Let me illustrate with the above example of the Like button, what we assume just displays a Facebook Like button under a content item and also has a switch to turn it off at the item level.
// LikeButtonPart.cs
[ContentPart(Attachable = true)] // Attachable is illustration for simple customization options. But attachable being true could be a default.
public class LikeButtonPart
{
    [DisplayName("Display the button?")]
    public virtual bool IsEnabled { get; set; }
}

// Views/Part.LikeButtonPart.cshtml
@if (Model.ContentPart.IsEnabled)
{
    // Display Like button with standard embed code
}
Storage is automatically implemented through a dynamic proxy (assume we're after the Shift, so no record, no part record repository plumbing in a handler for this), editor is automatically generated for every public property on the part, placement can be modified from the admin (even for display). You get the idea... Just thinking aloud.
Feb 6 at 7:45 PM
Just tried Umbraco 7 and I think most of the documentations/videos is going to need to be re-done since they just switched from Webforms to MVC. I think Orchard has a fairly decent documentation for what it does. I think that the point about Orchard is to make a system that developpers will like to learn playing around with. Same goes with Drupal, there's a learning curve about modules that you can use to get to some points fast. But in the end, there's always a need for customizations. And if you compare FOSS vs Proprietary sofware we always end up complaining about the fact that we can't customize.

I think everyone making modules should at some point contribute into making videos on their own. I always end up watching videos on youtube about Drupal modules as an example. But I must agree that Orchard needs to be "sexier" to attract more people eventually. I'm pretty much sure that when the core will have reached a certain maturity; everything will fall into place naturally.

Umbraco 7 is still on MVC 4 as I write this ... they did'nt made anyone really adopt their version 6 because of the switch from Webform to MVC. DotNetNuke must be still using webforms ; wich we all try to avoid once you know MVC.

By the way, the new Umbraco 7 is looking really nice. Umbraco is as much complex to learn than Orchard is at some point. And I don't think I would take the time to learn it or even DotNetnuke. If we want to make a comparison between each .NET CMS around there in the end I think Orchard wins because it's so much extensible that you can do wathever you like with it.

So, get out of the ferrari, put on some boots, pick up a shovel and start to dig !!!
Jun 13 at 1:51 PM
Just adding a cent or two to this thread.

I too have been going through the trouble of learning Orchard for the past month or so. It was a rough ride.

I started with following the various tutorials and lectures (thanks go to, in no particular order, Sipke, the nice folks @ Lombiq, Sebastien & Bertrand). I even developed a small module that made light use of CMS and some heavier use of classic MVC (using controllers and normal views) that the company I work for started using. But when I tried developing an all-out, feature-complete, CMS-driven website, I found out that I had not "gotten" Orchard at all. All the concepts (shapes, drivers, handlers, filters, queries, projections, et al.) were flying around in my head, but I could not bring them together. No real synthesis, no real insight, no progress.

So I delved into code to see for myself what these concepts really are and how they are implemented. And this, the ability to peruse (and change) the source code, is what makes open source projects so attractive, in my opinion. My process was to read the code, watch some of the tutorials again, try my hand at a proof-of-concept exercise, and repeat. It wasn't easy, nor particularly fast, but I learned. And suddenly the insight came. Disparate pieces started to weld [;)]. With the breakthrough in conceptual space, the web site came together in astonishing speed, in the space of a few days. All after a month of learning and head-scratching.

Orchard was conceived and coded by programmers that are far more experienced and, truth be told, smarter, than I am. But now I feel like I am riding on the shoulders of giants. The result of this exercise was not only a CMS-driven web site (and some future ones.) I have also learned a few good lessons about application programming, particularly of architectural design.

Congratulations, Orchard team. And thanks.
Developer
Jun 13 at 2:07 PM
Thank you aguvenli. I also have the impression with OSS that you basically have a huge team that works together with you, empowering you enormously.
Developer
Jun 13 at 2:14 PM
Great news dude, I love to hear these stories. I know learning it can be hard at first, but it as you have shown is rewarding.


Jul 10 at 1:44 PM
Edited Jul 10 at 7:54 PM
I am attempting to use Orchard CMS 1.8 as the content management system for a new corporate website.

I echo lukepuplett's frustration about the learning curve for Orchard. I think the architecture and extensiblity seems to be awesome.

I have watched every video:

AriasAmp Orchard CMS "Jump Start": Parts 1-4
http://www.youtube.com/channel/UCA5nzE0BWn4y3KmuCmH6BkQ

Orchard CMS Module - 1 thru 12 by
http://www.youtube.com/channel/UCkvZPDnFbZXxW6wIsWjT5bQ

Every video at http://orcharddojo.net/

I am no closer to getting a basic new content type created and placed on a page in Orchard.

The videos offer quite a bit of detail on how to get down into the bowels of Orchard, however for newbies that just want to add content types to a page above and beyond using the body part that is built into the Page content part, they offer no insight.

I want to be able to and have users of the system be able to create pages that have something more the body part. For example the home page and other pages may have the same content, so in theory (if I understand the system and the use of content types), one should be able to create a content type and an instance of it with content and reuse it on multiple pages (applying the Don't Repeat Yourself "D.R.Y" philosophy).

Also I would like to create a content type as a template container so to speak that I can put on any page and have the end user add/edit the content. For example, if I have a area of a page that is a "Learn More" content structure or design pattern and it has an image, a title below it and then some descriptive text below that and then finally a button with the text "Learn More" that has a URL that takes you to a page in the system.

This is a design pattern that repeats a lot in the site, but the content varies, different image, title, descriptive text, and URl attached to the button.

So how does one pull this of in Orchard, step by step? How is a new content type created, instantiated and added to a page and placed so to speak in the design structure and the content added/edited and more importantly by not only a developer, but end users that would have no development skills?

Re aguvenli's comment: "With the breakthrough ... All after a month of learning and head-scratching. "
Seriously! Try justifying to a CEO that it will take a month or maybe more just to figure out how to put content on a page where you want it on a page.

Any assistance/insight would be greatly appreciated.

Thanks in advance,

K.E.
Developer
Jul 11 at 11:18 PM
@engelhk This is really too much at once, please break up your questions and ask them in separate topics.
Jul 14 at 3:09 PM
The topic is basically, I have been able to create a content type with:

A “Title” field
Description text (using the existing “Body” part)
A “URL” field
A “text” field

How do I get it displayed in a zone on a page?

Thanks in advance
Developer
Jul 15 at 8:24 AM
Use the Placement.info file in your theme to place the various part and fields shapes. by default, these shapes will go into the local zones of the content item (which itself is placed in the global Content zone), but if you use the / syntax, you can place shapes into global zones as well. Please refer to the Placement.info documentation for more details on this. Do let us know if you have more questions.
Jul 16 at 4:02 PM
Edited Jul 17 at 1:06 PM
The example at http://docs.orchardproject.net/Documentation/Understanding-placement-info shows

<Place Parts_Tags_ShowTags="Header:after.7"/>

No slash,

So unless new users are supposed to have ESP how would one know that option is even available?

I recommend some time be spent on cleaning up and updating documentation and checking it's accuracy/completeness.

We spent hours wading through forum posts just to figure out the a "/" was needed in front of the zone name to target a global zone (see previous post) and only found the information because other users had the same problem; not knowing a slash was needed.

Food for thought.

K.E.