ASP.NET Programmierung   ·   Microsoft MVP ASP/ASP.NET   ·   Peter Bucher   ·   Jürgen Gutsch   ·   Karsten Samaschke   ·   Microsoft ASP.NET
Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe

Meine Top 3 Entwicklertools


Ok, ok. Wenn Jürgen und Peter das machen, kann ich nicht widerstehen. Evtl. räumen wir ja alle XBoxen ab, die es bei der MSDN Blog-Parade zu gewinnen gibt. (Wobei ich persönlich noch nie auch nur irgendwas gewonnen habe, von daher dürfte das dann eher nicht funktionieren :)

Visual Studio (derzeit in Version 2008 aber 2010 kommt ja auch "bald") läuft natürlich außer Konkurrenz. Ansonsten wärs ja auch unfair :)

1. Numero Uno wäre in meinem Fall Red Gate SQL Compare und SQL Data Compare. Für Entwickler, die sich (auch) mit Datenbanken beschäftigen, unverzichtbar.

2. Auf den zweiten Platz kommt bei mir FireBug in Verbindung mit der WebDeveloper Toolbar. Das Layout der neuen Website sieht mal wieder komisch aus? Schnell mal CSS on the fly ändern um zu schauen, welche Auswirkung das hat? Einfach und unkompliziert die Browsergröße ändern, versteckte Formularfelder finden, ...? Kein Problem mit den beiden Tools.

3. Last but not least: UltraEdit. Für mich der Editor schlechthin. .NET Projekte schreib ich damit zwar nicht aber für so ziemlich alles andere (Logfiles durchforsten, Classic ASP Skripte schreiben, Config und/oder XML Dateien bearbeiten, ...) einfach unabdingbar.

Es gibt zwar noch sehr viele andere Tools, die auf keinem Entwicklerrechner fehlen sollten aber wir sollen ja nur die Top 3 posten :)

8 Fakten über mich (Bin ich ein Hund? :))

Nachdem Jürgen das wohl leider niemand anderem zumuten wollte, bin ich jetzt dazu verdammt, euch was über mich preiszugeben :)

8 Fakten über den Kerl, der sich mittlerweise selbst als "Online only" Mensch bezeichnet:

  1. Lieblingszahl: 42
  2. Auto: Muss ich meine Frau fragen :)
  3. Zocken? Unreal Tournament in allen Versionen (allerdings sehr selten, da mir leider die Zeit fehlt. Crysis fand ich (bis auf die Hardwareanforderungen) sehr gut. Bis zu dem Punkt, an dem sich Crytek für den Fehler ihres Firmenlebens entschieden hat. Motto "Wir wissen, dass Crysis buggy ohne Ende ist aber Patches bringen wir trotzdem keine mehr raus". Und Nein, ich find nicht die Ballerei so toll, sondern das Teamplay :)
  4. Windows Server 2008? Ja!
  5. Musik? Eigentlich alles außer Heino. Da ich bereits im gesetzten Alter bin auch "die beste Band der Welt", DTH, ... (die kann man sich live wenigstens noch anhören, letztere im August 2009 in Losheim :)
  6. Mein “entwicklerischer Evolutionsbaum”:
    Cobol, C, PL/SQL + Oracle Forms, Classic ASP, ASP.NET. Zwischendurch gabs dann jede Menge Zeugs, das ich hier nicht sagen will :)
  7. Rein vom technischen fand ich mein MacBook Pro, dass ich 3 Tage lang mein Eigen nennen durfte, ganz cool. Aber > 60°C Bodentemperatur (was der Händler als "ganz normal" bezeichnete) fand ich dann doch etwas zuviel des Guten.
    Viel besser find ich aber den hier :)
  8. Was mach ich außer ASP.NET Anwendung aufbauen? Wie, da gibts noch was anderes? Ehrlich?
So, da ich ein gemeiner Kerl bin, geb ich den Stock mal weiter an Thomas, Lars und Norbert.

Eingetragen von Stefan Falz | 0 Kommentare
Abgelegt unter: ,

ASP.NET 3.5 SP1: Bug im HyperLink Control bei UrlRewriting


Nachdem ich mir heute den Kopf über die Fehlermeldung:

Vorangestellte .. können nicht zum Beenden auf oberster Verzeichnisebene verwendet werden.

(für die Suchmaschinen hier dann auch noch auf Englisch :)

Cannot use a leading .. to exit above the top directory

zerbrochen und natürlich erstmal die Schuld bei mir gesucht habe, bin ich letztendlich nach langem Suchen dann doch drauf gekommen[1], dass das ein Bug im ASP.NET HyperLink Control ist.

Leider, leider ist der schon ziemliche lange bekannt[2] und wurde damals als nicht lösbar klassifiziert. Allerdings war das zu ASP.NET 2.0 Zeiten und die sind ja bekanntlich schon eine Weile her.

Was war passiert?

Ein Kunde wollte in einem Menücontrol zusätzlich zum Linktext auch noch ein Bild, welches ebenfalls verlinkt werden sollte. Nichts leichter als das, wozu gibt's <asp:HyperLink ... ImageUrl="~/Images/Bild.jpg" />?

Tja, leider kamen da noch einige andere Änderungen dabei, die dann auch gleich eingebaut wurden und so bin ich natürlich nicht gleich darauf gekommen, dass am HyperLink Control, bzw. dem ImageUrl Attribut liegen könnte, insbesondere, da das zum einen sowas banales ist, dass man nicht im Traum daran denkt, dass das nicht funktionieren würde und andererseits eine andere Website, die auf dem gleichen CMS aufbaut, weiterhin problemlos läuft (zugegebenermaßen ist obiges Konstrukt dort zu nicht finden, was mir aber halt leider nicht so ins Auge gefallen ist).

Normalerweise kommt die o.g. Fehlermeldung, wenn man bspw. mit ../ oder ähnlichem referenziert. Hab ich aber nicht (außer in externen CSS Dateien, die sollten aber eigentlich nicht vom IIS geparst werden). Also ging die Suche los.

Anleitung zum Reproduzieren des Bugs

1. Man setze eine IIS Website (IIS 6 oder 7) auf. Kein Unterordner, kein virtuelles Verzeichnis, wirklich eine eigene Website). Im ASP.NET Development Webserver könnte es sein, dass es funktioniert, hab ich aber nicht probiert.

2. Man baue ein ASP.NET 3.5 Testprojekt auf, welches auf die neu erstellte Website im IIS zeigt.

3. Man nehme ein UrlRewriting Modul, welches den Request auf "/Produkte/123.aspx" bspw. mittels:

HttpContext.Current.RewritePath( "~/Produkte.aspx?Product=123", False )

umbiegt. Wichtig dabei ist, dass man nicht auf demselben Ordner bleibt, sondern einen (nicht vorhandenen) Unterordner (im Beispiel "Produkte") aufruft, da dann die ASP.NET Engine die Pfade umschreiben muss, da sich der interne Pfad vom eigentlich angeforderten unterscheidet.

4. Man baue ein HyperLink Control mit gesetztem ImageUrl Attribut in eine Webform oder ein Control ein.

<asp:HyperLink ID="MyDoofesHyperLinkControl" runat="server" ImageUrl="~/Images/Bild.jpg" NavigateUrl="~/Ordner/Datei.aspx" />

5. Man lasse das ganze laufen.

6. Man "erfreue" sich an der Fehlermeldung.

(Falls ich die Zeit finde, poste ich in den nächsten Tagen noch ein Beispielprojekt, mit dem man das Ganze reproduzieren kann).

Die Lösung ist (wenn man sie kennt) relativ simpel. Man verwendet einfach kein HyperLink Control bzw. dessen ImageUrl Eigenschaft, wenn man mit UrlRewriting arbeitet, sondern trennt hier in ein HyperLink- und ein Imagecontrol.

<asp:HyperLink ID="MyDoofesHyperLinkControl" runat="server" NavigateUrl="~/Ordner/Datei.aspx">
    <asp:Image ID="MyKlugesImageControl" runat="server" ImageUrl="~/Images/Bild.jpg" />
</asp:HyperLink>

Abschliessende Worte

Ehrlich gesagt, find ich es schon ziemlich "komisch", dass ein solcher Bug (und um nichts anderes handelt es sich hier, da gibts keine "by design" oder "feature" Ausrede) nicht zumindest in der neuen Version gefixt wurde. Die Aussage, aus Kompatibilitätsgründen würde das nicht gehen, kann ich nicht nachvollziehen. Alternativ würde eine entsprechend aussagekräftige Fehlermeldung, die das Problem besser beschreibt, auch schon mal helfen, dass man sich keinen Wolf nach möglichen, eigenen Fehlern sucht.

[1] http://pietschsoft.com/post/2007/10/ASPNET-RewritePath-breaks-HyperLinks-ImageUrl-in-App_Theme-file-when-path-with-slash-is-rewritten.aspx
[2] https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=235385

Eingetragen von Stefan Falz | 2 Kommentare

VS 2005: Authentifizierungsfehler bei der Kommunikation mit dem Webserver


VS 2005 (SP 1 inkl. Vista Update) Projekte unter Vista (SP 1) zu debuggen war eigentlich nie ein Problem. Nachdem ich das SP 1 für Visual Studio 2008 installiert hatte, ließen sich diese Projekte mit folgender Fehlermeldung nicht mehr debuggen.



In Textform (für die Suchmaschinen :)

Das Debuggen kann auf dem Webserver nicht gestartet werden.
Authentifizierungsfehler bei der Kommunikation mit dem Webserver.

Nach langem Suchen bin ich dann auf diesen Blogeintrag des Visual WebDeveloper Teams gestoßen, der, obwohl er eigentlich ein Problem mit Visual Studio 2008 lösen sollte, auch in meinem Fall mit Visual Studio 2005 geholfen hat. Komischerweise kann ich mit VS 2008 problemlos debuggen, auch mit Hostheadern.

Problemlösung

Eine mögliche Lösung des Problems besteht darin, die verwendeten Hostheader in die Registry einzutragen. Dazu bitte folgendes machen:
  1. Regedit ausführen (Start -> Ausführen -> Regedit)

  2. Sucht den folgenden Registryschlüssel
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0

  3. Klick auf der rechten Seite mit der rechten Maustaste in den freien Bereich Bereich und wählt dann Neu -> Wert der mehrteiligen Zeichenfolge

  4. Den Namen des neu angelegten Eintrags ändert ihr auf "BackConnectionHostNames" (ohne Anführungszeichen)

  5. Doppelklick auf den Namen des neu erzeugten Eintrags "BackConnectionHostNames"

  6. Gebt den oder die Hostnamen in das Eingabefeld ein (pro Zeile ein Hostname, ohne http:// o.ä. also bspw. nur "meinhostname")

  7. Start -> Ausführen -> iisreset zum Neustarten des IIS ausführen.
Es kann sein, dass beim ersten Versuch, das Projekt zu debuggen, immer noch derselbe Fehler kommt. In dem Fall einfach noch ein zweites mal probieren. Falls es dann immer noch nicht klappen sollte, prüft nochmal, ob iisreset korrekt ausgeführt wurde.


Die Gewinner des ASP.NET Zone - Xtopia 2008 Gewinnspiels


Werbeanzeige




In der ASP.NET Zone gab es was zu gewinnen, nämlich jeweils einen von insgesamt drei Preisen rund um die Xtopia 2008.

Zu gewinnen gab es insgesamt drei Preise*:


Aber jetzt zum wichtigsten Part, den Gewinnern:

  • Miccolo (1 * Microsoft Expression Studio)
  • Moonlight1320 (1 * eine kostenfreie Eintrittskarte für die Xtopia 2008)
  • chriskoli (1 * eine kostenfreie Eintrittskarte für die Xtopia 2008)

Herzlichen Glückwunsch!

Eingetragen von Stefan Falz | 1 Kommentare

VS 2008: Servicepack 1 released


Microsoft hat soeben das Servicepack 1 für Visual Studio 2008 und gleichzeitig für das SP 1 für .NET Framework 3.5 released.

Zu finden ist das VS 2008 SP 1 hier (Bootstrapper, notwendige Dateien werden bei der Installation aus dem Internet geladen) und hier (ISO Image mit allen Installationsdateien, kann auf DVD gebrannt oder mittels Utilities wie bspw. den DaemonTools als Laufwerk bereitgestellt werden).

Wenn man bereits einen Visual Studio 2008-Hotfix installiert hat, sollte man vor der Installation von Visual Studio 2008 SP1 auf jeden Fall das VS 2008 Hotfix Cleanup Utility ausführen, da bei der Installation des SP 1 ansonsten Fehler auftreten können. Je nach installierter Sprachversion von Visual Studio 2008 kann es sein, dass noch ein zusätzliches Tool zur Entfernung bestimmter "Altlasten" ausgeführt werden muss. Dieses Utility findet ihr hier.

Dasselbe gilt für evtl. installierte Addins, ... welche sich in Visual Studio einklinken und ggfs. nicht kompatibel mit VS 2008 SP 1 sind.

Das .NET Framework 3.5 SP 1 findet man hier. Wenn man das Visual Studio 2008 Servicepack installiert, muss das .NET Framework 3.5 Servicepack nicht zusätzlich installiert werden, es ist dort bereits enthalten.


Eingetragen von Stefan Falz | 0 Kommentare

Xtopia 2008 Gewinnspiel - Freikarten und Expression Studio zu gewinnen




Die ASP.NET Zone veranstaltet aktuell ein Gewinnspiel rund um die Xtopia 2008.

Zu gewinnen gibt es insgesamt drei von Microsoft zur Verfügung gestellte Preise, jeder der Gewinner erhält:

Weitere Informationen zum Gewinnspiel sowie zu den Teilnahmebedingungen findet ihr hier.

Ich hoffe auf eine rege Teilnahme und wünsche allen Usern viel Glück.

Eingetragen von Stefan Falz | 0 Kommentare

Die Gewinner des ASP.NET Zone - Visual Studion 2008 Gewinnspiels


Werbeanzeige




In der ASP.NET Zone Es gab was zu gewinnen, nämlich eine von drei Visual Studio 2008 Lizenzen.

Zu gewinnen gab es insgesamt drei Visual Studio 2008 NFR Lizenzen, jeder der Gewinner erhält:

  • 1 * Visual Studio 2008 Standard Edition
  • 1 * Visual Studio Team System 2008 Team Foundation Server
  • 1 * msdn Library

Aber jetzt zum wichtigsten Part, den Gewinnern.
Herzlichen Glückwunsch!

Eingetragen von Stefan Falz | 1 Kommentare

Boah Ey: schema.ini, CSV Dateien, UTF-8


Wer irgendwann einmal in die Bedrängnis kommt, per Code eine CSV Datei (bspw. aus einer Access Datenbank) generieren zu müssen und aufgrund verschiedener Umstände dazu gezwungen ist, hierfür programmatisch eine schema.ini zu erstellen, dem möchte ich folgendes ans Herz legen:
  • Nicht aufregen, dass nichts, aber auch gar nichts klappt. Die schema.ini wird einfach ignoriert. Gibts nicht? Gibts wohl. Ich hab mich gerade totgesucht, weil ich vor genau diesem Problem gestanden habe und schon an mir selbst gezweifelt habe.
Die Fehlermeldung bei mir lautete:

Das Feldtrennzeichen für die angegebene Textdatei entspricht dem Dezimaltrennzeichen oder Texttrennzeichen.

Die Ursache ist meiner Meinung nach absolut dämlich: Die schema.ini wurde aus einem .NET Programm heraus erzeugt und dabei wird standardmäßig UTF-8 für die Dateicodierung verwendet. In dem Moment ignoriert die JET-Engine die schema.ini, bzw. deren Inhalte. Geht man dann manuell in die Datei (bspw. mit UltraEdit) und fügt einen neuen Abschnitt (in meinem Fall Export.txt) hinzu und verwendet als Exportdateinamen dann auch Export.txt gehts auf einmal. Ändert man im Code dann wieder zurück auf Export.csv, gehts wieder nicht. Komisch, komisch, dachte ich mir. Nebenbei verfluche ich gerade den dafür zuständigen Entwickler, der diesen Bockmist verzapft hat.

So oder so: Wenn ihr auf ein solches Phänomen stoßen solltet, achtet darauf, dass die Datei schema.ini als Ascii geschrieben wird, dann sollte es (zumindest hiermit) keine Probleme geben.

Da wird hier in einer Entwicklercommunity sind, folgt jetzt noch der Beispielcode (allerdings ohne weiteren Kommentar, ich geh jetzt erstmal ins Bett :)

Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                                 "Data Source=X:\Ordner\Datenbank.mdb;"
 
Dim ExportStatement  As String = "SELECT Spalte1, Spalte2 INTO [Export.csv] IN ""X:\Ordner"" ""TEXT;"" FROM Tabelle"
 
Dim Connection       As New OleDbConnection( ConnectionString )
    Connection.Open()
 
Dim Command As New OleDbCommand( ExportStatement, Connection  )
    Command.ExecuteNonQuery()
    Command.Dispose()
 
    Connection.Close()
    Connection.Dispose()

Die dazu passende schema.ini liegt im selben Ordner, in den auch die Exportdatei soll und sieht so aus:

[Export.csv]
ColNameHeader=True
Format=Delimited(;)
CharacterSet=OEM
[Export.txt]
ColNameHeader=True
Format=Delimited(;)
CharacterSet=OEM


Eingetragen von Stefan Falz | 1 Kommentare

Spotlight schließt die Tore


Einigen von euch dürfte Spotlight sicherlich noch ein Begriff sein. Für die, die es nicht kennen. Es ist war eines der ältesten und größten themenübergreifenden Forensysteme im deutschsprachigen Raum.

Die Nostalgie kommt aus zwei Gründen: Eben weil es Spotlight schon seit 1997 gibt gab und weil Spotlight bewusst mit einem Retrolook daherkam, der auf der einen Seite etwas altbacken wirkte, andererseits hats doch Spaß gemacht, dort zu posten.

Leider schließt Spotlight heute seine Tore. Ob und falls ja, wann diese wieder aufgehen, ist ungewiss, nach der hier nachzulesenden "Abschiedsrede" denke ich nicht, dass es ein Comeback geben wird. (eine klein wenig Hoffnung hab ich aber noch :)

Ich persönlich find es ziemlich schade und hoffe, dass der ASP.NET Zone dieses Schicksal in absehbarer Zeit erspart bleibt.

Aber was will man machen, so ist (leider) der Lauf der Dinge.

Auf diesem Weg noch einmal Herzlichen Dank an Peter Herzog für 11 Jahre harte Arbeit. Für deinen weiteren Weg alles Gute und wenig(er) Stress :)

Eingetragen von Stefan Falz | 0 Kommentare
Abgelegt unter: , ,

Visual Studio 2008 Gewinnspiel


Auf der ASP.NET Zone gibt es aktuell ein Gewinnspiel, dabei kann man eine von drei Visual Studio Lizenzen ergattern

Zu gewinnen gibt es insgesamt drei von Microsoft zur Verfügung gestellte Visual Studio 2008 Lizenzen *, jeder der Gewinner erhält:

  • 1 * Visual Studio 2008 Standard Edition
  • 1 * Visual Studio Team System 2008 Team Foundation Server
  • 1 * msdn Library

* Bitte beachtet: Die Gewinne werden von Microsoft zur Verfügung gestellt und sind selbstverständlich Vollversionen, welche aber nicht für den Wiederverkauf bestimmt sind (sogenannte NFR, Not for Resale Lizenzen) und daher nicht verkauft werden dürfen.

Weitere Informationen zum Gewinnspiel sowie zu den Teilnahmebedingungen im folgenden Link:


Eingetragen von Stefan Falz | 0 Kommentare

VS 2008: Hotfix für Webentwickler, die Zweite


Wie bereits hier geschrieben, hat Microsoft für verschiende Bugs einen Hotfix veröffentlicht, der sich sich primär an Webentwickler richtet.

Bisher ließ sich der Hotfix allerdings nur mit einem englischen oder chinesischen Visual Studio 2008 installieren. Lt.  diesem Blogeintrag werden mit der aktualisierten Version alle Sprachen mit Ausnahme von Portugiesisch und Russisch unterstützt. Zumindest für die deutsche Version kann ich bestätigen, dass die Installation reibungslos klappt.

Den Hotfix findet ihr hier.

Weitere Infos zum Hotfix findet ihr in meinem ersten Blogeintrag zu dem Thema und in der Microsoft Knowledge Base.

Eingetragen von Stefan Falz | 0 Kommentare

Windows Media Player Plug-in für Firefox unter Windows Server installieren


Das Windows Media Player Plug-in für Firefox (welches im übrigen auch wunderbar unter Safari 3.0x und Netscape 9.x unter Windows funktioniert) lässt sich bekanntermaßen nicht unter Windows Server 2003 installieren (Windows Server 2008 konnte ich aufgrund chronischen Zeitmangels noch nicht testen). Kurz nach dem Starten des Installation erscheint dann die Meldung "Package does not support server operating systems".

Da ich aufgrund eines Projekts aber gewzungen war, diesen Rechner als Testmöhre zu mißbrauchen, wollte ich mich damit nicht abfinden. Nach etwas suchen fiel mir dann wieder ein, dass man die ein MSI Paketen enthaltenen Dateien ja problemlos extrahieren kann. Hierfür wendet man bspw. folgenden Befehl an:

msiexec /a ffplugin.msi /qn TARGETDIR="X:\Ordner\FFPlugin"

Danach geht man dann in den Ordner "X:\Ordner\FFPlugin\PFiles\Plugins\". Dort drin liegt jetzt eine Datei "np-mswmp.dll", die man einfach nur noch in das Pluginverzeichnis des jeweiligen Browsers kopieren muss.
  • Firefox
    C:\Programme\Mozilla Firefox\plugins\

  • Safari
    C:\Programme\Safari\Plugins\

  • Netscape 9
    C:\Programme\Netscape\Navigator 9\Plugins\
Ggfs. muss der Browser noch neu gestartet werden aber dann kanns auch schon losgehen :)

Und falls sich jemand fragen sollte, warum das ganze, hier die Antwort: Weils Spaß macht :) Das Plugin dient dazu, auch in Firefox (und Safari sowie Netsi 9) mit dem Windows Media Player Steuerelement arbeiten zu können. Das funktioniert zwar fürs reine Abspielen auch ohne das Plugin, allerdings ist dann kein programmatischer Zugriff auf das Control möglich. Wenn man also nicht nur einen "dummen" Player haben will, der stur seine Playlist abspielt sondern ggfs. auch Events abfangen, ScriptCommands verarbeiten, ... möchte, ist das Plugin prima einsetzbar. Da das Plugin beim Aufruf mit Firefox auch automatisch angeboten wird, kann man auch nicht mehr von einem Exoten reden. Genaue Zahlen kennt man zwar nicht aber die Zielgruppe des Projekts dürfte damit keine Probleme haben :)

Eingetragen von Stefan Falz | 2 Kommentare

.NET: Methodennamen per Reflection ermitteln


Ab und an hat man die Anforderung, den Namen der gerade ausgeführten Methode zu ermitteln ohne ihn statisch irgendwo in der Methode zu hinterlegen. Das kann bspw. ein zentraler Exceptionhandler oder auch einfach nur ein Debuglog sein, mit dem man die Aufrufe einiger oder auch aller Methoden protokollieren will. Dazu nachfolgend ein wenig Code :)

Den Namen der aktuell ausgeführten Methode kann man wie folgt ermitteln:

Dim MethodName As String = System.Reflection.MethodBase.GetCurrentMethod().Name
Wenn man nicht die aktuell ausgeführte, sondern die aufrufende Methode braucht:

Dim StackTrace As New System.Diagnostics.StackTrace()
Dim MethodName As String = StackTrace.GetFrame( 1 ).GetMethod().Name

Exceptions bieten die Methoden auch gleich mit an (natürlich auch InnerException, wenn man  :

Dim MethodName As String = <Exception>.TargetSite.GetCurrentMethod().Name
Dim MethodName As String = <Exception>.InnerException.TargetSite.GetCurrentMethod().Name

Falls man zusätzlich zum Methodennamen gerne auch noch den Klassennamen ermitteln möchte; auch kein Problem.

Dim ClassName  As String = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name
Ein kleiner Hinweis, falls euch als Methodenname dann irgendwann mal ".ctor" über den Weg laufen sollte. Konstruktoren werden nicht mit ihrem Namen "New" zurückgegeben, sondern halt eben als ".ctor".

Eingetragen von Stefan Falz | 3 Kommentare

Glückwunsch Scott, Mr. corporate vice President, .NET Developer Platform

Scott Guthrie, IMHO der Kopf hinter .NET, ist befördert worden. Er darf sich nunmehr "corporate vice president, .NET Developer Platform" nennen.

Sein Blog will er aber weiterführen. Ich hoffe, das bleibt auch so, wenn nicht, gibts spätestens im April Haue, Scott :)

Eingetragen von Stefan Falz | 1 Kommentare