Last post Jul 15, 2016 08:55 AM by Yorrick vd Voort
Jul 06, 2016 10:33 AM|Jeff_Liu|LINK
I am building an e-commerce website using AspnetCore RC2, MVC. I will have two modules: one for customers and one for company internals. The customer module is a standard e-commerce website where a customer can browser the products, put products in a shopping
cart, and check out ... etc. The company internal module is a mini ERP where I can do inventory control, complaint tickets handling, sales report, ...etc. My question is pretty simple: can I put them into two projects?
I am exploring and I am not 100% sure the purpose of multiple projects within a solution. I assume my understanding is right but I would like to get some experienced opinions.
Thank you for your feedback!
Jul 06, 2016 01:44 PM|bth_vijay|LINK
I think it will be better if you create two different project because both have different user base and functionality. For common function and module create separate project which will be common between both project and it will also satisfy single responsibility
If you create multiple project for different functionality then it will improve you to make moduler application that will help to reduce dependency. All these will help you more after project completion in maintenance stage.
I hope this will help you.
Jul 06, 2016 02:29 PM|Jeff_Liu|LINK
Can you please explain more of "If you create multiple project for different functionality then it will improve you to make moduler application that will help to reduce dependency."?
Jul 12, 2016 11:29 AM|bth_vijay|LINK
If you have one application module then when application grow your codebase also grow and after some time if you want to fix some bugs then it will be very difficult to understand and find the issue. If you make modular application then you can focus on small
area and codebase which is related to that bug so you don't need to understand all application. If you have multiple teams who is working on same project then you can divide the application is multiple modules and distribute to multiple people or team. For
project management prospective also it is easy to track and get proper status of project.
The benefits of using modular programming include:
Jul 13, 2016 03:42 AM|Jeff_Liu|LINK
Thanks Vijay! The reason I asked this question was that from the quick research I did, I only saw people divide a solution into projects from technical perspective. For example, a UI project, a Data Access Layer project, a Service project, etc. I haven't
seen anyone divide a solution from business perspective, like the question I asked. So I would like to get an opinion from people who have "seen a lot". Thank you for your time and thank you for your help!
Jul 13, 2016 09:27 AM|Jeff_Liu|LINK
Vijay, how do I do the routing? I thought it's as easy as right click one project, then choose "set as startup project". No, it's not so. Now, I want to make my admin project an address of
Jul 13, 2016 03:51 PM|Yorrick vd Voort|LINK
MVC has something called Areas, which basically is an isolated MVC site in a MVC site. See this url for further details on the subject:
It allows you to separate the various domains in your application. The Admin domain you're talking about would be a perfect candidate to put in an Area. The Root of the MVC site will be your e-comm site.
Hope this helps.
Jul 13, 2016 04:09 PM|Jeff_Liu|LINK
While waiting for the answer, I have already done it. Did you watch me? :=)
Jul 15, 2016 08:55 AM|Yorrick vd Voort|LINK
No I didn't :-), but good to hear you figured it out yourself ;-)