tnicolaysen / ConfigRemedy

1 stars 0 forks source link

Installation strategy and Nancy vs Katana #9

Open evgenyb opened 10 years ago

evgenyb commented 10 years ago

As I see it there are 2 possible ways how user can install Configuratron to his environment.

  1. Install it as WIndows Service
  2. Host it under existing IIS

Both Nancy and Katana can be hosted as self-hosted windows service (for instance with TopShelf) or hosted under IIS.

Technically it's possible to organise projects like

where core.api will contain either apicontrollers or nancy modules and *.host projects will be a placeholders for core.api + infrastructure code.

So I want to challenge us with the following 2 questions:

  1. Will it add any value to allow user to choose if he wants to deploy Configuratron under IIS vs. as Windows Service? Or is it something that will just overcomplicate overall system architecture / installation wizard / testing?
  2. Should we use nancy or katana for api implementation? We should make sort of Pros / Cons analysis and compare those 2 frameworks.
tnicolaysen commented 10 years ago

Octopus Deploy has chosen to host it as a Windows Service. The main benefit with this is that the user don't have to have IIS on his machine. I think it's more flexible. There are some edge-cases that we might get into if we try to install it into IIS. E.g. special top-level configuration. The same might be a disadvantage in some cases. I'm guessing special certificate rules for hosting on HTTPS. Not sure what dangers lurks out there...

To answer the questions:

  1. I don't think having a Web.Host is necessary at this point. A Windows service is a hassle-free install. I've made an installer for Smeedee using Wix. It's simple stuff, and works well. If users want to host it in IIS, I don't think it's too much job porting it like you suggested.
  2. I don't know enough about Katana, yet. One of the things I like best about Nancy is the testability and that is has all you need out of the box. E.g. it uses TinyIoC which is more than enough to bootstrap this application. We should try out Katana. The code we have now should be portable. There is very little lock-in towards Nancy. Maybe just branch out and play around? On of the advantages of Katana might be that it's more aligned with Microsoft's infrastructure and might be a safer bet than Nancy. Just a guess from my part.
evgenyb commented 10 years ago

Agree! We will focus on Windows Service hosted version first.

Here are some links that I found. Not sure how relevant they are (2 years old), but at least some analyses was done... http://www.tugberkugurlu.com/archive/why-am-i-not-using-nancyfx-instead-of-asp-net-mvc-web-api http://blog.jonathanchannon.com/2012/12/19/why-use-nancyfx/

If you haven't started yet, tonight I will branch out and will try to implement the same api call-stack with Katana.