I'm currently developing a quite large ASP.NET application which uses SQLExpress as the underlying database. The project is currently under heavy development and is covered with unit tests and regression tests. Subversion (SVN) is used as a version control system. Those tests are very important, we need to make sure that every test returns successfully.
Our current workflow looks like this:
- Someone commits code changes to our svn repository
- Coworkers will update their local repository and execute a build script which moves builds some visual studio projects and moves DLL's around
Note that the tests will not be triggered automatically!
So, here are my questions:
How does one use Continuous Integration in this setup? I found Jenkins.io after some research. Tools like TravisCI or CircleCI seem not to work with ASP.NET applications (correct me if I'm wrong). Is Jenkins suited for executing asp.net tests on every SVN commit?
I'm open for every idea and tip on how you would handle CI / automated testing in this situation.
The second question is all about using the application: How does one proper deploy asp.net applications in 2017?
Fyi there are two ways how our platform / website can be used:
- The application including the database will be deployed at a customer's own server
- The customer uses our server where the app is deployed and just connects to it
Our current setup is based on a powershell script which creates databases with tables and initial data, deployes the asp.net project, modifies config files and finally configures the IIS Webserver.
Is a container based setup like Docker the go-to way? And how would you handle the "update case"? Updating the software is not a problem on our servers, but how would you handle this if our software lies on the customer's server? I'm up for every idea. :)