简体   繁体   中英

Best Practice for multiple asp.net web applications

Looking for the best practice when having multiple web applications within one ASP.NET "site" or "solution". I have a few options I am toying with:

  1. old faithful of putting all applications and Site master into one Solution / one web application

  2. My boss is worried about having 30 'applications' that are all under the same project in VS and every time we make a change to one have to deploy to all. So this makes us want to break out each into a separate project under the same solution. This makes us have to look into Master page solutions

    • Master page needs to support dynamic menu structure. Is this something that I can do with a single SiteMaster? Does VirtualProvider provide the right solution for this? Anyone have any good tutorials on it?
  3. Creating a UserControl for each application and reference it in the main application

I asked two similar questions here:

Cross-Project Master Page

Best bet is separate projects under a single solution and use Nuget package to synch up the common artifacts, including master pages. Right now this is working fine on a 22 project solution I'm working on. You can also store the Nuget package itself in source control.

Update:

You could use an XML file for your menu and share it out with Nuget. Possibly add jQuery for a sliding effect, etc.

1) So this makes us want to break out each into a separate project under the same solution.

(Good idea)

Master page needs to support dynamic menu structure.

As a side note, Have you ever heard of MEF ?
This is pretty suitable for your case.
Using it, you can have a full extensible master page solution with ability to add extra menus (and functionality for each) on the fly!!!.
By MEF technology you can have separate project under a single solution. Every (new/updated) project can be

  • Published / Republished.
  • have it's content files merged with the main already published site (master project)
  • Copy generated dll of the child project into bin folder
  • Restart the site.

here are some paper about it: Microsoft reference , CodeProject basics for Asp.Net
There is also a concept named Portable Area . But i don't know about how it works or what exact scenario it covers or even if it is applicable for Asp.Net or only for Asp.Mvc . just give it a try if interested.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM