Leesvoer!

Interessante artikelen die ik de afgelopen tijd tegen kwam:

Je website schalen naar de 100 miljoen pageviews van Kim Kardashian
Toen Kim Kardashian haar grote nieuws aankondigde dachten veel mensen dat het internet kapot zou gaan, hoe zorg je er voor dat het niet gebeurd?

Top 5 redenen waarom je als enterprise developer over moet stappen naar DevOps
DevOps, iedereen kent het wel, maar wat zijn nu de top 5 redenen voor als je het nog niet omarmd hebt.

De Joel Test, maar dan voor programmeurs
De Joel Test bestaat al een tijdje voor bedrijven, maar je kan hem ook toepassen op je zelf.

Wanneer het moeilijk gaat, staan de Software Craftsmen klaar
Het verschil tussen een 9 tot 5 mentaliteit en echte craftsmen.

JavaScript heeft gewonnen!
Flash content afspelen zonder Flash in je browser? Silverlight zonder Silverlight? Dat kan nu met JavaScript dankzij Mozilla!

Open source .NET!

Na ASP.NET, EntityFramework, F# & Roslyn heeft Microsoft nu ook de .NET Core open source gemaakt. Scott Guthrie deed deze aankonding tijden het Visual Studio Connect(); evemement.

Maar wat is de .NET Core? De .NET Core is een modulaire softwarestack welke de basis gaat vormen voor alle toekomstige .NET platformen waar ASP.NET 5 en .NET Native de eerste zullen zijn.

Microsoft heeft besloten om de gehele .NET Core broncode op Github te plaatsen, een logische keuze omdat onder andere ASP.NET al een tijdje op Github te vinden is. De Git repository van de >NET Core is hier op github te vinden

Immo Landwerth heeft op MSDN een uitgebreide blog geschreven over het open source maken van .NET

Lees verder

Visual Studio Community 2013, gratis en volledig

Microsoft heeft vandaag op hun live te streamen event Visual Studio Connect(); aangekondigd dat Visual Studio Community 2013 per direct gratis te downloaden is. Nu had Microsoft al gelimiteerde versies van Visual Studio uitgebracht onder de Express tak maar deze waren ieder erg gelimiteerd in functionaliteit.

Het grote verschil met de Express versie is Extensibility, dat betekent dat ontwikkelaars geen aparte versie nodig hebben voor iedere taal, mogelikheid tot het installeren van Extensions en Addon’s, volledige Git workflow ondersteuning, refactoring, code analysis en nog meer wat eerst niet kon met een Express versie. De enige restrictie die Microsoft heeft op de Community versie is dat deze niet voor enterprise applicaties gebruikt mag worden. Onder andere JetBrains heeft al aangekondigd dat ReSharper 8 & 9 volledig met Visual Studio Community 2013 zal werken.

Lees verder

WhatsApp-Forward, eenvoudig WhatsApp berichten doorsturen

Al eerder was ik bezig geweest met de WhatsApp API voor C#. Na een paar proof of concept’s met SignalR en OWIN heb ik toch maar even iets bruikbaars in elkaar geknutseld. Het eindproduct is WhatsApp-Forward geworden! Het is een eenvoudige console applicatie welke naar berichten van een WhatsApp account luisterd en deze doorstuurd naar een vooraf gedefinieerd telefoon nummer. Die gene die het doorgestuurde bericht ontvangt kan hier ook weer eenvoudig op reageren, dit kan een persoon zijn maar ook WhatsApp groepen. Ook kan er eenvoudig opgevraagd worden in welke groepen de gebruiker zit.

Lees verder

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.

Self-hosted SignalR met Owin

Onlangs ben ik bezig geweest met het uitwerken van een nuttige toepassing van de C# Api voor WhatsApp (GitHub fork hier). Iedereen weet ondertussen dat de openheid en compatibiliteit het grote gemis is bij WhatsApp dus het leek me leuk om wat te gaan spelen met een zelf geschreven crossplatform client. Mijn keuze is uiteindelijk op een implementatie van WhatsApi geworden. Ook zocht ik al een tijdje naar een nuttige toepassing om SignalR te gaan gebruiken (op een simpele oldschool Ilse chat room na) en is mijn keuze uiteindelijk gevallen op een self hosted implementatie van Owin in combinatie met SignalR.

Nieuwsgierig wat SignalR en/of Owin nou precies inhoud?

Lees verder