Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best approaches for designing a well-organised ASP.NET application with modularity

I am trying to think about a web application development framework for our product development. I want to build an ASP.NET application which has many sub-modules in it. My requirements are like:

  1. The application will be a suite of different modules like CRM, Bugtracker, Inventory management, Finance management etc.

  2. Each Module should have their own DLLs.

  3. One project should be for the external container of the application (like the framework) and this project should bring all other modules (of type web application) in the solution to the external container. (Some thing like we have Frames in HTML). So we will publish the external container web application only at the end of the day and all other web application projects will be accessed via that.

I would like to have separate DLL for each module so I don't need to fear about the application breaking when I am deploying my single DLL which controls the entire suite.

I am not sure whether my thoughts are in the right direction. The end result I am looking for is a well-maintained, organized, and modular web application suite.

It is ASP.NET web forms, not MVC. I will use VS2010 for development.

What are the best approaches to do this?

Edit:

The term external container means it acts like a master page which has links to various modules and the various modules are not always in the same project. They can be separate project under the same solution. And I am under the impression that, by the end of the day, I will publish that project only and it will bring the various modules to it.

like image 659
Shyju Avatar asked Nov 19 '10 15:11

Shyju


People also ask

What is modularity in ASP.NET Core?

It is another consideration of . NET Core to build and implement application that is modular. Instead of installing the entire . NET Framework, your application can now just install what is required. Let us go to the visual studio and see the modularity.

Is asp net monolithic?

A new ASP.NET Core project, whether created in Visual Studio or from the command line, starts out as a simple "all-in-one" monolith. It contains all of the behavior of the application, including presentation, business, and data access logic. Figure 5-1 shows the file structure of a single-project app.

What are modules in .NET Core?

The ASP.NET Core Module (ANCM) is a native IIS module that plugs into the IIS pipeline, allowing ASP.NET Core applications to work with IIS.


1 Answers

I actually think the best approach would be one that does not over-architect. I'm concerned that it seems you are producing an overall architecture without sufficient reason.

Are these all new modules? Then just start writing the first one. Use best practices that apply to single modules.

Then write the second one. You'll find you want to use things you already wrote in the first module. Great. That's what refactoring is for. Refactor these things out into one or more "library" projects, re-run all your unit tests, then proceed with the second module.

Repeat until all modules are done.

At the end of this process, if you needed the kind of architecture you've outlined, then you'll have it. If you needed less, then you'll have less, and you will not have spent time creating an architecture which is not tied to real-world requirements.

like image 123
John Saunders Avatar answered Oct 19 '22 20:10

John Saunders