Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Our website is written in ASP.NET MVC 3 and we want to change a feature in the core functionality of the site.

The problem is not every client can be moved to this new version/format (because of some technical inner restrictions) so it means that we need to keep 2 versions of the same functionality (backend and frontend) simultaneously. We don't want our clients to worry about URLs, so the ideal solution would be keep the same URL but redirect clients to the different versions.

The information about clients is stored in database. So the moment when user (client) logs in we know which version of site we should show.

I'm thinking about routing and areas but I'm not sure if it's possible for example to have 2 areas with the different versions of the same application. Or is it possible to load the assemblies on the fly? After user is logged in we can decide if (s)he should be redirected to the new or old version.

As far as all the clients have been moved to the new version we don't need this system more.

How can I do this in ASP.NET MVC?

share|improve this question

migrated from stackoverflow.com Oct 10 '12 at 19:54

This question came from our site for professional and enthusiast programmers.

1  
What differenties the clients? Do you keep a persistent record of their company? Department? Etc? Where is that data stored? Is it stored in an auth cookie with the UserData token? Is it stored in a separate cookie? Is it stored server side? If you're able to answer these questions (by editing your question), it'll help give some more context to answer it. As it stands, it can only be answered in the most general terms. –  George Stocker Oct 10 '12 at 13:57
    
George, I've added some explanation. The point is the data is stored on the server, in the database. –  Seacat Oct 10 '12 at 19:47

1 Answer 1

We do this very thing at The Motley Fool (TMF) with our DailyFinance and Fool Quotes pages. They both run off of the same codebase, but we utitilze a Custom Theme View Engine to allow the differing sites to have radically different CSS and Markup where needed. For instance, the TMF quotes page has Glassdoor integration, where the DailyFinance site does not.

In the custom Theme view engine, you can specify how you want to theme something, in our case, we use the server domain that the site runs off of, but you could just as easily replace it with the value of a cookie, or what company the user comes from (if you have that data stored in your database).

I would need to see some code or a specific example of what you're trying to do to be able to answer your problem any further.

share|improve this answer
    
Thanks for the response, but the problem mainly is with the backend. The frontend could be touched slightly (probably not at all or only client-side code written in JS) but the underneath backend code will be changed. –  Seacat Oct 9 '12 at 19:45
    
@Seacat The approach still works; Just have your views call the appropriate RenderAction based on whatever you choose to switch by. –  George Stocker Oct 9 '12 at 20:07
    
Thanks, let me investigate if this solution can be used in our case. –  Seacat Oct 9 '12 at 20:55
    
@Seacat It would help to have some code in your problem; right now it's very abstract and hard to answer as written. –  George Stocker Oct 9 '12 at 21:08
    
What code are you talking about? Really don't understand. It's the architectural question... How to keep 2 versions of the same site and how to show it to appropriate clients, the same time keeping the url for everyone the same. –  Seacat Oct 10 '12 at 19:47

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.