sql server 2005 - How to avoid chaotic ASP.NET web application deployment? -


ok, here's thing.

i'm developing existing (it started being asp classic app, can imagine :p) web application under asp.net 4.0 , sqlserver 2005. 4 developers using local instances of sql server 2005 express, having source-code , visual studio database project

this webapp has several "universes" (that's how call it). every universe has own database (currently on same server) share same schema (tables, sprocs, etc) , same source/site code.

so manually deploying annoying, because have deploy source code , run sql scripts manually on each database. know manual deploying can cause problems, i'm looking way of automating it.

we've created visual studio database project manage schema , generate diff-schema scripts different targets.

i don't have idea how put pieces together

i to:

  1. have way make "sync" deploy target server (thanksfully have full rdc access servers can install things if required). "sync" deploy mean don't want deploy whole application, because has lots of files , want deploy new or changed.
  2. generate diff-sql update scripts every database target , combine 1 script. should have list of databases names somewhere.
  3. copy site files , executing generated sql script in easy , automated way.

i've read msbuild, ms webdeploy, nant, etc. don't know start , want rid of manual deploy.

if there better , easier way of doing enumerated, i'll pleased read option.

i know not specific question i've googled lot , seems cannot figure out how it. i've never used automation tool deploy.

any appreciated,

thank all,

regards

have heard of term multi-tenancy? might worth see if applied "multiverse" if 1 universe never accessed another...

see:

http://en.wikipedia.org/wiki/multitenancy

http://msdn.microsoft.com/en-us/library/aa479086.aspx

update:

if application , database same each client (or tenant) believe there applications may in providing same code/db saas application? ie application/configuration layer on top can handle deployments etc?

i think these called platform service (paas) applications:

see: http://en.wikipedia.org/wiki/platform_as_a_service

multi-tenancy in case may possible, depending on client security requirements, bit of work (or lot of work):

option 1:

you use 1 instance of application, ie deploy site once , connect different database each client. need differentiate each client url isolate content/data byt setting connection string each etc. (this reduce site deployments 1 deployment)

option 2:

you create both single instance of application , use single database. need add "tenantid" each table , adjust code accept tenantid ensure data security/isolation. again wold need detect/differentiate tenant based on url set tenantid session used every database call. (this reduce site , database deployment 1 of each)


Comments

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -