Razor View Engine in Nancy

Het vervolg op mijn vorige post waarin ik blogde over Nancy in combinatie met Owin en Heroku. Toen was het nog een simpele applicatie, maar de kracht van Nancy is dat het zo flexibel is dat je ook gewoon Razor cshtml view’s kan laten renderen. Hierdoor kan je ook gewoon traditionele MVC applicaties met Nancy maken. Het grote verschil met ASP.NET MVC is dat Nancy modules in plaats van controllers heeft. Ook moet eer een Nancy object wrapper in je View Model gebruikt worden.

Lees verder

Het Nancy webframework hosten op Heroku dankzij Owin

Eerder berichte ik al over Heroku’s PaaS dienst en vertelde ik ook al wat over Owin en Katana. Onlangs kwam ik erachter dat Heroku het Mono project ondersteunde. Mono is een opensource implementatie van Microsoft’s .NET en zorgt er onder andere voor dat je .NET applicaties onder Linux kan draaien. Doormiddel een speciaal buildpack kan Heroku voor jou je .NET applicatie rechtstreeks vanuit een Git repository compilen

Dankzij Owin is het nu mogelijk om self hosted applicaties te draaien die niet meer onder IIS moeten draaien en hierdoor volledig in Mono kunnen draaien zonder IIS. Microsoft heeft met haar eigen Owin implementatie genaamd Katana support voor WebApi en SignalR geleverd en deze kunnen dus zonder problemen binnen Owin draaien. Beide frameworks hebben zo snel van IIS/ASP.NET af kunnen stappen omdat hier vanaf het begin rekening mee is gehouden. Dat geldt helaas niet voor ASP.NET MVC, deze is te diep verbonden met ASP.NET welke weer zwaar op IIS ondersteuning leunt dat het maar de vraag is of ASP.NET MVC ooit in Owin zal draaien.

Gelukkig is er een ander web framework voor .NET genaamd Nancy. Nancy is vergelijkbaar met het Ruby framework Sinatra en is gemaakt voor websites en webservices zonder dat het in de weg zit met zogenaamde “plumbing“. Ondersteund Nancy ook MVC vraag je jezelf dan af? Jazeker maar het is niet verplicht om het MVC pattern te gebruiken. Uiteindelijk is Nancy maar een simpel endpoint dat naar Http Requests luistert. Gelukkig kan je ook gewoon MVC gebruiken zoals je dat wilt. Je kan Views laten serveren vanuit een Views map, Models aanmaken en je requests er naar toe mappen net zoals bij de reguliere ASP.NET MVC

Ik heb zelf een klein voorbeeld gemaakt welke een simpele Nancy applicatie door middel van Owin op Heroku gehost is. De source is hier op Github te vinden.

Hoe moet je het draaien?

1
2
3
4
5
git clone https://github.com/matthijsbreemans/nancy-owin-heroku.git
cd nancy-owin-heroku
heroku create
heroku config:add BUILDPACK_URL=https://github.com/friism/heroku-buildpack-mono/
git push heroku master

Niet vergeten een worker aan je Heroku app te koppelen en als het goed is kan je nu naar de app navigeren met je browser.

Gratis PaaS diensten

Gratis PaaS? Ja gratis PaaS! Als je nog niet weet wat PaaS betekent is deze blog misschien niet voor je bedoeld. Als je toch graag iets met Platform-As-A-Service wilt gaan doen kan ik je adviseren om dit even te lezen.

In de wereld van de Cloud zijn eigenlijk maar drie grote spelers, namelijk Amazon, Microsoft en Google. Amazon is er in gerold met hun Amazon Web Services (AWS) om overtollige servers te gaan verhuren. Dit bleek een ongekend succes te zijn, mede dankzij hun goede prijsmodel, en Amazon heeft hier nu groot op ingezet. Microsoft daarentegen is met hun Azure cloud meteen groots begonnen, waar het bij Amazon nog als een redelijk klein project begon hebben ze bij Microsoft hier gelijk groot op ingezet. Microsoft probeert met name de infrastructuur van grote bedrijven in de Azure cloud te krijgen en combineert dit met uitstekende integratie in het .NET framework en Windows. Google is daarentegen een andere weg bewandeld, ze zijn al erg lang bezig met de Google App Engine (GAE) en die was ook al vanaf het begin gratis maar de Google Compute Engine (GCE) is pas later beschikbaar gekomen.

Lees verder