.NET Developer Conference 2012 – ein Rückblick

Tuesday, May 15, 2012 6:56:13 PM (Mitteleuropäische Sommerzeit, UTC+02:00)

Genau wie im letzten Jahr fand die .NET Developer Conference in der Meistersingerhalle in Nürnberg statt. Die Konferenz wird von der Neuen Mediengesellschaft Ulm veranstaltet, die auch Herausgeber der Entwicklerzeitschrift dotnetpro ist. Im letzten Jahr konnte die Veranstaltung die Meistersingerhalle noch nicht ganz ausfüllen, in diesem Jahr waren deutlich mehr Besucher da.
Die Vortragsräume waren oft bis auf den letzten Platz gefüllt und das Catering hatte das ein oder andere Mal Probleme, dem Ansturm hungriger Entwickler standzuhalten.

DDC-Tasse Diese Tasse bekam jeder Besucher bei der Begrüßung.

C64 – Basic. Das nächste “große Ding” nach JavaScript?


Erfreulicherweise gab es in diesem Jahr einige Verbesserungen. Zum Beispiel stand in jedem Raum ein W-Lan Repeater, die einen stabilen Internetzugang ermöglichten, so dass die Social-Media Angebote des Veranstalters genutzt werden konnten. Im Gegensatz zur Basta! Spring, die ich Ende Februar besuchte, wurde bei dieser Konferenz kräftig getwittert.
Die Konferenz deckte ein breites Themenspektrum ab, die vier Tracks waren Sprachen, Architektur, Datenzugriff und Soft Skills.
Die Pausen zwischen den Vorträgen waren ausreichend und man hatte genügend Gelegenheit fürs Networking und für den Besuch der Sponsoren. Leider gab es nur 3 Aussteller, die vor Ort waren.

DDC-Essen Hamburger, Hot Dogs zum selber bauen und reichlich fränkisches Bier gab es bei der so genannten Open Night am Ende des ersten Tages.


Meine größte Kritik bei der DDC 2012 betrifft die Agenda. Es ist mir insgesamt drei Mal passiert, dass ich in einem Vortrag saß, der für absolute Einsteiger ausgelegt war. Zum Beispiel gab es einen Vortrag, in dem erklärt wurde, dass es in JavaScript Schleifen und Variablen gibt. In diesem Vortrag habe ich zum Beispiel auch “gelernt”, dass man JavaScript sogar in ASP.NET einsetzten kann.
Ich habe nichts gegen solche Low-Level Vorträge, ganz im Gegenteil, jedoch sollte das Level in der Agenda angegeben werden, wenn sich das Niveau der Vorträge so stark unterscheidet wie auf dieser Konferenz, denn es gab auch Vorträge die deutlich anspruchsvoller waren. Mit dieser Meinung war ich nicht allein, wie ich in einigen Gesprächen mit anderen Entwicklern erfahren habe.

Alles in allem war die .NET Developer Conference 2012 eine gelungene Konferenz zu einem fairen Preis.

Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war,
bitte "kicken" sie ihn.

Kick it on dotnet-kicks.de


Microsoft Virtual Academy – stillt Wissensdurst und Deinen Hunger!

Saturday, March 31, 2012 2:25:04 PM (Mitteleuropäische Sommerzeit, UTC+02:00)

Nur für kurze Zeit: Registriert euch kostenlos in der Microsoft Virtual Academy und sichert euch einen EUR 5,00 Gutschein bei Lieferando für den Hunger zwischendurch!

mvaDie Microsoft Virtual Academy ist eine vollständig kostenfreie Lernumgebung, deren Schwerpunkt auf Microsofts Cloud-Technologien liegt. Seit Anfang des Jahres wird das Schulungsangebot konsequent auch um vollständig deutsche Kurse ausgebaut.

LieferandoWie ihr euren EUR 5,00 Gutschein bei Lieferando erhaltet erfahrt ihr hier – am besten noch heute kostenlos anmelden!

Alle die jetzt hungrig geworden sind, können natürlich auch direkt beim Lieferando Lieferservice vorbei schauen. Guten Appetit!

Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war,
bitte "kicken" sie ihn.

Kick it on dotnet-kicks.de


Verbindungsprobleme beim Datenbankzugriff zwischen Windows Azure und SQL Azure

Saturday, January 28, 2012 8:26:02 AM (Mitteleuropäische Zeit, UTC+01:00)

Sql-AzureBei einer Webanwendung, dich gerade in ASP.NET entwickle, bin ich vor kurzem auf eine große Anzahl von Verbindungsproblemen zwischen Windows Azure (IIS) und SQL Azure gestoßen.

Die Webseite nutzt Windows Azure, AppFabric-Cache und SQL Azure. Alles lag im Rechenzentrum West-Europa.

Wie haben sich die Probleme geäußert und wann sind sie aufgetreten?

Beim Datenbankzugriff mit dem Entity Framework gab es folgende Exceptions:

  • Invalid attempt to read when no data is present.
  • The underlying provider failed on Open.
  • Calling 'Read' when the data reader is closed is not a valid operation.
  • An error occurred while reading from the store provider's data reader.
  • A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
  • A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.)

Die Fehler sind sind aufgetreten, sobald die Webseite etwas stärker belastet wurde. Dies geschah immer dann, wenn die Webseite durch einen Bot (z.B. Google oder Bing) gecrawlt wurde. Eigentlich sollten solche geringen Lastschwankungen Windows Azure bzw. SQL Azure nicht weiter beeindrucken - dachte ich.

Mein erster Versuch die Fehler zu beheben, war die Größe der VM Instanz zu erhöhen. Leider brachte dies keine Besserung.
An meinem Code konnten diese Fehler nicht liegen, da die Webseite vor dem Umzug zu Azure schon einige Monate auf meinem eigenen Server fehlerfrei lief.
Ich schilderte diese Probleme dem Azure Support und war von der Antwort sehr überrascht. Der Support wusste von dem Problem und hatte auch einen Namen dafür parat: “Transient Conditions”. Ich wurde auf einen Artikel vom “Windows Azure Customer Advisory Team” hingewiesen, in dem folgendes zu lesen ist:

The database connections may also be dropped due to the variety of reasons related to network connectivity between the client and distant Microsoft data centers: quality of network, intermittent network faults in the client’s LAN or WAN infrastructure and other transient technical reasons.

Als Lösung wird der Einsatz des so genannten Transient Fault Handling Framework vorgeschlagen, das im wesentlichen nichts weiter macht, als den Datenbankzugriff zu überwachen. Im Fehlerfall wird der Datenbankzugriff einfach erneut versucht.

Ich habe mich aus mehreren Gründen gegen den Einsatz dieses Frameworks entschieden:

  • das Framework ist riesengroß und hat einige Abhängigkeiten
  • es ist schlecht dokumentiert
  • ich sehe nicht ein, Infrastruktur-Fehler im Code auszugleichen, wodurch die Ladegeschwindigkeit der Webseite sinken würde

Gerade zum letzten Punkt, der Performance, habe ich einige Versuche gemacht.
30 bis 50 Versuche um Daten zu lesen waren im Fehlerfall keine Seltenheit und das, obwohl Datenbank und IIS im selben Azure – Rechenzentrum (West-Europa) lagen. Die Performance der Webseite würde mit dieser Strategie deutlich in die Knie gehen.

Als nächstes habe ich versucht herauszufinden, ob man die Verbindungsprobleme nicht anders in den Griff bekommen kann.
Ich habe die Webseite wieder auf meinem eigenen Webserver gelegt, aber die Datenbank bei Azure gelassen, schon waren die Fehler weg!

Auch wenn die Webseite im Rechenzentrum Europa Nord liegt und die Datenbank in Europa West, gibt es keine Probleme. In dieser Konstellation läuft die Webseite jetzt einen Monat fehlerfrei.

Bin ich mit meinen Erfahrungen ein Einzelfall (Ich habe ja öfter mal Pech mit Server-Hardware), oder hat Microsoft hier noch massive Probleme?

Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war,
bitte "kicken" sie ihn.

Kick it on dotnet-kicks.de


Windows Azure, ASP.NET Webforms 4.0 und System.Web.Routing, 404 vorprogrammiert

Monday, December 19, 2011 12:36:45 AM (Mitteleuropäische Zeit, UTC+01:00)

Azure 404Vor gut einer Woche habe ich mich dazu durchgerungen, meine ersten Gehversuche in der Microsoft Wolke zu wagen.
Es ging um die Portierung einer mittelgroßen ASP.NET 4.0 (Webforms) App zu Windows Azure. Der erste Schritt was das Umziehen der Datenbank zu SqlAzure, was sehr unproblematisch war. Die einzige Änderung, die ich an der Datenbank machen musste, war das Anlegen von Clustered Indexes auf Zuordnungstabellen. Diese sind notwendig, weil die Datenbank bei SqlAzure repliziert wird. Mehr dazu hier: http://blogs.msdn.com/b/sqlazure/archive/2010/05/12/10011257.aspx

Die eigentliche Webseite hatte ich vorerst auf meinem eigenen Server gelassen und die Datenbank lief in der Cloud. Von dieser Kombination hatte ich mir eine schlechte Performance erwartet, da für jede Datenbankabfrage ein Round Trip von Berlin nach Amsterdam notwendig war. Jedoch konnte ich keine zusätzliche Verzögerung messen.

Jetzt hatte ich genug Zeit, um auch die Webseite zu Windows Azure zu bringen. Die brauchte ich auch. Der einfache Weg, den man in vielen Webcasts sehen kann, lief wie geschmiert:

  • Hinzufügen eines Windows Azure Projects zur Solution
  • 2, 3 Settings anpassen
  • Publish im Windows Azure Projects klicken
  • Kaffee holen weil Windows Azure die VM’s einrichtet und hochfährt, dies dauert ca. 10 Minuten

Schön, die Webseite war online und die Freude war groß. Leider währte dieses Erfolgserlebnis nur kurz. Genauer gesagt, bis ich den ersten Link auf der Webseite klickte und ich feststellen musste das das ASP.NET Routing nicht funktionierte.
Jede geroutete URL lieferte ein „404 – File not found“ zurück.
Die Fehlersuche begann im IIS, der auf der VM in Windows Azure lief. In meiner App konnte kein Fehler sein, da sie schon ein paar Monate fehlerfrei auf meinem eigenen Server lief. Die Einstellungen im IIS waren alle sauber. Das Rätselraten begann.

Wenn kann man an Wochenende um Rat fragen?

Leider ist die Azure - Community in Deutschland praktisch nicht vorhanden, nur ein Blogger schlägt sich tapfer und veröffentlicht regelmäßig Artikel rund um Windows Azure: Sascha Dittmann.
Bei einem Telefonat mit ihm erfuhr ich, dass die Azure VM’s per default nicht mit Windows Server 2008 R2 laufen, sondern mit Windows Server 2008!
Warum das so ist, kann ich nicht nachvollziehen. Bei der Datenbank setzt Microsoft schon auf Denali und in der Azure Management App können sogar schon CTP Features des nächsten SQL Servers genutzt werden.

Es ist möglich, vor der Instanziierung einer VM das OS zu bestimmen und den Windows Server 2008 R2 auszuwählen:

  • ServiceConfiguration.Local.cscfg bzw. in der ServiceConfiguration.Cloud.cscfg öffnen
  • Im Tag ServiceConfiguration folgende Attribute ändern/hinzufügen: osFamily="2"

Gesagt – getan, schon lief mein Routing.

Tja, da fehlte wohl irgendein Patch in der Windows Azure - Windows Server 2008 Installation, der in der R2 Version vorhanden ist.

Hier noch mal eine kurze Zusammenfassung:

Per default bekommt man in Windows Azure nur eine Windows Server 2008 Installation. Mit dieser kann man das Routing in ASP.NET 4.0 Webforms nicht nutzen, es hagelt 404’er.
Abhilfe schafft die Auswahl des Windows Servers R2.

Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war,
bitte "kicken" sie ihn.

Kick it on dotnet-kicks.de


Ticket für die GUI & Design Konferenz: Der Gewinner wurde ermittelt!

Wednesday, November 16, 2011 5:40:56 PM (Mitteleuropäische Zeit, UTC+01:00)

Der Gewinner wurde ausgelost, gewonnen hat Howard Schmäu!

Lieber Howard Schmäu bitte schicke deinen vollen Namen so wie deine E-Mail-Adresse an info[ät]jan-welker.de
Mit deinem Einverständnis gebe ich deine Daten an den Veranstalter der Konferenz (PPEDV) weiter.

Herzlichen Glückwunsch und viel Spaß auf der Konferenz!

Du hast nicht gewonnen?

Mit dem Promocode „GUI_dotnet-forum2011” kannst du dich noch bis zum 30.11.2011 anmelden und 100€ sparen!

Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war,
bitte "kicken" sie ihn.

Kick it on dotnet-kicks.de


Ticket für die GUI&Design am 8. und 9. Dezember 2011 in Fürth/Nürnberg zu gewinnen

Sunday, November 13, 2011 10:35:58 PM (Mitteleuropäische Zeit, UTC+01:00)

Moderne Software wird immer komplexer. Gleichzeitig muss sie leicht erlernbar, effizient, gut designt und manchmal sogar „sexy“ sein.

Eine Gratwanderung für jeden Software-Entwickler und -Designer.
Auf der GUI&Design am 8. und 9. Dezember 2011 in Fürth/Nürnberg wird dir geholfen!
Denn hier präsentieren Branchenexperten DIE Trends rund um die Software der Zukunft auf Basis von Microsoft-Technologien.

Gui-Banner468x60

Du möchtest dabei sein?

Mit dem Promocode „GUI_dotnet-forum2011” kannst du dich bis 30.11. anmelden und 100€ sparen (799 EUR statt 899 EUR)!

Infos und Anmeldung unter http://www.gui-design.ppedv.de.

Gewinnspiel

Wer ein Ticket gewinnen möchte, hinterlässt einfach einen kleinen Kommentar zu diesem Blogpost und schreibt warum er unbedingt dabei sein muss.
Den Gewinner werde ich am Mittwoch (16.11.2011) auslosen und hier bekannt geben.
Bitte beteiligt euch nur dann am Gewinnspiel, wenn ihr auch wirklich am 8. und 9. Dezember nach Nürnberg bzw. nach Fürth kommen könnt.

Der Rechtsweg ist ausgeschlossen.

Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war,
bitte "kicken" sie ihn.

Kick it on dotnet-kicks.de


Geiler Trailer, geile App, geile Community!

Monday, August 22, 2011 10:29:16 PM (Mitteleuropäische Sommerzeit, UTC+02:00)

An einem Freitag dem 13. März 2009 erblickte die deutsche Version von dotnet-kicks.de das Licht der Welt. Die erfolgreiche Entwicklung dieser Community zeigt uns, dass dieses Geburtsdatum kein Unglück gebracht hat.
Ganz im Gegenteil: dotnet-kicks.de hat sich inzwischen fest in der .NET Community etabliert.
Der dotnet-kicks.de – Button wurde von unzähligen Bloggern und Webmastern eingebunden, darunter befinden sich auch einige prominente Seiten wie zum Beispiel die MSDN oder die Webseite der dotnetpro.
Es hat sich ein fester Besucherstamm gebildet, der täglich auf dotnet-kicks.de vorbei schaut, wie im Spy zu sehen ist.
Klaus und Gordon haben von Anfang an entscheidend bei  der Entwicklung und beim Aufbau der Community beigetragen. Man denke nur an die mutige Postkartenaktion von Gordon.
Klaus hat ebenfalls viel Freizeit für die Entwicklung und die Behebung kleinerer Fehler geopfert.
Vielen Dank an euch beide!
Bei unserer neuesten Aktion hat Gordon erneut gezeigt, dass er nicht nur hervorragend coden kann, sondern, dass er nebenbei noch ein ausgezeichneter Mediengestalter ist. Wie das folgende Video zeigt:

Nach dem Gordon schon die ein oder andere App im Windows Phone Marketplace hat, hat er jetzt auch eine App für dotnet-kicks.de geschrieben.
Ich habe diese App von Anfang an mit getestet und kann nur sagen: Installationsbefehl!
Für so eine App braucht es natürlich auch eine API, diese habe ich vor kurzem entwickelt und möchte euch diese auch nicht vorenthalten. Wer die API ernsthaft nutzen möchte, kann mich gern nach der URL und einem API Key fragen Smiley

Es gibt Gerüchte, die behaupten, dass Gordon demnächst eine Webcastserie veröffentlichen wird, die zeigt, wie die größten Hürden bei der Entwicklung der App überwunden wurden. Schaut doch einfach demnächst öfter auf seinem Blog vorbei.

Das wichtigste habe ich mir für den Schluss aufgehoben, der Download-Link für die kostenlose dotnet-kicks.de - App:

Download für Windows Phone


Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war,
bitte "kicken" sie ihn.

Kick it on dotnet-kicks.de


Das war die .NET DevCon 2011

Tuesday, June 07, 2011 10:49:16 PM (Mitteleuropäische Sommerzeit, UTC+02:00)

dotnet-devconDie .NET DevCon 2011 fand am 6. Und 7. Juni in Nürnberg statt. Der Veranstalter war die Neue Mediengesellschaft Ulm mbH, die unter anderem Herausgeber der .NET Fachzeitschrift dotnetpro ist. Von der Neuen Mediengesellschaft Ulm gab es bis jetzt nur die Prio Konferenz. Die Prio hat im Gegensatz zur DevCon einen Themenschwerpunt, wie zum Beispiel verteilte Architektur oder Cross Plattform Development.
Bei der DevCon waren die Themen bunt gemischt. Es gab zum Beispiel Vorträge aus dem Bereich Architektur, Soft Skills, SharePoint, Codequalität, Visual Studio oder GUI.
Was komplett fehlte, waren Themen aus den Bereichen Webentwicklung und Mobile Development. Dafür gibt es zwei eigene Konferenzen, die Web DevCon, welche im Oktober in Hamburg stattfinden wird und die Mobile DevCon, die nur einen Tag dauert und in drei verschiedenen Städten stattfindet.

Zurück zur DevCon 2011 und meinen Eindrücken von der Konferenz:

Erster Tag

Die Konferenz begann für mich mit einem Vortrag von Thomas Mentzel, er sprach über Design Patterns.
Jeder der hin und wieder seinen Blog liest, weiß, dass Patterns sein Steckenpferd sind. Er zeigte anhand eines gemauerten Torbogens, dass es Patterns schon vor 2000 Jahren gab und dass diese sich bis heute weiterentwickelt haben. Die Kernaussage seines Vortrages war, dass man nicht nur Patterns kennen und anwenden sollte, sondern dass Patterns auch ständig weiterentwickelt werden müssen, in dem zum Beispiel neue Sprachfeatures genutzt werden.

Constantin Klein, besser bekannt unter dem Namen Kostja, brachte Licht ins Dunkle in Sachen SQL Server Versionen. Er stelle alle Versionen vor und besprach die Unterschiede. Am meisten waren Infos zur Compact Edition gefragt, die erst seit der .NET Version 4 in ASP.NET Webseiten eingesetzt werden kann. Ein sehr gelungener Vortrag! Leider war er nicht gut besucht.

Am Abend des ersten Tages sprach Golo Roden über FogBugs & Kiln, eine verteilte Source-Code-Verwaltung mit einem schicken Webinterface. Die Source-Code-Verwaltung basiert auf Mercurial.
Golo war der Meinung, dass FogBugs & Kiln eine gute Alternative zu einigen Features aus dem TFS sind. Golo ließ in seinem Vortrag kein gutes Haar am TFS, die Kritikpunkte waren unteranderem die Trägheit und die fehlende Offlinefähigkeit des TFS.
Interessant fand ich, dass das anwesende Publikum ihm zustimmte und das keiner Partei für den TFS ergriffen hat.

dotnet-open-night

Der erste Tag wurde mit einer Open Night beendet. Vor dem Essen referierte Faisal Jilani (Project Manager bei Microsoft aus Redmond) über die MSDN und das Hilfe System im Visual Studio.

Ab 21 Uhr gab es ein Coding Dojo vom Erfinder des Dojos: Ilker Cetinkaya.
21 Uhr fand ich etwas zu spät, so dass ich nicht teilgenommen habe.

Zweiter Tag

Den zweiten Tag begann ich mit dem Vortrag „Von der Idee zum Modell“ von Jan Fellien. Nach etwas Theorie zum Thema Modellierung zeigte er sehr anschaulich, dass viele Probleme im Softwareentwicklungsprozess vermieden werden können, wenn eine Dokumentation in Form eines Modells erstellt wird. Er demonstrierte,  wie ein solches Modell in kurzer Zeit und ohne großen Aufwand erstellt werden kann.

Der nächste Vortrag, auf den ich eingehen möchte, ist der Vortrag von Roland Weigelt. Ich wusste von Roland, dass er diesen Vortrag in den letzten Jahren schon mehrfach gehalten hatte und dass er den Vortrag bei jedem Mal weiter verfeinert hatte. Meine so geschürten hohen Erwartungen sollten nicht enttäuscht werden.
Der Vortrag richtete sich an Entwickler, die in der Regel nicht designen können. Das Ziel des Vortrages war es nicht, aus einem Bock einen Gärtner zu machen, sondern den Entwicklern zu zeigen, dass es nur ein kleiner Schritt ist, um aus einer grauenvollen GUI eine ansprechende und solide wirkende Benutzeroberfläche zu machen. Er nannte einige Regeln und Kochrezepte die sicher jeder nachvollziehen konnte.
Rolands Vortrag hatte mit über 300 Folien, meiner Meinung nach, die höchste Informationsdichte an diesem Tag. Er musste seinen Vortrag direkt nach dem leckeren und reichhaltigen Mittagessen halten. Bedingt durch das so genannte Suppenkoma hatte er leider nicht immer die volle Aufmerksamkeit aller Zuhörer.

roberto-bezIm Gegensatz zu Rolands Vortrag hatte Roberto Bez nur sehr wenige Zuhörer, was ich nicht ganz nachvollziehen kann.
Im Abstract wurde versprochen, dass er zeigt, wie die Razor View Engine aus ASP.NET MVC 3 auskoppelt und als leistungsfähige Template Engine zur Erzeugung von HTML-Dateien oder Reports eingesetzt werden kann.

Genau dies hat Roberto Schritt für Schritt vorgeführt. Es war interessant zu beobachten, wie er ein Konsolenprogramm entwickelt hat, das mit Hilfe von Razor Serienbriefe oder HTML Emails generieren konnte. Im Gegensatz zu T4 konnte dabei auf die hässlichen, spitzen, gelben Klammern verzichtet werden.

Mein letzter Vortrag, war ein Vortrag in dem die Firma Centron eine Beta Version ihrer Private-Cloud namens CCloud vorgestellt hat. Centron versteht im Moment unter einer Private-Cloud einen virtuellen Server, bei dem man den RAM oder den Festplattenspeicherplatz per Schieberegler einstellen kann und nur die tatsächlich verbrauchte Leistung zahlen muss.

Fazit

Dieses Mal möchte ich gern auf mein persönliches Fazit verzichten und einige Tweets zitieren, die zum Hashtag der Konferenz getwittert wurden:

  • #dndc11 ist vorbei. Bin schon zuhause angekommen. Schön wars. (@minibrain81)
  • perfekte organisation, gute vorträge, gerne wieder #Dndc11 (@SKTime888)
  • #dndc11 is almost over now. Good talks, nice people, well organized. Thanks everybody! Two sessions left, than heading back to #austria (@dtanzer)
  • Tschüss Nürnberg. Tschüss @dotnetdevcon. Bis zum nächsten Jahr! #Dndc11 (@MrMoratti)
  • Coole Veranstaltung - Hat sich gelohnt! #dndc11 (@chrinner)
  • zurück vom #dndc11 - war erkenntnisreich und spannend zugleich. danke an alle teilnehmer und die organisatoren. jetzt erstmal verarbeiten (@ilkerde)
  • Back at home - war eine tolle veranstaltung - viele coole leute und super organisation. Hope for another one! #dndc11 (@RobertoBez)

 

Fotos und Grafiken: Neue Mediengesellschaft Ulm mbH

Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war,
bitte "kicken" sie ihn.

Kick it on dotnet-kicks.de