I’m starting to think about and develop an architecture for a big web application, and I wanted to get suggestions and/or recommendations on which technologies and/or frameworks to use.
The application will be an Intranet-based web site using Windows authentication, running on IIS and using ASP.NET. It’ll need to be structured as a main web application with sub-web applications. Essentially, the entire scope is a composite browser-based, Intranet application that is composed of discrete, functionally complete modules or sub-applications.
This composite web client application would have a main or shell module to provide the overall user interface structure. Additionally, the shell module would provide access to common services that all the individual sub-apps or modules could use. Then each sub-app/module would contain its own functionality and implementation, but integrate with the shell user interface.
Next, based on the user and which of the sub-apps are available, the main or shell app would dynamically build tabs (or buttons or something) as a way to access each individual application. And, we’ll be storing the user and application data in a database table.
So, for example, we’re going to have a reports application, a display application, and probably a couple other distinct applications. On startup of the main/shell application, after determining who the user is, the main app will query the database to determine which sub-apps the user can use and build out the UI. Then the user can navigate between available sub-apps and do their work in each.
I hope all this makes sense.
Anyway, I’m wondering which, if any, pre-existing technologies/frameworks would work best for architecting and developing a system such as this.
Would the Web Client Software Factory be a good choice? Would some other MVP solution be a good choice? Would ASP.NET MVC be a good choice? Something else???? Would none of these be a good choice and we should just develop everything from the ground up using web forms? Any other info I should know about?
ASP.NET MVC Trouble getting data and related data to the view. (View Model Pattern?)
Combining ASP.NET MVC and Reverse Proxy with URL Rewrite v2
ASP.NET MVC 2 - Html.EditorFor a nullable type?
Here is a link that may be useful.
How to create the custom authorize filter?
how can i keep my url when my validation fail in asp.net mvc controller action
basically you could use areas to break out your "subapplications".
ASP.NET MVC NerdDinner Tutorial question
Can submit buttons in Ajax forms have their name attribute set?
Difference between window.location.href and top.location.href
- Possible integration points (Data, Services, Business Logic, UI)
- Cross-cutting concerns (system logging, audit logging, config, security)
- Who'll be developing the sub-apps (you, people that work in your office, or anyone / the greater community)
- ASP.NET WebForms is basically a completely vacant parcel of land - you'll have to build most things yourself, or bring in additional frameworks (such as the MS Enterprise Libraries)
- ASP.NET MVC is effectively the same thing but in a different style.
- The MS Ent Libs are great for cross-cutting concerns (like data access, logging, etc) but that's all.
- There's also a range of good Dependency Inversion frameworks but again these aren't a full solution.
Even if you don't use it you might find some good ideas or code you can 'steal':. Morphfolia:.
- Integration Options Overview
- Capabilities and Features (overview)
- Attribute Driven (my answer to providing a plug-and-play architecture)