I’ve released 0.0.1 version of
long time ago. I was actually quite happy how the things went, before I
collected some initial feedback. Even, if I can see the application useful,
almost all responders had a different opinion. Let’s briefly see the major
Original idea of Candidate was that it works as usual ASP.NET application,
hosted under IIS. That worked really bad, though. Candidate is performing a
some operations that requires extended permissions (for git, msbuild, file
system operations etc.). That means that IIS web site has to be configured
to run under under your personal account (or any other administrative
account, with set-up SSH keys, access to msbuild etc).
All of that created a bit of overhead. First of all, Candidate has to be
installed and configured on IIS. Even, it is possible to create kind of
installer to automate this job, it does not sound good. In other hand, some
people might have very strict policies on their machines, so it is not even
possible to change any kind of IIS settings under it.
So, it turned out to be bad idea for this particular application.
The primary deployment scenario that implemented in Candidate is local one.
It means, it’s able to build and test the site and deploy it to local IIS. I
did so, since I use the same scenario for deployment of
trackyt.net, which is hosted on VPS and
deployed by Jenkins running on the same server.
But many people are not using VPS, but rather sharing hosting there they are
not even able to install any kind of other software. So, they are more
interested in remote deployment, not local one. With the
re-invention of Azure, you
might consider scenarios of deployment existing web application to it
Local deployments was a good for prototype, but not good at all for
I stick to framework named
Bounce. It’s very
powerful product, that basically allows to write a deployment scripts in
.NET languages. Then I originally saw it, I thought it’s great since it does
everything I need, including git operations, msbuild and IIS sites
deployment. Even more, Bounce is the one of the best .NET code I ever seen,
so respect to
But.. Bounce, is not that good for long perspective. It required to create a
configuration code, hard to change logging options and further extension.
For a long running product I need more lightweight and robust approach.
Considering all things above, I decided to re-start the project, almost from
It would be based on 3 different technologies, that in my opinion are agile
enough to allow me to build what I want.
Unfortunately, I’m not yet proficient with any of these technologies. It
makes me very exited to learn something new. I’ve already created a
where some basic infrastructure is prepared. My goal would be create first
prototype in 2 - 3 weeks.
And I want to appreciate everyone who provided feedback and useful technical
suggestions. I hope it would turn in something good.