Adoption Fears

Topics: General
Nov 21, 2014 at 9:58 PM
One of our teams have recently completed a Proof Of Concept to determine what we can and can’t do with Orchard. The POC went well, but we still have concerns that once we actually start using Orchard fully we will run into complex scenarios outside of the basic features implemented in the POC, and though I am confident we will be able to resolve them, I think the time taken will counter act against the quick initial set up time.

We are also concerned that using Orchard CMS for our next project as it’s a project that we expect to have a large amount of bespoke development, as the program grows and we add considerable amounts of bespoke functionality we will end up with a very complex solution that becomes difficult to maintain.

There seems to be limited best practise to follow for Orchard CMS development increasing the risk of us creating a fragile unmaintainable solution. We've heard anecdotally that over a longer period of time, or sites with lots of changes, the system does become fragile and more resistant to change. We suspect that’s potentially due to a lack of implementation best practice.

To counter that a bit, it appears that Orchard has neat architecture in terms of ASP.NET MVC. It adheres to and implements best practices and patterns throughout. Whilst that learning curve may be extremely steep for the junior developers it can only be beneficial in the long run right?

So to boil this all down to some relevant questions I’m left with –
  1. Does anyone have any anecdotal evidence to support, or counter, the claims of maintainability problems
  2. Some examples of heavily customised corporate sites would be great, our typical use case would be a secure portal, b2b comms platform, extranets
  3. Any experiences of any .net development firms going through the Orchard learning curve would be useful. We have around 30 ASP.NET MVC developers setup in 5 cross functional scrum teams, is it going to be a nightmare convincing them it’s a good idea?
  4. From what I’ve read I can expect about 3 months for the developers to really get to grips with Orchard, is that right?
  5. Getting professional support in the UK – is anyone offering training services in terms of advanced customisation?
Thanks for taking the time to read this if you got this far! Anything you can add will be gratefully received!

Chris
Developer
Nov 22, 2014 at 1:01 AM
Edited Nov 22, 2014 at 1:03 AM
I have seen some really bad Orchard implementations, making it very hard to maintain. But this is true for many other web based applications that I have seen.
This has nothing to do with Orchard itself, which is, as you mentioned, neatly architectured.
In my opinion, it has everything to do with attitude, discipline and experience of the developer.

I probably don't have to tell you this, but writing well architected applications starts with adhering to principles such as SOLID.
Then there is MVC and a set of Orchard specific of concepts, such as Content Types, Parts, Fields, Drivers, Handlers, and Shapes.
Understanding these concepts are key to writing, strong, clean, and highly maintainable Orchard applications. Or any application for that matter.

The Orchard UI is highly customizable, but you need to understand how you can inject your menu items for example, and whether or not a Content Type should be Creatable, Listable, Securable and Draftable.
Some companies create content types that are semantically the same, but slightly different to vary the UI. This is clearly an anti-pattern, and will complicate the backend.
Another issue that I have often seen is the abuse of Layer rules, where there are dozens of layer rules, impossible to manage.

These pitfalls however are easily circumvented if one strives for elegant solutions and adheres to best practices, standards and principles.
To write an advanced and maintainable Orchard application, it is important to really understand its concepts, and don't cut corners.
A 3 month learning period doesn't sound unreasonable to me, although you could learn and understand how to write a custom widget in a day.
The best way to start I think is try out various simple scenarios, basic things such as data access and rendering views returned from a controller.

And you're right - even though the learning curve is very steep, it is nothing but beneficial in the long run, even if you decide to move away from Orchard. I myself became a much stronger developer because of all the things I learned from Orchard.

As for professional support in the UK, Nicholas Mayne and Steve Taylor are highly trained professionals who live there that I recommend.

Good luck!
Developer
Nov 22, 2014 at 12:32 PM
Thank for the recommendation Sipke :) - (FYI I am Nicholas Mayne)

I agree with Sipke - I too have seen some interesting implementation of Orchard. I think it comes from developers diving in and building software in a way they were previously accustom too without understanding the concepts within Orchard. This means that maintainability can be tough, not impossible, nothing in software is impossible, just time consuming.

3 months is not an unreasonable time to learn Orchard, having people around that have used it before can really help as the pitfalls we see are normally the same ones repeated. I will say, working with Orchard made me a better developer, and helped enforce a lot of concepts that can sometimes times be difficult to achieve from a practical perspective.

If you want to meetup in Central London next week let me know. ping me on "Jetski5822 at gmail dot com" or Skype "Jetski5822"
Nov 25, 2014 at 2:11 PM
Thanks to both of you for the reply - I'm pleased to sat that after much deliberation we have decided to move forward using Orchard!
Developer
Nov 25, 2014 at 2:26 PM
Edited Nov 25, 2014 at 2:26 PM
Awesome stuff. If you need any help, these Forums are a great resource, as well as Jabbr https://jabbr.net/#/rooms/orchard - people always there to help in case you run in to issues.

N