Posts mit dem Label VS2008 werden angezeigt. Alle Posts anzeigen
Posts mit dem Label VS2008 werden angezeigt. Alle Posts anzeigen

Dienstag, 9. Februar 2010

BizTalk 2009 Issues unter VS2008

Seit wir mit BizTalk 2009 unter Visual Studio 2008 entwickeln, haben wir immer wieder heftige Probleme mit referenzierten Projekten. Und zwar vornehmlich dann, wenn sich diese innerhalb der gleichen Solution befinden. Nach unseren letzten Problemen hab ich mich auf die Suche gemacht und Blogeinträge mit den gleichen Erfahrungen gefunden:

Montag, 19. Januar 2009

Versionskontrolle mit VisualSVN & AnkhSVN

Versionskontrolle ist sicherlich für jeden Entwickler ein Thema, vor allem natürlich im beruflichen Umfeld. Doch auch für die private Entwicklung ist sie ein Thema, denn auch hier möchte der Entwickler nicht auf die Sicherheit verzichten, die eine Versionskontrolle bietet. Nicht umsonst ist der Einsatz eines Versionskontrollsystems bereits für den ersten, den Roten Grad im Wertesystem der Clean Code Developer vorgesehen.

Aus genannten Gründen habe ich mich mit eben diesen Systemen auseinandergesetzt und mich letztlich für eine Kombination aus VisualSVN als Server und AnkhSVN als Visual Studio-AddIn entschieden. Dass beide kostenlos verwendet werden können, hat dabei natürlich auch eine Rolle gespielt.

Obwohl sich Installation, Einrichtung und Verwendung als denkbar einfach erweisen, möchte ich hier eine kleine Hilfe für den Einstieg bieten, die eventuell auch für Unentschlossene als kleine Entscheidungshilfe dienen kann.

Installation

Nachdem die beiden Installationsdateien für VisualSVN und AnkhSVN, die jeweils nur etwa 3 MB klein sind, heruntergeladen wurden, kann mit der Installation des Subversion-Servers begonnen werden. Man startet also zunächst die Installation von VisualSVN.

Die Installation gestaltet sich dabei als einfach. Lediglich in einem Fenster müssen Entscheidungen getroffen werden, die der Konfiguration des Servers dienen.

Konfiguration VisualSVN

Neben dem Installationsverzeichnis kann hier das Verzeichnis gewählt werden, in dem später die Repositories des Servers abgelegt werden.
Auch kann man den zu verwendenden Port einstellen und wählen, ob eine sichere Verbindung via https:// verwendet werden soll, um eine Verbindung mit dem Server herzustellen.
Schlussendlich bleibt noch die Wahl, ob man für den Zugriff separate Subversion-Benutzer verwenden möchte oder lieber die bereits existierenden Windows-Benutzer.

Der nebenstehende Screenshot zeigt die Standardeinstellungen, die ich für meine Installation auch so belassen werde.

Damit ist die Installation des Servers auch bereits abgeschlossen und er ist damit funktionstüchtig. Bevor wir uns jedoch genauer damit auseinandersetzen, installieren wir zunächst noch das Visual Studio-AddIn AnkhSVN, das uns als Client dienen wird. Diese beschränkt sich auf das Starten der Installation plus mehrmaliges “Weiter”-Klicken, daher gehe ich darauf nicht näher ein.

 

Konfiguration & Einrichtung

Nach erfolgreicher Installation starten wir zunächst den VisualSVN Server Explorer, den im Startmenü gefunden werden kann. Dieser dient der Verwaltung des Subversion-Servers. Hier werden beispielsweise Benutzer und Repositories angelegt, mit denen Subversion arbeitet. Auch kann hier der Server gestoppt und gestartet werden.SVN_002

Diese grundlegenden Einstellungen kann man direkt vom Startbildschirm aus treffen.
Wurde als Authentifizierungsmethode die Subversion-Authentifizierung gewählt, sollte zunächst ein Benutzer erstellt werden.
Anschließend wird noch ein Repository angelegt und schon ist die grundlegende Einrichtung erledigt und der Server einsatzbereit.

Bevor wir jetzt allerdings unser erstes Projekt unter Versionskontrolle stellen, möchte ich noch zeigen, wie man die Verwendung von Keywords bzw. Properties aktivieren kann.
Diese werden zur sogenannten Keyword Substitution benötigt. Dabei handelt es sich um die dynamische Ersetzung bestimmter Schlüsselwörter durch deren Werte innerhalb der Quelldatei. So kann man beispielsweise im Header der Quelldatei eine Übersicht realisieren, welcher Benutzer eine Datei zuletzt eingecheckt hat und wann dies geschehen ist.

Um Keywords zu aktivieren, navigieren wir zunächst zum Konfigurations-Verzeichnis des Subversion-Servers, der unter Windows XP unter “C:\Dokumente und Einstellungen\<Benutzername>\Anwendungsdaten\Subversion” zu finden ist.  Dort öffnen wir die Datei “config” mit einem beliebigen Editor.
In der Sektion [miscellany] muss zunächst die Zeile enable-auto-props = yes einkommentiert werden. Hierzu wird einfach die vorangestellte Raute entfernt.
Anschließend muss in der Sektion [auto-props] noch ein Eintrag für jede Datei-Art eingefügt werden, für die Keywords aktiviert werden sollen. Für C#-Quelldateien sieht der Eintrag folgendermaßen aus:

*.cs = svn:keywords=HeadURL LastChangedBy LastChangedRevision LastChangedDate Id

Wie hier zu sehen gibt es fünf Keywords, die aktiviert werden können. Diese haben teilweise noch Alias-Namen, die stattdessen verwendet werden können.
Um mehr über die Keywords und die Keyword Substitution an sich zu erfahren, kann unter http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html nachgelesen werden.

Wichtig:
Soll Keyword Substitution verwendet werden, muss das beschriebene durchgeführt werden, bevor das Projekt , in dem sie verwendet werden soll, unter Source-Control gestellt wird.

 

Verwendung

Nun, da alles eingerichtet ist, können wir endlich dazu übergehen, unsere Subversion-Installation zu verwenden.
SVN_003

Wird jetzt in Visual Studio ein neues Projekt angelegt, zeigt sich eine Checkbox, die zuvor nicht verfügbar war. Diese erlaubt es, das zu erstellende Projekt direkt unter Source-Control zu stellen.

 

 

 

 

SVN_004

Wird diese Option ausgewählt, erscheint nach dem erfolgreichen Anlegen des Projekts ein Subversion-Dialog, in dem bestimmt werden kann, in welchem Repository es verwaltet werden soll.

Hier muss lediglich die URL des zu verwendenden Repositories eingefügt werden. Diese kann ganz einfach aus dem VisualSVN Server Manager kopiert werden.

Bei aktivierter Subversion-Authentifizierung kommt, muss sich der Benutzer nun zunächst anmelden.

Nach einem Klick auf OK steht das neu erstellte Projekt jetzt offiziell unter Versionskontrolle.

In Visual Studio wird man feststellen, dass einige neue Fenster hinzugekommen sind, ebenso wie einige Einträge ins Kontextmenü des Projektmappen-Explorers. Von entscheidender Bedeutung ist hierbei sicherlich das Fenster Pending Changes, dass anzeigt, welche Änderungen seit dem letzten Auschecken aufgetreten sind. Hier können diese Dateien auch wieder eingecheckt werden, was die Änderungen in das Versionskontrollsystem übernimmt.

Da wir uns so viel Mühe gegeben haben, die Keyword Substituation zu aktivieren, zeige ich jetzt noch, wie sie auch tatsächlich verwendet werden kann. Soll beispielsweise nach jedem Einchecken angezeigt werden, wann dies passiert ist und wer dafür verantwortlich zeichnet, fügt man in die Datei einfach einen Header ein, der wie folgt aussehen könnte.

   1:  // $LastChangedDate$
   2:  // $LastChangedBy$


Die Keywords, die enthalten sind, werden nun bei jedem Einchecken ersetzt und überschrieben, so dass der Header immer aktuell ist.

 

Jetzt wünsche ich viel Vergnügen beim Coden und Herumprobieren mit Subversion.
Sollten bei der Verwendung Fragen oder Probleme auftreten, kann das kostenlose Online-Buch Version Control with Subversion sicherlich wertvolle Dienste leisten.

Donnerstag, 30. Oktober 2008

Toolbox-Item hinzufügen bei installierten Power Commands nicht möglich

Gerade eben wollte ich mir die Chart Controls für das .NET Framework 3.5 anschauen, die Microsoft vor kurzem veröffentlicht hat.
Leider war nach der Installation des Pakets nichts neues im Data-Tab der Toolbox zu finden. Laut Anleitung soll man für diesen Fall die Controls einfach händisch hinzufügen. Als ich das jedoch versuchte, fror mein Visual Studio 2008 einfach ein oder stürzte gar ab. Letzteres erfreulicherweise ohne jede Fehlermeldung.

Nach ein wenig Recherche habe ich tatsächlich herausgefunden, dass das Verhalten durch die installierten Power Commands für Visual Studio 2008 hervorgerufen wird.
Also habe ich diese schnell deinstalliert und siehe da, ich kann wieder Items zur Toolbox hinzufügen.

Sehr schade, dass die Power Commands einen derart negativen Einfluss auf VS2008 haben, denn eigentlich finde ich sie sehr nützlich. Deshalb werde ich sie auch wieder installieren und hoffen, dass ich mich das nächste mal, wenn ich etwas in die Toolbox schieben möchte, daran denke, sie zuvor zu deinstallieren.

Interessant ist im Übrigen auch, dass mein Kollege die Power Commands ebenfalls installiert hat, er jedoch problemlos neue Items in die Toolbox einfügen kann...

Nachtrag:
Ich habe die Power Commands jetzt wieder installiert und erneut versucht, ein Toolboxelement hinzuzufügen. Siehe da, es funktioniert einwandfrei.

Mittwoch, 29. Oktober 2008

Hexadezimaldarstellung eines Strings nach Int32 umrechnen

BBo hat mir eine Aufgabenstellung hingeworfen und wir haben diese dann unterschiedlich gelöst. Es ging darum die Hexadezimaldarstellung eines 2 Byte langen String nach Int32 zu konvertieren. Das war etwas schwieriger als wir dachten. Hier nun meine Lösungsvariante, vielleicht postet BBo ja noch seine ;)

Das Erste was mir durch den Kopf ging ist, dass dies etwas gefährlich ist in Bezug auf das Stringencoding. Denn je nach dem wie der String decodiert wurde, hat man ja je nach Umgebung eine andere Hexadezimalwertdarstellung nach dem Encodieren. Darum habe ich einfach zur Absicherung das Encoding mit eingebaut in meine Lösung. Theoretisch kann man in einer homogenen Welt darauf verzichten, doch meine praktischen Erfahrungen in den letzten Monaten haben mir oft genug die Finger verkokelt. Man kann ja selber mal damit herumspielen und mit unterschiedlichen Encodings die unterschiedlichen Ergebnisse vergleichen...

   1:  // test
   2:  int erg = TwoByteStringHexValueToInt32("Aÿ", System.Text.Encoding.GetEncoding(1252));
   3:  ...
   4:   
   5:  public static int TwoByteStringHexValueToInt32(string input, Encoding encoding)
   6:  {
   7:     if (input.Length != 2)
   8:        throw new ArgumentException("TwoByteStringHexValueToInt32 - parameter input is allowed to be 2 byte long only!");
   9:              
  10:     if (encoding == null)
  11:        encoding = System.Text.Encoding.Default;
  12:   
  13:     int result = 0;
  14:     byte[] ba = encoding.GetBytes(input); // split to byte array of 2
  15:   
  16:     if (System.BitConverter.IsLittleEndian) // when little endian we need to do a workaround
  17:     {
  18:        result = (Convert.ToInt32(ba[0]) << 8) + Convert.ToInt32(ba[1]);
  19:     }
  20:     else
  21:     {
  22:        result = (int)System.BitConverter.ToInt16(ba, 0);
  23:     }
  24:   
  25:     return result;
  26:  }

In Zeile 14 geht es richtig los, da zerleg ich den Input string in ein 2-Byte Array in Abhängigkeit (!) vom Encoding des Strings. 1252 ist das herkömmliche Encoding unter Windows für lateinische Schriftsysteme, u.a. Deutsch. Danach steht also in unserem Byte Array die Hexdarstellung unseres Strings.

Danach mache ich einen kleinen Kunstgriff in Zeile 16, x86 Syteme sind LittleEndian kodiert, Motorola z.B. normalerweise BigEndian. Hier eine kleine Info wenn man damit nichts anfangen kann. Im Klartext, normalerweise rechnet man den Wert in unserem Bytearray wie in Zeile 22 gezeigt um. Mit dem Bitkonverter nach 16Bit Integer, werden 2 Bytes aus dem Bytearray ab der Position 0 gelesen und in Integer umgerechnet (Int32 bräuchte 4 Bytes, darum dieser Umweg).

Und GENAU hier schlägt die Sache mit dem Little/Big Endian System zu! Denn wir haben zuvor oben unseren String eigentlich verkehrt herum abgelegt für unser x86 System!! Denn das rechnet von Hinten nach Vorne Bytedarstellungen nach Integer um!

Daher das Byteshifting in Zeile 18, falls ein Little Endian System vorliegt. Ich greife mir das erste Byte konvertiere es nach Int32 und verschiebe es mal 8 Bits nach "links" (= 1 Byte, wir haben ja 2 Bytes und schieben das Erste sozusagen nach "vorne"), um dann einfach das Ergebnis aus der zweiten Byte Konvertierung dazu addieren.

Nachtrag: Der Rückweg

   1:  public static byte[] Int16ToBigEndianByteArray(short input)
   2:  {
   3:     int higher = input >> 8;     // shift 1 byte -> get higher byte
   4:     int lower  = input & 0x00ff; // mask -> get lower byte
   5:   
   6:     byte[] ba = new byte[2];
   7:     ba[0] = Convert.ToByte(higher);
   8:     ba[1] = Convert.ToByte(lower);
   9:   
  10:     return ba;
  11:  }
  12:   
  13:   
  14:  ...
  15:  // test
  16:  byte[] ba = Int16ToBigEndianByteArray((short)31910);
  17:  string res = System.Text.Encoding.GetEncoding(1252).GetString(ba);

Donnerstag, 16. Oktober 2008

Embedded Ressources und ein bisschen mehr

Dieser Blog entsteht aus einer Handvoll Diskussionen mit BBo über ein paar Tage hinweg. Irgendwie hab ich alle Punkte in ein Beispiel reingestopft bekommen :)

Die Ursprungsfrage drehte sich darum, wie greift man auf eine eingebettete Ressource zur Laufzeit in meiner Assembly zu. Später kamen noch so Sinnesfragen hinzu wozu einen statischen Konstruktor, oder wie stell ich einfach fest ob die Konfiguration von log4net geklappt hat oder nicht,usw.

Zur "embedded resource", als erstes hab ich eine XML angelegt, die einzig die Configurations Daten für Log4Net enthält. Ganz wichtig: unter Properties ist unter Build Action embedded resource auszuwählen, sonst finden wir das nachher nicht:

Der Zugriff selber dann ist in Zeile 29 vom Code zu sehen. Beim auslesen der Ressource erhält man einen ganz normalen Stream, der kann dann wie gewohnt verarbeitet werden, log4net erlaubt uns eine Konfiguration direkt mit dem Stream. In Zeile 24 ist übrigens die Abfrage, ob Log4Net konfiguriert wurde, zu sehen.

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Text;
   4:  using System.Xml;
   5:  using System.IO;
   6:   
   7:  using Threading = System.Threading;
   8:  using Reflection = System.Reflection;
   9:  using L4N = log4net;
  10:   
  11:  namespace StaticLogWrapper
  12:  {
  13:      [Serializable]
  14:      public class Log
  15:      {
  16:          private static readonly L4N.ILog log = L4N.LogManager.GetLogger(typeof(Log));
  17:   
  18:          static Log()
  19:          {
  20:              // try configure the standard way
  21:              L4N.Config.XmlConfigurator.Configure();
  22:   
  23:              // is log4net configured? 
  24:              if (L4N.LogManager.GetRepository().Configured)
  25:                  return; // we are finished
  26:   
  27:              // when not set log4net config from internal setup
  28:              string name = "StaticLogWrapper.Log4NetConfig.xml";
  29:              Stream objStream = Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(name);
  30:              L4N.Config.XmlConfigurator.Configure(objStream);
  31:              objStream.Close();
  32:          }
  33:          
  34:          ...

Montag, 8. September 2008

Microsoft Posters (Bezugsquellen und Links)

Wer kennt sie nicht als Software Entwickler, überall hängen diese schön bunten Poster herum die mal mehr oder weniger sinnvoll Features und Frameworks anschaulich demonstrieren können.

Bei Microsoft kann man einge davon herunterladen. Was ich sehr bedauerlich finde ist, dass ich keine Einstiegsseite auf MSDN kenne, die einem alle Poster zusammenfassend präsentiert. Nun gut, man kann immerhin die Suche bemühen, dennoch bleibt bei mir das Gefühl nicht alle zu erfassen. Natürlich kann man die auch für einen verhältnismäßig günstigen Preis erwerben, z.B. bei Amazon.de wie die das Posterpack für das .NET Framework 2.0, oder auch über Technet (da kann man auch z.B. die Jahresarchiv DVDs des MSDN Magazins ordern).
Empfehlenswert finde ich folgende Poster:
  • Ein Namespace und Type Überblick für das .NET Framework 3.5.
  • Hochinteressant finde ich die PnP (Patterns and Practices) Poster: Smart Client Architektur und der Overview.
  • Für Shortcutfetischisten die C# Keybinding Poster für VS2008 und VS2005 (gibt es auch für Basic und C++. J# und der Rest gehen leider leer aus).
  • Wer mit InfoPath oder Sharepoint entwickelt wird hier fündig, inkl. einer Developer Roadmap für Office 2007.
  • Für BizTalk2006 Entwickler gibts gleich nen ganzen Schwung an Poster, u.a. die Datenbank Struktur inkl. der SQL Jobs und die Runtime Architektur.

Mittwoch, 20. August 2008

StyleCop v4.3 erschienen

Wie ich gerade anhand des Microsoft StyleCop-Blogs erfahren habe, ist die neue Version 4.3 des StyleCop erschienen.

Unter anderem wurden in dieser Version einige Bugs gefixt sowie neue Rules eingefügt. Sehr schön finde ich auch, dass die Definition der einzelnen Rules jetzt wohl im Visual Studio verfübar sein soll. Bis jetzt musste ich immer das WWW durchforsten, wenn ich eine mir unbekannte Rule-Verletzung im Code hatte. Sehr positive Entwicklung.

Zum Download geht es hier. Unter diesem Link steht auch eine Doku zur Verfügung, die ebenfalls die Rules und deren Erklärung enthält.

Montag, 18. August 2008

Microsoft StyleCop

Vor kurzem bin ich wieder einmal über ein sehr nettes Tool gestolpert, das Microsoft den C#-Programmierern zur Verfügung stellt, um die Codequalität zu verbessern, ähnlich dem FxCop. Anders als der angesprochene FxCop analysiert der StyleCop allerdings keine Assemblies sondern den geschriebenen Code direkt im VisualStudio. Auch werden von ihm natürlich andere Themengebiete abgedeckt als vom FxCop.

Hat man den StyleCop hier heruntergeladen und installiert, hat man im VisualStudio im Menü "Extras" ("Tools" in der englischen Version) zwei neue Menüpunkte, mämlich "Run Source Analysis" und "Run Source Analysis (Rescan all)". Die erste Option kann auch durch die Tastenkombination Ctrl + Shift + Y aufgerufen werden. Führt man die Quellcode-Analyse durch, erscheint ein neues Fenster, das die Ergebnise für die Solution enthält.

Hingewiesen wird hier unter anderem auf fehlende Dokumentationskommentare, "falsche" Formatierung und ähnliches. Weiterhin bekommt man eine Meldung, wenn man beispielsweise vergessen hat, einer Klasse explizit einen Zugriffsmodifizierer zuzuweisen, was ja doch schon mal passieren kann, wenn die Klasse sowieso private sein soll.

Interessant finde ich das AddOn hauptsächlich deswegen, weil es einem die Coding-Guidelines, die (zumindest teilweise) bei Microsoft verwendet werden. Ein paar Kleinigkeiten habe ich bereits gelernt, zum Beispiel, dass Using-Direktiven innerhalb eines Namespace gemacht werden und jede Datei einen definierten Header bekommen sollte. Die Sache mit den Using-Direktiven verstehe ich zwar noch nicht wirklich, doch den Grund hierfür werde ich schon noch herausfinden.  Falls da jemand etwas Genaueres sagen kann, so möge er dies doch bitte via Kommentar tun. Header verwende ich natürlich in meinen Sourcefiles, doch nicht in der Form, wie sie der StyleCop verlangt.

Für jeden, der sich für die Optimierung seines Codings interessiert, der möge sich den StyleCop herunterladen und installieren. Bei mir wird er jedenfalls jetzt regelmäßig zum Einsatz kommen.

Nachtrag: Wie ich gerade festgestellt habe, halten sich die von VisualStudio generierten Codedateien selbst nicht an die Vorgabe des StyleCop. Interessant...

Montag, 4. August 2008

PowerCommands für VS2008

Gerade eben bin ich über ein sehr interessantes Projekt bei der MSDN Code Gallery gestolpert: die PowerCommands for Visual Studio 2008.

Dabei handelt es sich um ein Set von nützlichen Erweiterungen, die man - mehr oder weniger - in Visual Studio immer mal wieder vermisst. Beispielsweise erhält man einen Eintrag im Kontext-Menü, der es einem erlaubt, alle geöffneten Projekte zuzuklappen. Natürlich nichts wirklich besonderes, aber bei fünf bis zehn Projekten pro Solution schon sehr angenehm. Für sehr interessant halte ich auch die Möglichkeit, aus einem beliebigen hartkodierten Text eine Konstante zu erstellen. Warum selber bauen, wenn man auch bauen lassen kann?

Das absolute Killer-Feature für mich ist jedoch die Möglichkeit, sowohl die Recent File List als auch die Recent Project List zu leeren. Ich kann es absolut nicht leiden, wenn gerade die Recent Project List vollgestopft ist mit Projekten, die nur angelegt wurden, um "mal eben" etwas zu testen. Wenn das überhand nimmt, weiß ich in Zukunft, was ich zu tun habe!

Mittwoch, 23. Juli 2008

HowTo: Erstellen von Snippets

Gestern habe ich über .NET-Snippets.de berichtet, wo man eine Vielzahl von nützlichen Snippets finden kann. Nun kennt sich vielleicht nicht jeder mit der Thematik Snippets aus und weiß, wie man heruntergeladene Snippets in Visual Studio verfügbar macht. Oder das Posting hat den Ehrgeiz geweckt, eigene Snippets zu erstellen, doch es fehlt das Wissen, wie das zu erledigen ist.

Deshalb kam mir der Gedanke, ein HowTo zu schreiben, wie man Snippets erstellen und in VS einbinden kann. Doch da kam mir ein heutiges Posting in den MSDN-News zuvor. Es trägt den Namen "Codierungs-Turbos in Visual Studio 2008" und behandelt einige Interessante Themen, wie man mit Hilfe von Visual Studio Programmierarbeit schneller erledigen kann. Netterweise ist unter anderem ein kompletter Abschnitt über Snippets mit an Bord. Dieser behandelt wirklich alles rund um Snippets. Ganz so, als hätte Microsoft gerochen, was mir gerade so im Kopf herum geht.

Zu erreichen ist der gesamte Beitrag hier: Codierungshilfsmittel Der Abschnitt über Snippets ist hier zu finden: Erstellen und Verwenden von IntelliSense-Codeausschnitten

Dienstag, 22. Juli 2008

Snippets: .NET-Snippets.de

Eine sehr nützliche Neuerung, die Visual Studio 2005 mit sich brachte, waren die Snippets. Dabei handelt es sich um kleine Codeschnipsel, die auf einfache Art und Weise in den Code eingefügt werden können.Beispielsweise ergibt die Eingabe von f-o-r-TAB-TAB  eine fertige for-Schleife. Die Werte, die angepasst werden müssen (in diesem Fall Indexer und Grenzwert) sind als Felder hervorgehoben und können via Tab sehr einfach angesprungen und verändert werden. Nach Abschluss der Anpassungen reicht ein Tippen auf Enter und die For-Schleife ist fertig (natürlich ohne die interne Logik... ).

Inzwischen benutze ich auch zum Einfügen unseres Firmen-Headers ein Snippet. Das spart mir pro Datei ca. 20 Zeilen "Handschreiben" und dem entsprechend auch Zeit.

Eine ausgesprochen gute Quelle für Snippets aller Art ist die Seite .NET-Snippets.de, die kurz nach Veröffentlichung von Visual Studio 2005 ans Netz ging. Das System von .NET-Snippets.de ist es, dass die angemeldeten Benutzer eigene Snippets hochladen und veröffentlichen können. Weiterhin kann jeder Nutzer jedes Snippet kommentieren und kostenlos herunterladen. Doch nicht nur aufgrund der reinen Fülle an Snippets, die zur Verfügung stehen, ist .NET-Snippets.de immer mal wieder einen Blick wert. Schon des Öfteren habe ich dort sehr schöne Lösungen für alltägliche Probleme gefunden.

Ich kann nur jedem .NET-Entwickler empfehlen, sich hier anzumelden, sich einmal durch die Snippets zu "wühlen" und auch gerne eigene Snippets zu veröffentlichen. Anreize gibt es ab und an mal durch Snippet-Contests, bei denen die bestbewerteten Snippets (respektive deren Ersteller) mit Preisen belohnt werden.

Dienstag, 15. Juli 2008

Webcast: Neuerungen im SP1 für .NET3.5 & VS2008

Am heutigen Dienstag ist ein Webcast erschienen, der sich mit den Neuerungen und Änderungen  in .NET 3.5 und Visual Studio 2008 beschäftigt, die durch das Service Pack 1 Einzug halten werden. Als Vorbereitung auf den Release ist dies mit Sicherheit eine sehr interessante Sache und für jeden Entwickler, der mit der Technologie bzw. dem Tool arbeitet, ein Muss, um vorbereitet zu sein.

Über die Qualität kann ich bisher leider noch nichts sagen, da ich mir den Webcast noch nicht angeschaut habe. Da er aber von Dariusz Parys abgehalten wird, kann er eigentlich nur sehr gut und informativ sein. Unbedingt anschauen!

Zu beziehen ist der Webcast (mit gültigem Live-Account) hier: https://www.microsoft.com/germany/msdn/webcasts/library.aspx?id=1032382740

Skype-AddIn für Visual Studio 2005 / 2008

Ein weiterer Schritt in Richtung "Ich geh nie wieder aus meinem VS raus" ist gemacht: Der thailändische Entwickler Keng Pongsathon hat ein AddIn für Visual Studio geschrieben, welches Skype in unser aller Lieblingsspielzeug einbindet. Dieses ist auf Codeplex verfügbar: http://www.codeplex.com/SkypeStudio/

Über Sinn und Unsinn dieses AddIns kann man jetzt diskutieren. Meine Reaktion war eher in Richtung "Wozu", die eines anderen Teilnehmers an diesem Blog ein schlichtes "Goil". Da sollte sich wohl jeder selbst seine Meinung bilden.

Gefunden habe ich das AddIn im Übrigen über den deutschen MSDN Blog.

Dienstag, 6. Mai 2008

Sara Ford's VS 2008 Tipp of the day

Eine sehr interessante Sache sind die Tipps of the day für Visual Studio in der 2008er Version, die Sara Ford in ihrem Blog tagtäglich veröffentlicht. Da stolpert man mit Sicherheit über viele sehr nützliche Dinge, an die man im Traum nicht gedacht hätte.

Vielen Dank für den Tipp an Dariusz Parys.

Montag, 28. April 2008

S# oder wie GENIAL ist das denn?

Absoluter Zufall das ich darauf gestoßen bin... das mußte ich gleich in unserem Blog verewigen

Script# oder S# ist ein C# nach JavaScript "Konverter", die Idee is einfach genial umgesetzt 8-)
Man entwickelt in C# gegen ein Interface und bekommt am Ende JavaScript...

Das Projekt kann man von Codeplex beziehen: http://www.codeplex.com/scriptsharp

Eine kurze Einführung gibt es vom Entwickler selbst hier:
http://www.nikhilk.net/ScriptSharpIntro.aspx


Update 25.08.2008: Das Projekt ist nun unter http://www.codeplex.com/scriptdotnet zu erreichen.

Dienstag, 22. April 2008

I've joined the Dark Side!

Ja, in der Tat, ich bin heute auf die Dunkle Seite gewechselt, bin jetzt ein Dunkler Entwickler! Aber langsam, von was rede ich da eigentlich? Dunkle Seite von was? Die Dunkle Seite von Visual Studio natürlich!

Wer jetzt keine Ahnung hat, wovon ich rede, hat in letzter Zeit die diversen Blogs bekannter .Net-Entwickler nicht aufmerksam gelesen. Ab in die Ecke dafür! Aber ich will mal nicht so sein und euch verraten, um was es geht. Vor nicht all zu langer Zeit ging es durch die Weiten des Webs, einige Entwickler, die tagtäglich mit Visual Studio arbeiten, wollten sich nicht mehr mit der Standard-Oberfläche abgeben und taten etwas dagegen. Beteiligt waren daran mit Sicherheit Entwickler, die des öfteren in Stunden programmieren, in denen die natürliche Beleuchtung ausgefallen ist und die Ersatzbeleuchtung den Augen viel zu grell. Richtig, ich rede von der Nacht. Das Weiß des standardmäßigen Hintergrunds von Visual Studio hat in eben jenen Stunden den großen Nachteil, sehr grell zu sein und die Augen über kurz oder lang zu ermüden. Daher bestand die Lösung der findigen Entwickler darin, eine Konfiguration für Visual Studio zu erstellen, die die Augen weniger fordert, die Dark Side of Visual Studio war geboren.

Wenn man sich diesen Blog (zumindest im aktuellen Layout, wer weiß, was die Zukunft bringt...) anschaut, fällt einem auf, dass auch hier alles ziemlich dunkel gehalten ist. Da lag es also nahe, dass auch ich mich der Dunklen Seite verschrieb. Die erste Anlaufstelle dafür ist die Website die auffordert: JOIN THE DARK SIDE OF VISUAL STUDIO. Genau hier gibt es die Settings herunter zu laden, die einen auf die dunkle Seite der Programmierung ziehen wollen - allerdings nur für Visual Studio 2008. Die entsprechenden Settings für Visual Studio 2003 (VORSICHT: hier wird ein spezielles Styler-AddIn benötigt!) und 2005 gibt es in diesem Blog zum Download.

Da wahrscheinlich nicht jedem sofort klar ist, wie man diese Settings jetzt in sein Visual Studio bekommt, folgt jetzt eine kleine Anleitung.

Zuerst mal wird das herunter geladene ZIP-File entpackt. Anschließend öffnet man das Studio. Hier geht es weiter mit einem Klick auf Extras --> Einstellungen importieren und exportieren...

1

Im darauf folgenden Assistenten wird der RadioButton vor Ausgewählte Umgebungseinstellungen importieren aktiviert.

2

Ein Klick auf Weiter und es präsentiert sich eine Auswahl, die vorschlägt, die aktuellen Settings vor dem Laden der neuen zu sichern. Das halte ich persönlich für absolut sinnvoll, denn was ist, wenn man nicht für die Dunkle Seite gemacht ist? Ok, es gibt eine Option zum Zurücksetzen der Settings, aber dann ist alles wieder wirklich Standard. An dieser Stelle sollte jeder selbst entscheiden, wie er verfahren möchte. Wie auch immer die Entscheidung ausgefallen ist, nach einem Klick auf Weiter erscheint ein Fenster, in dem einige bereits bekannte Settings zum Import zur Auswahl stehen. Die von uns gewünschten sind hier jedoch nicht vorhanden. Da hilft ein Klick auf den Button Durchsuchen. Hat man dann das Setting gefunden, das man verwenden will, geht es Weiter.

3

Es erscheint nochmal eine Abfrage, die zur Wahl der zu importierenden Einstellungen auffordert. Hier kann man einfach auf Fertig stellen klicken.

4

Anschließend denkt Visual Studio ein wenig darüber nach, was ihm da jetzt angetan wurde, fügt sich jedoch schlussendlich doch folgsam in sein Schicksal und meldet dies auch netterweise mit der Meldung Importvorgang abgeschlossen. Braves kleines Ding.

Wird jetzt ein Projekt geöffnet, müsste das ganze in etwa so aussehen:

5

Welcome to the Dark Side!

Mir persönlich ist die Schrift um Längen zu groß, doch das stellt zum Glück kein großes Problem dar. Will man die Schriftgröße verändern, navigiert man zu Extras --> Optionen..., woraufhin sich der Optionen-Dialog öffnet. Hier wird der Punkt Umgebung erweitert und auf den Unterpunkt Schriftarten und Farben geklickt. Auf der rechten Seite kann jetzt die Schriftgröße reguliert werden, welche nach einem Klick auf OK auch prompt angewendet wird.

Damit sind auch schon alle Arbeiten abgeschlossen. Das Endergebnis kann sich sehen lassen, wie ich denke. Eventuell fällt jetzt etwas Eingewöhnungszeit an, schließlich sind die meisten von uns die Standard-Settings doch sehr gewohnt. Ich selbst habe mich erst heute der Dunklen Seite verschrieben, weshalb ich noch keine wirklichen Erfahrungen damit gemacht habe. Jedoch denke ich, dass mein Studio den Rest seiner Tage auf der Dunklen Seite verbringen wird. Eventuell konnte ich ja den ein oder anderen animieren, sich auch mal auf die Dunkle Seite zu wagen, die Gefahren sind dank Sicherung der vorherigen Settings ja durchaus gering. Falls auch der werte Leser sich in das Dunkel gewagt hat, wünsche ich ihm das, was auch die offizielle Seite des "Projekts" wünscht:

May the dark side of Visual Studio be with you!

Noch ein kleiner Nachtrag: Das hier gezeigte Setting eignet sich auch hervorragend für eine Präsentation, wie ich live miterleben durfte.