Modules that are huge apps

Topics: Customizing Orchard
Dec 5, 2012 at 12:55 AM

We are looking towards Orchard as an application framework where LOB apps will come together as Orchard modules. Lets say we have 8-10 giant apps based on MVC that we want to port over to Orchard as modules. 

- Is there any way to avoid bringing such apps inside modules and yet take orchard advantages?

- If no, when the application is deployed, these 8-10 modules will fight for hardware resources on the same box. Even if we have a webfarm, I think it would be preferrable for the large apps to not share hardware. Is there any way to avoid this?

Dec 5, 2012 at 5:20 AM

They will pretty much have to be modules, but why would they need to be modules within the same instance?

Dec 5, 2012 at 5:27 AM

Thanks for the reply. My understanding might not be right but looking at the solution, I think that we will have one orchard website with all the modules in it. So requests for different apps will come on the same instance and if one app is getting lot of requests the other module's performance might suffer.

Compare this with the scenario where the apps are deployed in separate websites, they will have their own dedicated hardware.

Dec 5, 2012 at 5:37 AM

So it sounds like you should have them as modules, but in different Orchard instances, as I was saying.

Dec 5, 2012 at 5:49 AM

We wanted them to be in the same instance so that we can create common UI (themes), have common messaging across the apps and common navigation.

Dec 5, 2012 at 5:55 AM

I don't see why the theme couldn't be common. What kind of common messaging do yo have in mind?

Dec 5, 2012 at 6:01 AM

Once again thanks for taking the time out to discuss this.

For client side messaging, we are looking into amplify.js to handle pub/sub scenarios where a widget or content type can publish an event from one app and other apps can subscribe to that and act accordingly. 

For server side messaging, we would rely on services.

Dec 5, 2012 at 6:04 AM

Yes, I don't see how being in separate apps would prevent them from communicating with each other.