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


Erfahrungsbericht Windows V-Server bei Strato

Wednesday, June 01, 2011 12:12:09 AM (Mitteleuropäische Sommerzeit, UTC+02:00)

Vor gut zwei Monaten habe ich hier im Blog über meine Erfahrungen mit Windows Web Servern von Hetzner berichtet. Auf Grund der schlechten Erfahrungen hatte ich meine zwei Webserver bei Hetzner gekündigt und bin zu Strato gewechselt.

Strato-Logo

Das Angebot

Strato hat im Moment folgendes sehr attraktives Angebot:

  • Windows 2008 R2 Hyper-V Web Server
  • 4 GB Ram
  • 200 GB HDD
  • 4 Kern Prozessor
In dieser Ausstattung kostet der virtuelle Server nur knapp 35€ pro Monat. Als ich vor zwei Monaten die Preise verglichen habe, war das Angebot so günstig, das ich sofort zugeschlagen habe.

Bestellung

Die Bestellung des Servers war im Handumdrehen geschehen, allerdings dauerte es 1,5 Tage, bis der Server bereitgestellt wurde. Hetzner war mit wenigen Stunden deutlich schneller, obwohl es sich bei Hetzner um echte Hardware handelte und nicht um eine virtuelle Maschine wie bei Strato.
Als kleinen Nachteil sehe ich, dass pro Server nur eine IP Adresse bestellt werden kann.

Software

Auf dem Server war wie angegeben, Windows 2008 R2 Web Edition installiert, allerdings in Deutsch. Gerade bei der Konfiguration des IIS ist die deutsche Übersetzung schon sehr gewöhnungsbedürftig. Ich möchte meinen App-Pool gern recyceln und nicht wiederverwenden :-)
Auf dem Server war ebenfalls ein SQL Server 2008 R2 Express installiert, was natürlich keine schlechte Idee ist. Sonst war keine störende Software wie zum Beispiel Plesk installiert.
Über die Strato-Weboberfläche ist es möglich, einen Neustart im Rescue-Mode zu veranlassen. Dann startet der Server mit einer Windows PE Installation. In dieser Umgebung hat man Zugriff auf seine Festplatten und kann so ggf. Daten sichern oder wiederherstellen.

Leistung und Stabilität

Die Performance des Servers würde ich als gut bezeichnen, wobei man deutlich merkt, dass man auf einer virtuellen Maschine ist und nicht auf einer echten Hardware. Da der Windows Server stark auf Hintergrunddienste optimiert ist, ist nur die Windowsoberfläche etwas träge. Der IIS und der SQL Server laufen stets flüssig.
Der Server hatte in den zwei Monaten keinen Ausfall, die Error Logs sind absolut sauber.

Support

Bei einem Webserver ist der Support fast noch wichtiger als die Leistung oder der Preis.
Leider kann Strato hier ganz und gar nicht überzeugen. Eine Antwort auf eine Emailanfrage dauert in der Regel 1,5 Tage. Das darf einfach nicht sein. Mit etwas Geduld ist aber telefonisch immer jemand zu erreichen, echte Hilfe bei Problemen ist aber auch per Telefon nicht zu erwarten. Bei einem Problem mit der Windows Firewall sagte mir ein Supportmitarbeiter nur: „Mit Linux wäre das sicher nicht passiert, da würde ich mich auch auskennen. Sie müssen eben alles neu installieren.” - Da ist man erst mal sprachlos.

Strato-Support

Mein Tipp: Wer sich einen V-Server bei Strato mieten möchte, sollte sich doppelt und dreifach durch Backups und Alternativen zur Remote-Desktop-Verbindung absichern. Im Ernstfall braucht man keine Hilfe erwarten.

Backupmöglichkeit

Gibt es nicht! Strato bietet zu den V-Servern keine Backupmöglichkeit an, obwohl sie mit dem Produkt „HiDrive” einen ganz brauchbaren Online Speicher im Programm haben.
Stratos Zielgruppe für das HiDrive scheinen im Moment nur Consumer zu sein.

Fazit

Legt man Wert auf Support oder Flexibilität ist man mit Strato V-Servern schlecht beraten, jedoch bekommt man für wenig Geld einen leistungsfähigen und gut ausgestatteten virtuellen Server.

Logo und Fotos: Strato

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

Kick it on dotnet-kicks.de


5 Jahre dotnet-snippets.de – Gewinnspiel

Tuesday, April 19, 2011 11:06:28 PM (Mitteleuropäische Sommerzeit, UTC+02:00)

Foto: Flickr/carldpatterson

Seit 5 Jahren ist die Entwicklerwebseite dotnet-snippets.de eine sehr bekannte Anlaufstelle um Lösungen, in Form von Codesnippets, für alltägliche Programmieraufgaben zu finden.

Den 5. Geburtstag der Webseite möchten wir nutzen, um uns mit einem Gewinnspiel bei der Community zu bedanken.

Mach mit, gratuliere dotnet-snippets.de zum Geburtstag und gewinne tolle Preise:
http://dotnet-snippets.de/dns/5-Jahre.aspx


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

Kick it on dotnet-kicks.de