Architecture of Service Model

Posts   
 
    
pandu avatar
pandu
User
Posts: 86
Joined: 18-May-2006
# Posted on: 21-Sep-2006 07:11:26   

Hi All:

I am working on a site design that is similar to Basecamphq.com and this will be used just like Basecamp by signup process (Service Model).

In Basecamp signup process, the user has a choice to select the domain name and sub domain of their choice.

  1. What will be the best (High Level) architecture design for this Service Model?
  2. Do I need to deploy the application for each signup in the required sub domain and domain? If so, how do we update the changes across all the sites?

I appreciate your inputs. smile

Thanks.

pandu avatar
pandu
User
Posts: 86
Joined: 18-May-2006
# Posted on: 23-Sep-2006 06:18:08   

I saw a nice article about the Multi-Tenent Data Architecture here:

http://msdn.microsoft.com/architecture/saas/default.aspx?pull=/library/en-us/dnbda/html/MlttntDA.asp

Approaches described are:

  1. Seperate Database
  2. Shared Database, Seperate Schemas
  3. Shared Database, Shared Schema

The 3 has been discussed here in this thread:

http://www.llblgen.com/TinyForum/Messages.aspx?ThreadID=2154&HighLight=1

How do we approach 1 and 2 with LLBLGen?

Chester
Support Team
Posts: 223
Joined: 15-Jul-2005
# Posted on: 24-Sep-2006 18:51:17   

pandu wrote:

I saw a nice article about the Multi-Tenent Data Architecture here:

http://msdn.microsoft.com/architecture/saas/default.aspx?pull=/library/en-us/dnbda/html/MlttntDA.asp

Approaches described are:

  1. Seperate Database
  2. Shared Database, Seperate Schemas
  3. Shared Database, Shared Schema

The 3 has been discussed here in this thread:

http://www.llblgen.com/TinyForum/Messages.aspx?ThreadID=2154&HighLight=1

How do we approach 1 and 2 with LLBLGen?

  1. Use adapter and set the db connection string dynamically at runtime after the user authenticates. Store it in the session for the user. Use the overload for DataAccessAdapter that accepts a connection string.

  2. I haven't actually used schemas in this type of approach, but would this simply be handled by mapping user logins to particular schemas? This essentially is solved by the same mechanism as #1: custom connection strings. i.e. you map different logins to different schemas.

pandu avatar
pandu
User
Posts: 86
Joined: 18-May-2006
# Posted on: 28-Sep-2006 12:23:11   

Chester wrote:

  1. Use adapter and set the db connection string dynamically at runtime after the user authenticates. Store it in the session for the user. Use the overload for DataAccessAdapter that accepts a connection string.

  2. I haven't actually used schemas in this type of approach, but would this simply be handled by mapping user logins to particular schemas? This essentially is solved by the same mechanism as #1: custom connection strings. i.e. you map different logins to different schemas.

Thanks Chester.

How do I use the connectionstring when using LLBLGenDataSource2 Control?

Chester
Support Team
Posts: 223
Joined: 15-Jul-2005
# Posted on: 03-Oct-2006 03:30:57   

Hmmmm. Good question. I started myself by trying to override a number of methods in the DataAccessAdapter class, but I can't find any suitable to override. In code you can always use the constructor that allows you to pass in a custom connection string, but that doesn't help in the scenario where you're using the data source control. You could just _modify _ the ReadConnectionStringFromConfig method of the DataAccessAdapter, but you'd have to remember to modify it again if you regenerated the code.

pandu avatar
pandu
User
Posts: 86
Joined: 18-May-2006
# Posted on: 16-Nov-2006 05:42:09   

This is about Seperate Database Architecture for a WebApp.

In my Test Project, I have a Database name "DATA1000" and generated code based on this database.

When I have new account signedup, I will create a new database "DATA1001" and so on.

With above setup, I changed the Connectionstring's catalog name from "DATA1000" to "DATA1001" to switch to the new database.

But, when I run the app, it is still looking for DATA1000...

Am I missing something? How do I solve this problem?

Thanks.

pandu avatar
pandu
User
Posts: 86
Joined: 18-May-2006
# Posted on: 16-Nov-2006 06:03:23   

Sorry.. I should have checked the Manual first... simple_smile

It is described here in Generated code - Application configuration through .config files