With areas, can I easily split an application into different modules?

Let's say I'm creating an application that I want to break functionality in order to enable / disable functions.

I thought about it:

1. breaking major functionality out using areas 2. all business logic (other than controller logic) but in a seperate assembly 3. have a 'base' assembly that is shared with all other assemblies 

So say that I have a CMS module, an e-commerce module, etc. I would have those that were in their own area, and then you have a separate CMS assembly and an e-commerce assembly. Each assembly will have a module and db access code, as well as business logic, etc.

Is that a good idea? Is there a better way? Will this work?

+4
source share
2 answers

Yes, it’s generally a good idea to separate functional areas of an application like this. Insulation helps with testing and maintainability. It is also important to look for similarities and see how it all comes together. Take a look at SOLID principles, they will define your projects. This link also has a set of design principles for packages that can help distribute functionality for assemblies.

+1
source

Yes, but only one area makes up only half of the IMHO solution.

For better modulation, it is recommended to use stand-alone assemblies for “plug-in” web parts, which can be easily achieved using MvcContrib Portable areas (which extend to areas and provide files through the virtual path provider from the built-in build resources).

0
source

All Articles