December 14th, 2009 by Kai Gloth
Aufgabe beim Azure Now Gewinnspiel ist es, eine eigene Windows Azure Demo-Domäne einzurichten und dort eine Cloud Computing-Anwendung online zu stellen – nicht mehr. Das kann eine eigene Web-Anwendung sein oder ein Test-Projekt, das man bei Microsoft herunterladen kann. Dafür braucht man nicht länger als 15 Minuten und sichert sich hoffentlich noch ein schönes Weihnachtsgeschenk.
Alle Details, weiterführende Tutorials und Informationen zum Gewinnspiel findet Ihr hier: AzureNow Gewinnspiel – Jetzt teilnehmen!
November 10th, 2009 by Kai Gloth
Auf dem Windows Azure Platform Launch Day stellt Microsoft erstmalig die produktive Version von Windows Azure in Deutschland vor. Entwickler, IT-Dienstleister, Software-Hersteller und Unternehmen lernen hier, wie man die Microsoft Online Services (Sharepoint, Exchange, Office Web Applications) und die Windows Azure Platform einsetzen kann und wie man für Windows Azure Platform Anwendungen entwickelt. Auf diesem exklusiven Premiereevent erfahrt Ihr alles Wichtige über die Cloud Angebote von Microsoft und wie Unternehmen davon profitieren können. Jeder Teilnehmer erhält auch das Microsoft-Press Buch “Cloud Computing mit der Windows Azure Platform”.
Anmeldung und weitere Infos findet Ihr unter: http://go.microsoft.com/?linkid=9695893
August 11th, 2009 by Kai Gloth
Visual Studio bietet eine ganze Menge Kommandozeilen Parameter, um bestimmte Funktionen zu beinflussen oder abzustellen. Folgende ein paar wichtige Parameter, die ich benötigt habe ich ein Fehler beim Start einzugrenzen und letztendlich zu beheben:
/log – Protokolliert den Start von Visual Studio
/ResetSettings – Setzt alle Einstellungen zurück
Damit alle Parameter eingesehen werden können, muss die devenv.exe mit dem Kommando /? gestartet werden.
May 23rd, 2009 by Kai Gloth
Ich habe zwar schon eine Xbox, allerdings ist die schon ein wenig in die Jahre gekommen. Außerdem finde ich das Thema dieser Blog-Parade sehr interessant. Hier nun meine Top 3 Entwickler-Tools
1) Jetbrains ReSharper
ReSharper ist für mich DAS Visual Studio Add-In, welches in nun seit mehreren Jahren benutze und eigentlich nicht mehr ohne kann.
2) Snippet-Compiler
Der Snippet-Compiler befindet sich ebenfalls seit mehreren Jahren auf meiner Festplatte. Häufig muss ich ein Stück Code testen und möchte dafür nicht extra Visual Studio starten müssen. Snippet-Compiler besetzt genau diese Lücke.
3) CodeSmith
Mit Hilfe von CodeSmith ist es möglich Code zu generieren, allerdings können die Templates selbst mit Logik gefüllt werden. Damit hat mir CodeSmith schon viel, viel Arbeit erspart.
April 27th, 2009 by Kai Gloth
Für ein neues Projekt wollte ich heute Morgen die C++ Komponenten von Visual Studio 2008 Prof. nachinstallieren. Nach dem Aufrufen des Setups wurde jedoch folgende Fehlermeldung angezeigt:
A selected drive is no longer valid. Please review your installation path settings before continuing with setup.
Die Lösung habe ich in einem Thread im MSDN Forum gefunden. Nach der Deinstallation des SP1 für Visual Studio konnte die Nachinstallation durchgeführt und im Anschluss das SP1 erneut installiert werden.
April 1st, 2009 by Kai Gloth
Formulare sind etwas ganz Grundsätzliches jeder Web-Anwendung. Zu jedem guten Formular gehören Hilfe und Erklärungstexte, damit der Benutzer ganau weiß was er einzugeben hat. Meiner Auffassung nach sollte die Aufklärung im Vorfeld durchgeführt werden und nicht erst durch die Ausgabe einer entsprechenden Fehlermeldung - jedoch wäre ein langer Erklärungstext für jedes Feld zu umfangreich, und würde eher abschreckend wirken.
Die Lösung sind also ToolTips, die nach belieben des Benutzers eingeblendet werden. Häufig werden die Hilfetexte nicht vom Entwickler, sondern von anderen Kräften erstellt. Somit sollten die Hilfetexte leicht einzugeben ein und ohne Problem verändert werden können.
Die Verarbeitung und Anzeige der ToolTips überlasse ich der jQuery JavaScript Library mit der Abwandlung jTip, was bedeutet das diese Referenzen zunächst eingebunden werden müssen. Wichtig ist hierbei die Reihenfolge, die strikt eingehalten werden muss. Weiterhin gibt es eine CSS Datei, die sich um die nötigen Formatierungen kümmert.
<head runat="server">
<link href="Stylesheet1.css" rel="stylesheet" type="text/css" />
<script src="jquery.js" type="text/javascript"></script>
<script src="jtip.js" type="text/javascript">
</script>
<title></title>
</head>
Die Hilfetexte selbst werden über einen generischen HttpHandler eingebunden, welcher wiederum den Zugriff auf eine globale Resource-Datei nutzt. Die Unterscheidung der Texte erfolgt über die Angabe eines Schlüssels, welcher in der gleichen Form in der Resource-Datei zu finden ist.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace FormularToolTip
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class HelpHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string key = context.Request.QueryString["key"];
context.Response.Write(String.Format("<p>{0}</p>",
HttpContext.GetGlobalResourceObject("Help", key)));
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
Damit der jQuery Code die Arbeit aufnehmen kann, ist es nötig den Link zur Hilfe mit einer entsprechenden Klasse zu versehen. Über das Attribut Name, wird die Überschrift abgegeben.
Benutzername: <asp:textbox ID="Textbox1" runat="server"></asp:textbox>
<a href="HelpHandler.ashx?key=Help1" name="Benutzername" id="Help1" class="jTip">?</a>
Dieser Beispielcode zeigt den Link als Fragezeichen. Zusätzlich wird der Mauszeiger mit Hilfe der CSS Datei verändert, sobald er sich über dem Fragezeichen befindet, allerdings nur sofern der Browser dies unterstützt.
Das Ergebnis ist die Anzeige eines einfachen ToolTips, welcher dazu noch leicht einzugeben und zu warten ist. Leider ist auf dem Screenshot der Mauszeiger nicht zu sehen.
Das Beispielprojekt gibt es hier zum Download.
April 1st, 2009 by Kai Gloth
Mein Freund Lars Keller und Mario Meir-Huber veranstalten am 08.05.2009 in Wien einen Community Day rund um VSTO, also die Microsoft Office Entwicklung. Die Themenschwerpunkte des Tages sind:
- Einführung in die VSTO
- OpenXML: Das neue Office Format
- VSTO Deployment
- Sharepoint Workflows und Integration
- Interaktionen in der "Office-Welt" mit .NET
- Office plus Services
Mehr Informationen gibt es im Blog von Lars, oder unter
http://www.vsto-taskforce.de/wikis/ocd/hauptseite.aspx
March 25th, 2009 by Kai Gloth
Kaum eine Anwendung kommt heute noch ohne Passwort aus. Aufgrund dieser Tatsache verwenden Benutzer häufig einfache Passwörter, oder schlimmer noch - für jede Anwendung das gleiche Passwort. Umso wichtiger ist es das die Entwickler der Anwendung die Passwörter der Benutzer schützen, und das so gut wie möglich.
Damit Angreifer bei einer Komprimitierung der Datenbank nicht alle verwendeten Passwörter im Klartext vor sich haben, empfiehlt es sich ein Hash des Passworts zu erstellen und diesen in Verbindung mit einem Zufallswert (genannt Salt) in der Datenbank zu speichern.
Seit der Version 2.0 des .NET Frameworks steht die Klasse Rfc2898DerivedBytes zur Verfügung, welche auf dem Passwort-Hashing-Standard RFC2898 basiert.
Zunächst muss der Zufallswert (Salt) erstellt werden. In diesem Beispiel wird eine 16 byte lange Zufallszahl erstellt. Denkbar wäre jedoch auch eine Verwendung des Benutzernames, oder eines anderen eindeutigen Wertes.
byte[] GetSalt(int length)
{
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] buff = new byte[length];
rng.GetBytes(buff);
return buff;
}
In Verbindung mit dem Salt kann nun der Passwort Hash erstellt werden.
byte[] GetHashPassword(string password, byte[] salt)
{
Rfc2898DeriveBytes rfc = new Rfc2898DeriveBytes(password, salt, 10000);
return rfc.GetBytes(16);
}
Die zurückgegeben Werte müssen, bevor Sie in der Datenbank gespeichert werden können, in einen Base64 String umgewandelt werden.
Bei der Anmeldung eines Users wird das eingegebene Passwort mit dem in der Datenbank gespeicherten Salt in einen Hash umgewandelt und mit dem Hash in der Datenbank verglichen. Bei Erfolg kann die Anmeldung fortgesetzt werden.
Das Beispielprojekt als Konsolenanwendung kann hier runtergeladen werden.
March 2nd, 2009 by Kai Gloth
In diesem Jahr habe die die Gelegenheit bekommen vom 03.03 - 05.03 am Stand von Microsoft tätig zu sein. Zu finden bin ich am Community Stand in Halle 4 Stand A26. Ich freue mich auf viele bekannte Gesichter, viele Fragen und interessante Gespräche zum Thema .NET, Windows Vista und
Windows 7.
February 14th, 2009 by Kai Gloth
Auch dieses Jahr haben Interessierte wieder die Möglichkeit, sich bei der regelmäßig stattfindenden Workshop-Reihe "Visual Studio Team System Information Days" Einblick in die unterschiedlichen Rollen eines Entwicklungsprozesses und deren koordinierte Zusammenarbeit zu verschaffen.
Als ganzheitliches Toolset "aus eigener Hand" unterstützt Visual Studio Team System den gesamten Prozess des Application Lifecycle Management (ALM) von Anforderungsmanagement über Design, Entwicklung und Test bis hin zum Betrieb der Software.
Noch bis Ende Juni 2009 werden die kostenpflichtigen ganztägigen Workshops in verschiedenen deutschen Städten (in den Niederlassungen der Microsoft Deutschland GmbH) durchgeführt. Sie richten sich in erster Linie an Leiter der Anwendungsentwicklung, Projektleiter, Senior Developer sowie technische Entscheider aus Unternehmen mit Entwicklungsteams.
Für Community-Mitglieder entfällt die Teilnahmegebühr von 49,- EUR. Wie erfahrt Ihr auf der Veranstaltungswebseite:
http://go.microsoft.com/?linkid=9649599