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?
What's the difference between a Web Server and a Game Server?
1:C#: Caching w/ method attributes VS manually using System.Web.Caching
- 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 this job 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 although in a different style.
- The MS Ent Libs are great for cross-cutting concerns (like data access, logging, etc) although that's all.
- There's also a range of good Dependency Inversion frameworks although again these aren't a full solution.
- Integration Options Overview
- Capabilities and Features (overview)
- Attrialthough e Driven (my answer to providing a plug-and-play architecture)