How to achieve .NET Nployment?

Our company is approaching the "go live" date (and its getting the date of the QA department), and I'm trying to determine the right operational processes to support this. My big opinion is how to avoid deployment / configuration attacks that inevitably occurred. Have any of you found a good solution for transferring assemblies to non-programmers so that they can successfully install and configure it in QA, intermediate and production environments?

The complete environment for us consists of a mixture of heterogeneous scheduled tasks, Windows services, and websites, all of which can be scaled using parallel deployment. Fortunately, the configuration tools are consistent. Unfortunately, all this was controlled through the .NET web / app.config files. In my experience, QA and ops people are always spoiled when trying to modify them (for most people, XML is very difficult to handle!)

Here are the options I'm considering:

Using machine.config files

This is something that I did not do in practice, but it looks promising. If we create a machine.config template containing all the settings for each application, which may vary depending on the environment, this will allow the administrator to make all the changes in one file and deploy it to each machine in the environment.

<Dl> <dt> Pros: dt> This potentially reduces the number of steps required to deploy the system <dt> Cons: dt> The need to change the document schema configuration <dt> Unknown: dt> We use custom configuration sections and other configuration extensions that reference assembly. Will it require us to install our .NET assemblies in GAC computers? For>

Manipulate configuration files during the build process

If we set up the QA, middleware and production environments so that they are identical to our software (virtual servers and local networks, etc.), the QA should be able to migrate to the finished software without any configuration changes directly to the middleware and production launch. With this installation, we could theoretically transfer the pre-configured foo.config QA files that no one should touch.

<Dl> <dt> Pros: dt> Engineering will be more skilled in ensuring that the configuration files are correct <dt> Cons: dt> This may be considered a bad security practice for engineers to keep abreast of production configurations (bad argument, IMHO) For>

Centralized settings storage

, , :

  • , , , , . , .
  • , , , , . , , URL- , , .
  • Active Directory? ! ?

?

, ? , ?

+5
5

exe, , .

4

web.config - ( )
web.integration.config - - ( -)
web.staging.config - - ( -)
web.production.config - ( )

exe , , web.config...

(QA, DBA ..) , ( , sql) ...

+2

:

. , , , " " . , "" , , - . , , , , .

-, , -, , . - , , , , . , , , , , XML , .

+3

, script , , QA Builds , . Powershell .

+1

. , , XML ( ), ( ) . , . , , . , .

0

:

  • .
  • , /, .
  • CI- , , , , .
  • . , . "".
  • .
  • script.
  • NAnt script , P/Invoke

Anthill, NAnt, Robocopy , .

, . dev.

. GAC machine.configs. , , .

0

All Articles