<![CDATA[Webstack]]> 2015-03-25T12:47:35.283Z https://webstack.nl/ Hexo <![CDATA[Microsoft kondigt Azure App Service aan]]> https://webstack.nl/2015/03/microsoft-kondigt-azure-app-service-aan/ 2015-03-25T12:09:53.000Z 2015-03-25T12:47:07.000Z Gisteravond kondigde Microsoft de nieuwe Azure dienst Azure App Service aan. Azure App Service biedt de Websites & Mobile Service mogelijkheden aan die eerst apart werden aangeboden aan in een dienst. Daarnaast heeft Microsoft nieuwe Logic, Workflow en API app’s toegevoegd inclusief connectors voor Office 365, Salesforce, Dynamics Twitter, Facebook, Dropbox en meer.

Dit alles wordt aangeboden met het zelfde prijsmodel als de hudige Azure Websites en de nieuwe diensten kunnen zonder extra kosten gebruikt worden.


Web Apps

Web Apps binenn Azure App Service zijn eigenlijk het zelfde als de vroegere Azure Websites en bieden ook gewoon de zelfde mogelijkheden. Onder andere het hosten van een .NET, Node.js, Java, PHP of Python web-applicatie. Voor de hudige gebruikers van Azure Websites verandert alleen de naam, er hoeft verder niets anders ingesteld te worden. Wel kunnen er nu Mobile, Logic of API app’s aan toegevoegd worden.

Mobile Apps

Hier geldt het zelfde als voor de Web Apps, Mobile Apps binnen Azure App Service zijn eingelijk het zelfde als het vroegere Azure Mobile Services. En ook hier kunnen nu extra App diensten worden teogevoegd. Naast de naam wijziging heeft Microsoft nog wel nieuwe functionaliteit toegevoegd zodat Mobile App’s nu de zelfde Azure functionaliteit hebben als Web Apps. Denk hierbij aan Auto-Scaling, Traffic Manager, CI support, WebJobs en staging omgevingen.

Logic Apps

Logic Apps zijn nieuw binnen Azure en maken het mogelijk om workflows en business processes te automatiseren. Logic Apps kunnen ingeregeld worden doormiddel van code (JSON) of de nieuwe Logic/Workflow designer in de Azure Portal. Een voorbeeld wat mogelijk is met een Logic app is bijvoorbeeld iedere 5 minuten Facebook te doorzoeken, plaats dit in een database en stuur een SMS bericht.

API Apps

API Apps binnen Azure App Service maken het mogelijk om API Management (met Swagger) op bestaande of nieuwe REST JSON API’s. Met API Apps is het mogelijk om je zelf een ASP.NET Web API te packagen met Swagger/Swashbuckle, hier een NuGet package van te maken en deze op de Azure Marketplace aan te bieden. Omdat het een NuGet package is geworden kan je hier heel makkelijk versie beheer op toepassen.

Op Channel9 staan uitgebreide video’s over de nieuwe Azure App Service Web Apps, Mobile Apps, Logic Apps en API Apps

]]>
Gisteravond kondigde Microsoft de nieuwe Azure dienst Azure App Service aan. Azure App Service biedt de Websites & Mobile Service mogelijkheden aan die eerst apart werden aangeboden aan in een dienst. Daarnaast heeft Microsoft nieuwe Logic, Workflow en API app’s toegevoegd inclusief connectors voor Office 365, Salesforce, Dynamics Twitter, Facebook, Dropbox en meer.

Dit alles wordt aangeboden met het zelfde prijsmodel als de hudige Azure Websites en de nieuwe diensten kunnen zonder extra kosten gebruikt worden.

]]>

<![CDATA[ASP.NET vNext, renamen en de introductie van DNX!]]> https://webstack.nl/2015/03/asp-net-vnext-renaming/ 2015-03-20T16:31:13.000Z 2015-03-20T16:36:21.000Z Het speelde al een tijdje bij de ontwikkeling van ASP.NET vNext maar tijdens een van de laatste Community Stand Up’s is er besloten dat de bekende vNext commando’s zoals k en kpm hernoemd worden om eenduidigere en unieke commando’s te gebruiken

dnvm

dnvm is de vervanger van KVM. Als je net ASP.NET vNext hebt geinstalleerd begin je met dnvm. dnvm zorgt ervoor dat er een runtime versie geinstalleerd wordt en hiermee kan je ook de verschillende runtimes (mocht je die hebben) managen. Ook is het mogelijk om naar een andere versie switchen. Zie https://github.com/aspnet/Home/wiki/version-manager voor meer info.

dnx (dot Net X?)

DNX is de vervanger van K. Als je een vNext applicatie wilt draaien gebruik je dnx run. Voor meer informatie zie https://github.com/aspnet/Home#optimistic-dnx. Eventueel kan er in het project.json bestand nog andere startup commando’s worden opgegeven. Ook vervangt dnx het oude KRE commando omdat de CLR en CLR bootstrappers nu als een NuGet packages aangeboden worden.

]]>
Het speelde al een tijdje bij de ontwikkeling van ASP.NET vNext maar tijdens een van de laatste Community Stand Up’s is er besloten dat de bekende vNext commando’s zoals k en kpm hernoemd worden om eenduidigere en unieke commando’s te gebruiken

dnvm

dnvm is de vervanger van KVM. Als je net ASP.NET vNext hebt geinstalleerd begin je met dnvm. dnvm zorgt ervoor dat er een runtime versie geinstalleerd wordt en hiermee kan je ook de verschillende runtimes (mocht je die hebben) managen. Ook is het mogelijk om naar een andere versie switchen. Zie https://github.com/aspnet/Home/wiki/version-manager voor meer info.

dnx (dot Net X?)

DNX is de vervanger van K. Als je een vNext applicatie wilt draaien gebruik je dnx run. Voor meer informatie zie https://github.com/aspnet/Home#optimistic-dnx. Eventueel kan er in het project.json bestand nog andere startup commando’s worden opgegeven. Ook vervangt dnx het oude KRE commando omdat de CLR en CLR bootstrappers nu als een NuGet packages aangeboden worden.

]]>
<![CDATA[dotNetConf 2015 komt er aan]]> https://webstack.nl/2015/03/dotnetconf-2015/ 2015-03-10T18:00:29.000Z 2015-03-10T17:46:21.000Z dotNetConf komt er weer aan. Na het succes van de eerste versie in 2014 komt er een vervolg op de volledig gratis online conferentie gericht speciaal voor .NET developers. Dit jaar zal het plaatsvinden op 18 & 19 maart 2015 en de opening keynote zal op 22:00 Nederlandse tijd plaatsvinden, en het volledige programma is hier te vinden. Uiteraard zal achteraf alles terug te zien zijn op Channel 9. Verwacht onderwerpen zoals ASP.NET 5, .NET Core, C#, F#, Roslyn, debugging met Visual Studio 2015 en meer.

Benieuwd wat er vorig jaar is verteld? Bekijk dan de editie van 2014 hier terug.

]]>
dotNetConf komt er weer aan. Na het succes van de eerste versie in 201]]>
<![CDATA[Leesvoer! deel 2]]> https://webstack.nl/2015/03/leesvoer-deel-2/ 2015-03-10T17:40:26.000Z 2015-03-10T17:35:28.000Z Interessante artikelen die ik de afgelopen tijd tegen kwam:

Hoe StackExchange (van StackOverflow) hun live datacenter migratie deed

Een vergelijking tussen Angular 1.x en 2.0

Een demo van Docker op Azure draaien

BehindTheSite, altijd al benieuwd welke technieken een site gebruikt?

Het verschil tussen libraries en frameworks volgens Tomas Petricek

]]>
Interessante artikelen die ik de afgelopen tijd tegen kwam:

<![CDATA[Leesvoer!]]> https://webstack.nl/2015/02/leesvoer/ 2015-02-24T08:11:26.000Z 2015-02-24T08:11:39.000Z 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!

]]> Interessante artikelen die ik de afgelopen tijd tegen kwam:

<![CDATA[Visual Studio 2015 CTP6 is uit]]> https://webstack.nl/2015/02/visual-studio-2015-ctp6-is-uit/ 2015-02-23T22:12:59.000Z 2015-02-23T22:29:10.000Z Microsoft heeft alweer de 6e CTP (Community Technology Previews) van Visual Studio 2015 uitgebracht. Nadat het Visual Studio Development team erachter kwam dat CTp 5 behoorlijk buggy was hebben ze hard gewerkt om CTP 6 uit te brengen.

Wat is er allemaal nieuw in CTP 6?

UI Debugging tools for XAML

Microsoft heeft twee nieuwe tools toegevoegd voor het debuggen van WPF applicaties, Live Visual Tree en Live Property Explorer. Beide maken het mogelijk om tijdens het debuggen de visual tree & properties te bekijken.

Single sign-in

Met Single Sign-in in CTP 6 hoef je niet meer iedere keer opnieuw te authenticeren bij een Cloud Service. Zodra je bij de eerste Cloud Service inlogt zal VS je automatisch bij de anderen aanmelden.

Code Lens

Met een nieuwe versie van Code Lens is het nu mogelijk om de geschiedenis van je C++, SQL of JavaScript bestanden in de Git repositries te bekijken. Ook kan Code Lens deze aan Work Items in TFS koppelen.

ASP.NET

ASP.NET heeft in CTP 6 veel kleine verbeteringen gehad, onder andere de templates voor WebAPI en ASP.NET 5 zijn aangepast. Ook is het nu mogelijk om Lambda expressies in de debugger te gebruiken mits je op de Desktop CLR zit.

Visual Studio Emulator for Android

De VS Emulator voor Android ondersteund nu OpenGL ES, Android v5 API level 21, Camera interface (webcam of bestanden) en Mutli Touch input.

Verder zijn er nog verbeteringen voor C++, Unit tests, JavaScript Editor, Exception settings, Code Map & Diagnostic Tools. De release notes zijn hier te vinden.

Microsoft Visual Studio CTP 6 kan je hier downloaden.

]]> Microsoft heeft alweer de 6e CTP (Community Technology Previews) van Visual Studio 2015 uitgebracht. Nadat het Visual Studio Development ]]> <![CDATA[Nieuwe features in C# 6.0]]> https://webstack.nl/2014/11/nieuwe-features-in-c-6-0/ 2014-11-21T21:31:04.000Z 2014-11-24T08:57:31.000Z Met de release van ASP.NET vNext heeft Microsoft ook een nieuwe versie van de C#) programmeer taal aangekondigd. Inmiddels zijn we bij versie 6.0 van C# aangekomen (niet verwarren met de versienummers van het .NET framework). In vergelijking met eerdere versies bevat versie 6.0 maar weinig echte grote verbeteringen en Microsoft heeft vooral veel tijd in vNext en Roslyn gestoken. Verwacht dus geen nieuwe features die net zoveel impact hebben als Linq of Generics maar veelal verfijning van de taal C#.

Wat is er dan wel veranderd?


Auto-property initializers bestaan nu ook in C# en zijn vergelijkbaar met het automatisch zetten van velden

1
2
3
public class Product {
public string ProductNaam {get; set; } = "Motorolie";
}

Dit werkt nu ook voor Getter-only auto-properties

1
2
3
public class Product {
public string ProductNaam {get;} = "Motorolie";
}

nameof Expression is een nieuwe string functie welke de mogelijkheid geeft om bijvoorbeeld de naam van een Property kan retourneren. Uiteraard kan je dit ook handmatig zetten maar met de nameof expression kan je dit met de compiler afdwingen wat het refactoren weer makkelijk maakt.

1
Console.WrileLine(nameof(Product.ProductNaam)); //output: ProductNaam

String interpolation maakt String.Format overbodig waar je voorheen

1
String.Format("Hallo {0}, het is vandaag {1}", naam, DateTime.Now.Date);

moest gebruiken kan je het tegenwoordig af met

1
var tekst = "Hallo \{naam}, het is vandaag \{DateTime.Now.Date}";

Null-conditional operators maakt code overzichtelijker door het eindeloze null-checken te vereenvoudigen. Waar je voorheen

1
int? nummer = product != null ? product.nummer : (int?)null;

moest gebruiken om geen Nullpointer exeption te krijgen kan je dit nu oplossen door .? te gebruiken

1
int? nummer = product.?nummer;

Index initializers zijn uitgebreid zodat je nu niet alleen Member variabelen kan initialiseren maar ook de indices van het nieuw aangemaakte object.

1
2
3
4
var producten = new Dictionary<int, Product> {
[2] = new Product(),
[11] = Product()
}

Nog een leuke feature is Expression-bodied function members, deze maken het mogelijk om methods, properties en andere functionmembers in een expressie te stoppen in plaats van een statement block

1
public int Optellen(int i, int j) => i + j;

Hiermee kan je ook andere methodes aanroepen, bijvoorbeeld

1
public void Print(string bericht) => Console.WriteLine(bericht);

Naast paramterless constructors in een class kan je deze nu ook gebruiken in een struct. Verder kan nu ook met using static methodes aanroepen zonder de hele class op te geven. Ook zijn Exception filters en await in catch en finally blocks toegevoegd aan C# 6.0

]]>
Met de release van ASP.NET vNext heeft Microsoft ook een nieuwe versie van de C#) programmeer taal aangekondigd. Inmiddels zijn we bij versie 6.0 van C# aangekomen (niet verwarren met de versienummers van het .NET framework). In vergelijking met eerdere versies bevat versie 6.0 maar weinig echte grote verbeteringen en Microsoft heeft vooral veel tijd in vNext en Roslyn gestoken. Verwacht dus geen nieuwe features die net zoveel impact hebben als Linq of Generics maar veelal verfijning van de taal C#.

Wat is er dan wel veranderd?

]]>

<![CDATA[Open source .NET!]]> https://webstack.nl/2014/11/open-source-net/ 2014-11-12T18:04:26.000Z 2014-11-24T10:07:52.000Z 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


Bekijk hier de aankondiging van Scott Guthrie tijdens Visual Studio Connect();

]]>
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

]]>

<![CDATA[Visual Studio Community 2013, gratis en volledig]]> https://webstack.nl/2014/11/visual-studio-community-2013-gratis-en-volledig/ 2014-11-12T17:01:37.000Z 2014-11-24T10:08:16.000Z 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.


Bekijk hier de aankondiging van Scott Hanselman

]]>
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.

]]>

<![CDATA[AWS Frankfurt, beter voor de Nederlandse markt?]]> https://webstack.nl/2014/10/aws-frankfurt-beter-voor-de-nederlandse-markt/ 2014-10-25T08:05:29.000Z 2014-10-25T12:59:06.000Z Afgelopen maandag kondigde Amazon aan dat ze per direct Frankfurt als locatie hebben toegevoegd aan hun AWS infrastructuur. Tot voorheen was Ierland de enige PoP van AWS voor Europa en ook voor Afrika was Ierland het dichtst bijzijnde. Goed nieuws voor ons Europeanen dus die nu de keuzen hebben uit twee PoPś. Helemaal voor Nederland zou je denken omdat wij hemelsbreed maar 360km van Frankfurt verwijderd zijn in plaats van de 760km van Dublin (vanaf Amsterdam). Klinkt alsof we allemaal van Dublin naar Frankfurt moeten overstappen dus. Meten is weten en daarom een kleine benchmark welke AWS locatie nu het snelste is voor Nederland.

Ik heb voor de test een t2.medium instance in zowel Ierland als Frankfurt opgezet en als test locaties mijn 90/9mbit Ziggo verbinding en een DigitalOcean droplet gebruikt. Om de maximale snelheid van mijn DigitalOcean droplet te testen heb ik de LeaseWebś filemirror gebruikt. Overigens heeft zowel Ziggo als DigitalOcean peering met Amazon op de AMSIX. De verbindingen van Ierland en Frankfurt maken beiden gebruik van deze peering.

Ping tijden:

1
2
3
4
| | Ierland | Frankfurt |
|--------- |---------- |----------- |
| Ziggo | 31.672ms | 33.036ms |
| DO AMS3 | 21.626ms | 18.206ms |

Speedtest:

1
2
3
4
| | Ierland | Frankfurt | LeaseWeb mirror |
|---------|-----------|-----------|-----------------|
| Ziggo | 9.9MB/s | 9.8MB/s | 10.1MB/s |
| DO AMS3 | 49.28MB/s | 43.23MB/s | 103.1MB/s |

`
Traceroute (hops):

1
2
3
4
| | Ierland | Frankfurt |
|---------|---------|-----------|
| Ziggo | 10 hops | 11 hops |
| DO AMS3 | 10 hops | 11 hops |

Uit deze snelle benchmark kan je concluderen dat de nieuwe locatie van AWS in Frnankfurt de verwachtingen niet kan waar maken. Waar je zou verwachten dat deze juist sneller is voor Nederland ziet het er uit dat Frankfurt toch langzamer is dan Ierland. Frankfurt zal dus meer een voordeel opleveren voor Oost Europa dan voor Nederland.

]]>
Afgelopen maandag kondigde Amazon aan dat ze per direct Frankfurt als locatie hebben toegevoegd aan hun AWS infrastructuur. Tot voorheen was Ierland de enige PoP van AWS voor Europa en ook voor Afrika was Ierland het dichtst bijzijnde. Goed nieuws voor ons Europeanen dus die nu de keuzen hebben uit twee PoPś. Helemaal voor Nederland zou je denken omdat wij hemelsbreed maar 360km van Frankfurt verwijderd zijn in plaats van de 760km van Dublin (vanaf Amsterdam). Klinkt alsof we allemaal van Dublin naar Frankfurt moeten overstappen dus. Meten is weten en daarom een kleine benchmark welke AWS locatie nu het snelste is voor Nederland.

]]>
<![CDATA[ASP.NET vNext community standup]]> https://webstack.nl/2014/09/asp-net-vnext-community-standup/ 2014-09-25T15:54:31.000Z 2014-09-25T19:20:02.000Z Het werk aan ASP.NET vNext denderd maar door! Het ASP.NET team is tegenwoordig erg druk mee gezien de grote veranderingen en de snelle release cycle. Een van de opvallende punten van vNext is dat het opensource beschikbaar is op Github, hier was ook al snel de eerste Alpha te vinden. Door het opensource maken van vNext wil Microsoft de community al in een vroeg stadium betrekken bij dit project. Onder andere Scott Hanselman communiceerd veel naar de community toe. Een van de dingen die hij hier voor doet is de weekelijkse ASP.NET vNext Community Standup! Deze online standup is iedere dinsdag om 19:15 (NL tijd) live te bekijken via YouTube

Zie onderstaande YouTube playlist voor de afgelopen standups

]]>
Het werk aan ASP.NET vNext denderd maar door! Het ASP.NET team is tegenwoordig erg druk mee gezien de grote veranderingen en de snelle release cycle. Een van de opvallende punten van vNext is dat het opensource beschikbaar is op Github, hier was ook al snel de eerste Alpha te vinden. Door het opensource maken van vNext wil Microsoft de community al in een vroeg stadium betrekken bij dit project. Onder andere Scott Hanselman communiceerd veel naar de community toe. Een van de dingen die hij hier voor doet is de weekelijkse ASP.NET vNext Community Standup! Deze online standup is iedere dinsdag om 19:15 (NL tijd) live te bekijken via YouTube

Zie onderstaande YouTube playlist voor de afgelopen standups
]]>

<![CDATA[ASP.NET vNext, K KRE KPM KVM, wat is het allemaal?]]> https://webstack.nl/2014/08/asp-net-vnext-k-kre-kpm-kvm-wat-het-allemaal/ 2014-08-28T05:14:13.000Z 2014-09-19T13:53:46.000Z Nu ASP.NET vNext steeds meer vorm begint te krijgen, zelfs onder Linux, is er soms wat onduidelijkheid over alle K* applicaties, zie hier een uitleg over welke commando precies wat doet.

KVM (K Version Manager)

Als je net ASP.NET vNext hebt geinstalleerd begin je met kvm. Kvm zorgt ervoor dat er een runtime versie geinstalleerd wordt en hiermee kan je ook de verschillende runtimes (mocht je die hebben) managen. Ook is het mogelijk om naar een andere versie switchen. Zie https://github.com/aspnet/Home/wiki/version-manager voor meer info.

KRE (K Runtime Engine)

KRE is de bootstrapper voor vNext, deze zorgt er voor dat alles wat je nodig hebt om een vNext applicatie te draaien wordt geladen. Ook van KRE kan je verschillende versie hebben en deze kan je ook met het KRE commando managen.

KLR (K Language Runtime)

KLR is binnen ASP.NET vNext verantwoordelijk voor het aanroepen van de CLR Native Host als vNext in een self hosted enviroment wordt gedraaid (dus niet in IIS bijvoorbeeld) Zie https://github.com/aspnet/Home/wiki/KRuntime-structure voor meer info

KPM (K Package Manager)

KPM is verantwoordelijk voor het restoren en installeren van de Packages uit de NuGet repositories. Alles wat met de packages te maken heeft gebeurd via KPM.Zie https://github.com/aspnet/Home/wiki/Package-Manager voor meer informatie

K

Als je een vNext applicatie wilt draaien gebruik je k run. Voor meer informatie zie https://github.com/aspnet/Home/wiki/Command-Line . Eventueel kan er in het project.json bestand nog andere commando’s worden opgegeven

]]>
Nu <![CDATA[ASP.NET vNext draaien onder Linux / Debian]]> https://webstack.nl/2014/08/asp-net-vnext-draaien-onder-linux-debian/ 2014-08-26T08:57:54.000Z 2014-09-19T12:52:48.000Z Eerder heb ik al een uitleg gegeven over wat ASP.NET vNext precies is. Nu beloofd Microsoft goede cross platform compatibiliteit, met Windows, Linux en OS X en was ik benieuwd hoe goed dit nu eigenlijk werkt op Linux. Ik heb hiervoor een Debian Wheezy installatie gebruikt welke ik heb geupgrade naar Debian Sid, of tewel Debian testing.


Commando’s die beginnen met een # dienen uitgevoerd te worden als root of met sudo en commando’s die beginnen met $ dienen als een normale users uitgevoerd te worden

Upgrade /etc/apt/sources.list naar Sid door alles te vervangen met het volgende:

1
2
deb http://ftp.nl.debian.org/debian unstable main contrib non-free
deb-src http://ftp.nl.debian.org/debian unstable main contrib non-free

Voer daarna de upgrade uit met:

1
#apt-get update && apt-get dist-upgrade

Installeer wat benodigd heden die we later nodig hebben:

1
#apt-get install sudo unzip curl autoconf libtool gettext build-essential git

Installeer Mono 3.6.0 vanuit de repository van Xamarin

1
2
3
4
5
#wget http://download.mono-project.com/repo/xamarin.gpg
#apt-key add xamarin.gpg
#echo "deb http://download.mono-project.com/repo/debian wheezy main" &gt; /etc/apt/sources.list.d/mono-xamarin.list
#apt-get install mono-complete

Om ASP.NET vNext te draaien heb je minstens Mono 3.6.1 nodig, echte zit deze nu nog niet in de repository dus moeten we Mono van source compilen. Als je Mono wilt compilen heb je Mono zelf nodig dus daarom hebben we die net eerst geinstalleerd.

1
2
3
4
5
#git clone git://github.com/mono/mono.git
#cd mono
#./autogen.sh --prefix=/usr/local
#make
#make install

Als het goed is dan is nu de laatste versie van Mono geinstallerd, dit kan je controleren door mono -V in te typen

Standaard worden er geen certificaten ondersteund in Mono, deze dienen we dus te gaan installeren:

1
2
3
4
5
#certmgr -ssl -m https://go.microsoft.com<
#certmgr -ssl -m https://nugetgallery.blob.core.windows.net
#certmgr -ssl -m https://nuget.org
#certmgr -ssl -m https://www.myget.org
$mozroots --import --sync

Nu gaan we ASP.NET vNext installeren, omdat ASP.NET vNext nog in Alpha/Beta fase is willen we graag de laatste versie (alpha4 op dit moment)

1
$sudo curl https://raw.githubusercontent.com/aspnet/Home/dev/kvminstall.sh | sh && source ~/.kre/kvm/kvm.sh

Als je toch liever een meer stabiele versie wilt kan je de master branch (alpha3 op dit moment) installeren met het volgende commando

1
$sudo curl https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.sh | sh && source~/.kre/kvm/kvm.sh

ASP.NET vNext is nu geinstalleerd en we gaan met de K Package Manager (kpm) de laatste packages ophalen.

1
$kvm upgrade

In principe kan je nu gewoon een ASP.NET project aanmaken zoals bijvoorbeeld hier beschreven staat.

Maar we gaan nog een stapje verder, er is namelijk een tool genaamd Yeoman welke het mogelijk maakt om eenvoudig project templates aan te maken. Voor Yeoman is wel Node.js nodig dus deze gaan we ook installeren

1
2
3
#curl -sL https://deb.nodesource.com/setup | bash -
#apt-get install nodejs
#npm install -g yo

Yeoman is nu geinstalleerd en we installeren het template voor vNext

1
#npm install -g generator-aspnet

Yeoman is nu geinstalleerd met de vNext project templates.

Omdat httpapi.dll en Kestrel nog geen native builds voor Linux hebben kunnen we van deze templates alleen de Consoleapplication draaien.

Start nu Yeoman op met yo en kies de Console Application template


Het kan zijn dat er wat error’s komen bij een kpm restore omdat kpm de NuGet.config nog niet helemaal goed kan lezen onder Linux, dit kan je oplossen door het volgende commando te draaien

1
$kpm restore -s https://www.myget.org/F/aspnetmaster/ -f https://nuget.org/api/v2/

Ga nu naar de ConsoleApplication map die zojuist is aangemaakt en type

1
$k run

ASP.NET vNext zal nu het project.json project bestand lezen en alle dependencies inladen en doormiddel van de RyuJIT Program.cs draaien

Als je nu bijvoorbeeld de volgende regel aan je Program.cs toevoegt zal je zien dat het ook echt onder Linux draait

1
Console.WriteLine(string.Format("Currently running {0}", Environment.OSVersion));


Conclusie van ASP.NET vNext, het heeft erg veel potentie maar het is nog wel in alpha fase, verwacht dus dat er een hoop dingen nog niet werken.

Just-In-Time compiling van .NET onder Linux, wie had dat ooit geacht, ik niet in ieder geval!

]]> Eerder heb ik al een uitleg gegeven over wat ASP.NET vNext precies is. Nu beloofd Microsoft goede cross platform compatibiliteit, met Windows, Linux en OS X en was ik benieuwd hoe goed dit nu eigenlijk werkt op Linux. Ik heb hiervoor een Debian Wheezy installatie gebruikt welke ik heb geupgrade naar Debian Sid, of tewel Debian testing.

]]>

<![CDATA[ASP.NET vNext, wat is het en wat doet het?]]> https://webstack.nl/2014/08/asp-net-vnext-wat-is-het-en-wat-doet-het/ 2014-08-24T10:29:27.000Z 2014-09-19T13:54:44.000Z ASP.NET vNext, het klinkt heel mooi maar wat is het precies en wat doet het? Een paar jaar geleden is Microsoft en met name het ASP.NET en Web Tools team een andere weg ingeslagen, ze zijn zich namelijk steeds meer gaan focussen op meer openheid binnen het .NET Framework. Ze doen dit door code opensource te maken, meer betrokkenheid met de community te creëren en door ASP.NET meer los te trekken van het hele framework wat helemaal geïntegreerd in Windows zit.

Afgelopen April heeft Microsoft tijdens Build 2014 al een hoop nieuwe dingen aangekondigd, onder andere .NET Native compiler, het Roslyn platform en een nieuwe JIT (Just-In-Time compiler) genaamd RyuJIT. Als je meer over Build 2014 wil weten dan kan je dat hier lezen.

In de tussentijd heeft Microsoft absoluut niet stilgezeten en zijn ze met ASP.NET vNext op de proppen gekomen.

Oké leuk, maar wat is vNext precies?

ASP.NET vNext is kort samen gevat:

  • Side by Side, je kan de .NET runtime samen met je applicatie deployen
  • Alles is in NuGet repositories te vinden, zelfs core .NET functionaliteit en de .NET runtime. Geen lastige project files meer maar simpele JSON bestanden
  • Cloud en server geoptimaliseerd
  • ASP.NET MVC en API zijn eindelijk samengevoegd
  • Dependency injection standaard beschikbaar
  • Alles is opensource gemaakt, zie github.com/aspnet/Home
  • Niet meer afhankelijk van het gehele .NET Framework voor updates
  • Alles naar het OWIN model
  • .NET op meerder platformen draaien met Xamarin’s Mono

Zie hier een korte 4 minuten uitleg van SSW TV over ASP.NET vNext

]]>
ASP.NET vNext, het klinkt heel mooi maar wat is het precies en wat doet het? Een paar jaar geleden is Microsoft en met name het ASP.NET en Web Tools team een andere weg ingeslagen, ze zijn zich namelijk steeds meer gaan focussen op meer openheid binnen het .NET Framework. Ze doen dit door code opensource te maken, meer betrokkenheid met de community te creëren en door ASP.NET meer los te trekken van het hele framework wat helemaal geïntegreerd in Windows zit.

Afgelopen April heeft Microsoft tijdens Build 2014 al een hoop nieuwe dingen aangekondigd, onder andere .NET Native compiler, het Roslyn platform en een nieuwe JIT (Just-In-Time compiler) genaamd RyuJIT. Als je meer over Build 2014 wil weten dan kan je dat hier lezen.

In de tussentijd heeft Microsoft absoluut niet stilgezeten en zijn ze met ASP.NET vNext op de proppen gekomen.

Oké leuk, maar wat is vNext precies?

]]>
<![CDATA[WhatsApp-Forward, eenvoudig WhatsApp berichten doorsturen]]> https://webstack.nl/2014/05/whatsapp-doorsturen/ 2014-05-10T10:39:45.000Z 2014-09-19T13:57:33.000Z 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.


Wat wordt er nu ondersteund

  • WhatsApp doorsturen naar een andere telefoon
  • Reageren op berichten
  • Groepen opvragen
  • Reageren in die groepen
    Wat komt er in de toekomst in

  • Betere groepen ondersteuning

  • Media berichten doorsturen
  • Online/offline status bewerken
    Let wel op de volgende dingen

  • Je WhatsApp account werkt nog maar via deze applicatie, indien je weer gebruik wil maken van de officiele WhatsApp app dan moet het telefoon nummer weer geactiveerd worden en dan zal deze applicatie niet meer werken

  • De applicatie stuurt alleen berichten door als deze actief is
  • De applicatie werkt niet met proxy servers
  • Er zit geen garantie op en ik ben ook niet verantwoordelijk voor enige schade aan het WhatsApp account
    De source code van de alpha versie is hier op Github te vinden

Telefoon nummer, wachtwoord, naam en doorstuur nummer dient te worden ingesteld in de config file

Voorbeeld:

1
2
3
4
<add key="phonenumber" value="31612345678" />
<add key="password" value="password" />
<add key="displayname" value="whatsapp" />
<add key="forward" value="31600000000@s.whatsapp.net" />

Je gebruikers naam is je telefoon nummer zonder + of 0 maar met landcode. Het wachtwoord kan worden achterhaald door een nieuw account aan te maken via https://github.com/perezdidac/WhatsAPINet ‘s WhatsAppPort

Je kan berichten terugsturen vanaf het telefoon nummer dat het doorgestuurde bericht heeft ontvangen bij door een bericht terug te sturen met !#(whatsapp account naam (31512345678@s.whatsapp.net) bericht

Voorbeeld: !#31612345678@s.whatsapp.net test

]]>
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.

]]>

<![CDATA[Razor View Engine in Nancy]]> https://webstack.nl/2014/05/razor-view-engine-in-nancy/ 2014-05-06T18:51:45.000Z 2014-11-24T10:07:58.000Z 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.


Nu de installatie, eigenlijk is het heel erg simpel, een enkel Nuget commando is genoeg om Nancy de Razor Views te laten renderen.

  • Open de Nuget package manager console in Visual Studio
  • Voor het commando Install-Package Nancy.ViewEngines.Razor uit

Als je ook wilt dat de solution zowel binnen Visual Studio als in Heroku (of Mono xbuild) gecompileerd kan worden dient er wel een kleine wijziging in het csproject bestand gemaakt te worden. Nancy Razor voegt namelijk een post-build actie toe om het debuggen mogelijk te maken. Vervang het toegevoegd post-build statement met deze code . Let wel op de build nummers deze dienen te worden vervangen met de versie die door Nuget is geinstalleerd.

Ik heb op Github een voorbeeld solution staan welke zowel binnen Visual Studio 2013 als via Heroku gecompileerd kan worden.

]]>
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.

]]>

<![CDATA[Het Nancy webframework hosten op Heroku dankzij Owin]]> https://webstack.nl/2014/04/het-nancy-webframework-hosten-op-heroku-dankzij-owin/ 2014-04-29T19:45:29.000Z 2014-11-24T10:16:44.000Z 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.

]]>
Eerder berichte i]]>
<![CDATA[Self-hosted SignalR met Owin]]> https://webstack.nl/2014/04/self-hosted-signalr-met-owin/ 2014-04-23T20:51:52.000Z 2014-09-19T18:26:25.000Z 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?

Bekijk dan deze goede talk over Owin, Katana en Helios:

Ook geinteresseerd in SignalR?

Ben je benieuwd hoe je snel Owin en Signalr kan combineren? Op de asp.net site staat een tutorial over hoe simpel het is om deze twee te combineren en hier mee zeer simpel een realtime applicatie neer te kunnen zetten zonder IIS.

]]> 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?

]]>
<![CDATA[Microsoft Build 2014, de korte versie]]> https://webstack.nl/2014/04/microsoft-build-2014-de-korte-versie/ 2014-04-10T07:47:29.000Z 2014-09-19T18:27:55.000Z Nieuwsgierig wat er allemaal op Microsoft’s Build 2014 conferentie gebeurd is? Bekijk dan hier de 7 minuten samenvatting van de keynote gemaakt door The Verge

]]>
Nieuwsgierig wat er allemaal op Microsoft’s Build 2014 conferentie gebeurd is? Bekijk dan hier de 7 minuten samenvatting van de keynote gemaakt door The Verge

]]>

<![CDATA[Wat is de OpenSSL Heartbleed bug?]]> https://webstack.nl/2014/04/wat-is-de-openssl-heartbleed-bug/ 2014-04-09T10:08:59.000Z 2014-09-19T18:27:22.000Z De OpenSSL Heartbleed bug, het gehele internet is er sinds maandag al in rep en roer over. OpenSSL wordt door meer dan de helft van alle servers gebruikt en een bug hierin kan serieuze gevolgen hebben. Het blijkt nu dus dat deze bug al 2 jaar in de broncode van OpenSSLzat! Grote sites die OpenSSL gebruiken waren hierdoor al 2 jaar onveilig ,onder andere Yahoo was vatbaar voor misbruik van deze bug.

Nieuwsgierig of je eigen site vatbaar is? Bekijk het hier

Maar wat werkt de Heartbleed bug? Tom Scott legt het in duidelijk taal uit

]]>
De OpenSSL Heartbleed bug, het gehele internet is er sinds maandag al in rep en roer over. OpenSSL wordt door meer dan de helft van alle servers gebruikt en een bug hierin kan serieuze gevolgen hebben. Het blijkt nu dus dat deze bug al 2 jaar in de broncode van OpenSSLzat! Grote sites die OpenSSL gebruiken waren hierdoor al 2 jaar onveilig ,onder andere Yahoo was vatbaar voor misbruik van deze bug.

Nieuwsgierig of je eigen site vatbaar is? Bekijk het hier

]]>