Blog Home  Home Feed your aggregator (RSS 2.0)  
artiso Blog - Wednesday, May 07, 2008
Neues rund um's Thema .Net
 
 Wednesday, May 07, 2008

Microsoft ist ja ein Meister darin, das Thema Lizenzierung zu einer WIssenschaft zu machen und inzwischen gibt es wohl Leute, die ihr Geld damit verdienen, Firmen durch den Lizenz-Dschungel von MS zu führen. Für alle, die Fragen bezgl. der Lizenzierung von Visual Studio Team System 2008 haben, sei dieses Dokument empfohlen. Fragen dazu aber bitte nicht an mich ;-)

Download details: Visual Studio Team System Licensing

Wednesday, May 07, 2008 4:56:09 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Monday, May 05, 2008

Alex beschreibt in seinem Artiekel eine sehr elegante Möglichkeit, wie man vermeiden kann, dass bei Continous Integration Checkins durch den Build einen erneuten Build auslösen.

Team Foundation Server 2008 mit AssemblyVersion Task - rekursive Builds vermeiden

Monday, May 05, 2008 7:23:37 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, May 01, 2008

Die Videos zu den Sessions vom Launch-Event in Frankfurt im Februar sind jetzt für alle frei verfügbar.

Ich hatte ja die Möglichkeit, am Ende einer Session von Christian Binder kurz vorzustellen, wie wir den TFS in unserem Entwicklungsprozess nutzen.

Das Video kann man hier abrufen. Mein Einsatz beginnt dann ab der Minute 54. Mein Video, das ich in dem Vortrag nutze, kann hier heruntergeladen werden.
War echt ne coole Sache vor mehr als 500 Leuten zu reden.

image

Visual Studio 2008 Team System 2008 - {Überblick}

Thursday, May 01, 2008 1:48:48 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Welche Funktion finde ich in welcher Edition von Visual Studio? Wie unterscheiden sich VS Standard und VS Professional? Wann brauche ich eine Team Edition?

Fragen wie diese beantwortet die Visual Studio Product Comparison.

Visual Studio 2008 Product Comparison

Thursday, May 01, 2008 12:04:12 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Wednesday, April 30, 2008

Beim Checkin in den TFS können beim Checkin Workitems verknüpft werden. Hier können standardäßig zwei verschiedene Chck-In Actions ausgewählt werden. Associate verknüpft den Checkin nur mit dem Workitem währen Resolve das Workitem auf geschlossen setzt. Vor allem wenn man Workuiems mit größerem Umfang plant, kann es vorkommen, dass man als Default-Einstellung Associate haben möchte statt Resolve. Leider funktioniert das nicht so. Einen Workaround stellt Martin Woodward vor. Mit seiner Methode wird Resolved einfach aus den Check-In Actions entfernt und damit Associate automatisch als Default-Wert verwendet. Der Nachteil bei dieser Lösung: Man muss die Workitems außerhalb des Checkin-Prozesses auf Resolved setzen. Das ist nicht besonders schön, aber momentan leider die einzige Möglichkeit das Standard-Verhalten zu ändern.

A bug with the Resolve and Associate actions displayed.  Resolve is the default. 

Martin Woodward: TFS Top Tip #3: Removing the Resolve Check-In Action from a Work Item

Wednesday, April 30, 2008 11:31:52 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Oft hat man einen bestimmten Ordner, auf den man of zugreifen muss. Hier ist mir nun ein Feature von Vista aufgefallen (gab es wohl auch schon in früheren Windows-Versionen, aber da habe ich das gar nicht bemerkt). Man kann Toolbars einrichten und diese einfach oben, rechts oder links am Desktop andocken. Mit der AutoHide-Funktion benötigen die Toolbars auch keinen unnötigen Platz. Ein nettes Feature, das ich bei meinen Vorträgen gut gebrauchen kann.

Das Video zeigt, wie's gemacht wird.

Wednesday, April 30, 2008 7:58:27 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, April 29, 2008

Auch wenn das unter dem Gesichtspunkt Traceability äußerst problematisch ist, gibt es im TFS 2008 die Möglichkeit Workitems zu löschen - ein Feature das oftmals gefordert wurde. Dazu benötigt man die TFS Powertools. Danach kann man mit folgendem Befehl ein Workitem löschen:

tfpt destroywi /server:sartfsx01 /workitemID:8719

Tuesday, April 29, 2008 9:27:44 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [1]    | 
 Monday, April 28, 2008

In Kürze wird wohl das SP1 zum Team Foundation Server als Beta veröffentlich. Brian Harry beschreibt schon mal ein paar Fetures auf di wir uns freuen dürfen.

bharry's WebLog : Team Foundation Server 2008 SP1 Preview

Monday, April 28, 2008 11:37:00 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, April 24, 2008

Ich war in den letzten Tagen auf der TeamConf 2008 in München. Es war sehr schön zu sehen, dass Team System inzwischen recht gut etabliert. Es gab auf dieser Konferenz eine ganze Reihe von Praxisberichten die darstellten, welche Erfahrungen Anwender bereits mit Team System gesammelt haben. Und es war sehr interessant, mit vielen Leuten aus dem ALM-Umfeld zu diskutieren. Ein persönliches Highlight war für mich, ein Treffen mit Sam Guckenheimer, Group Product Planner bei Microsoft, der sich unseren WorkitemManager angesehen hat und mit dem ich einige Ideen diskutieren konnte.

P1010021

Ich habe auf der TeamConf einen Vortrag zu Programmierung mit dem TFS API am Beispiel einer hierarchsichen Workitem-Organisation gehalten.

Thursday, April 24, 2008 11:57:49 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [4]    | 

Mit dem Team Foundation Server Power Tools March 2008 gibt es ein cooles Features, Workitem Templates. Haben Sie sich nicht schon mal geärgert, dass Sie beim Anlegen eines Bugs immer den Namen des gleichen Entwicklers eingeben müssen oder dass sie immer die aktuelle Iteration auswählen müssen? Genau hier helfen Workitem-Templates weiter. Und das geht so:

Nach der Installation der Power Tools gibt es im Team Explorer eine neuen Knoten "Work Item Templates". Hier können neue Templates angelegt werden.

image

Für jeden Workitem-Typ können beliebig viele Templates angelegt werden. Hier können nun die gewünschten Felder vorbelegt werden.

image

Auf Basis dieses Templates kann nun ein neues Workitem erstellt werden (Rechter Mausklick auf das Template) oder auf ein bestehendes Template angewandt werden.

image

Weitere Informationen finden sich in der

oder auf dem Blog von Brian Harry

Thursday, April 24, 2008 11:34:36 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, April 22, 2008

MSDN Webcasts

Zusammen mit Christian Binder habe ich einen MSDN Webcast zum Thema UI-Testing mit dem UI Automation Framework erstellt. Der Webcast zeigt, wie man mit dem UI Automation Framework Anwendungen aus einer anderen Anwendung heraus steuern kann. Diese Methode eignet sich sehr gut um z.B. Unit-Tests zu erstellen, die die Oberfläche einer Anwendung testen. Damit lassen sich Oberflächentests sehr schön automatisieren. Und das beste ist, dass UI Automation Framework ist Bestandteil des .Net Framework 3.0 und damit kostenlos.

Download des Webcasts

Tuesday, April 22, 2008 10:28:00 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [2]    |   | 
 Monday, April 21, 2008

Gerade hatte ich eine vermeintlich Fragestellung. ich wollte einfach nur wissen, wieviel Platz auf einem Laufwerk im Netzwerk noch frei ist. Das hat sich aber als problematischer herausgestellt als gedacht, da ich nur eine Freigabe auf dem Laufwerk hatte. Das ist wohl gar nicht so einfach, damit herauszufinden, wieviel Platz auf der entsprechenden Platte noch frei ist. Erst über die gute alte Command-Shell und den dir-Befehl hat das geklappt. Damit wird der freie Plattenplatz problemlos angezeigt.

Na ja, es scheint manchmal wirklich so, dass früher einiges besser war ;-)

image

Monday, April 21, 2008 8:45:50 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [2]    | 
 Thursday, April 17, 2008

Möchte man aus Anwendungen wie z.B. Word auf Dokumente auf einem SharePoint Portal zugreifen. kann man dies sowohl über einen UNC-Pfad (\\ServerName\sites\SiteName) oder über eine URL (http://ServerName/sites/SiteName) zugrifen. Nöch schöner wäre allerdings, wenn man eine direkte Verknüpfung hätte, die auch im Browse-Fenster der Anwendungen genutzt werden kann. Wie man eine solche Verknüpfung einrichtet, zeige ich im folgenden Video:

Thursday, April 17, 2008 9:48:02 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Sunday, April 13, 2008

Jens Häupel beschreibt in einem Blog-Eintrag, wie man per ClickOnce Setup DateiTypen mit seiner Anwendung verknüpfen kann. Klasse, dass das nun endlich funktioniert. Danke für den Artikel Jens.

File Extension per ClickOnce mit Anwendung assoziieren

Sunday, April 13, 2008 11:16:09 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Die PowerCommands for Visual Studio 2008 sind jetzt in der Version 1.1 veröffentlicht worden und bieten in dieser neuen Version einige neue Funktionen. Bei den PowertCommends for Visual Studio 2008 handelt es sich um eine kostenlose Sammlung von nützlichen Erweiterungen für die Visual Studio IDE. Einen Überblick über die Funktionen bietet dieses Dokument. Da hat es viele Sachen dabei, die sicher schon jeder beim Arbeiten mit Visual Studio 2008 vermisst hat.

PowerCommands for Visual Studio 2008 - Home

Sunday, April 13, 2008 1:48:05 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Der AfterLaunch Event in Köln war eine sehr gute Veranstaltung und sehr professionell organisiert. Für die lächerliche Teilnahmegebühr von nur 8,-- € haben die Teilnehmer hochkarätige Vorträge rund um die 2008er Launch-Produkte von Microsoft erhalten. Großer Wert wurde dabei auf den Praxisbezug der Vorträge gelegt. Auch ich war dabei und hatte zwei Sessions zum Einsatz des Team Foundation Servers 2008 in der Praxis. Leider hatte ich etwas mit dem Beamer zu kämpfen, ich hoffe aber dass die Teilnehmer dennoch einige Tipps zum Einsatz des TFS mitnehmen konnte und ich den einen oder anderen animieren konnte dieses Tool nun doch einmal zu installieren und sich näher damit zu beschäftigen.

P1010005 P1010011

Sunday, April 13, 2008 12:22:50 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [1]    | 
 Saturday, April 12, 2008

.NET Developer Group Braunschweig Logo

Am Donnerstag, 10.04 war ich zu Gast bei der Usergroup Braunschweig und habe dort den Vortrag zum Thema Qualitätsmanagement mit Visual Studio Team System 2008 und Team Foundation Server gehalten. Der Vortrag war für mich sehr interessant, da es eine rege Beteiligung und viele Fragen durch die Teilnehmer gab.

Vielen Dank an Lars für die Einladung.

Folien zum Vortrag

Beispielcode zum Vortrag

Saturday, April 12, 2008 11:10:04 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Wednesday, April 09, 2008

Wenn man aus Visual Studio einen Web-Test startet und diese Meldung bekommt, muss man die Bowser-Extensions im IE enablen.

 image

Hierzu im IE unter Internetoptionen auf dem Reiter Advanced die Option "Enable third-party browser extensions" aktivieren. Dann kann der Web Test Recorder im IE ausgeführt werden.

image

Wednesday, April 09, 2008 9:41:35 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [1]    | 

image

Ich halte momentan eine Vorleseung bei der Berufsakademie Heidenheim mit dem Titel "Implementierung verteilter Anwendungen auf Basis von Microsoft .NET". Im Zentrum dabei steht natürlich WCF. Hier nun die Folien und das WCF-Demo vom ersten Tag. Die Demos der beiden folgenden Termine werde ich hier auch noch veröffentlichen.

Folien (Powerpoint 2007)

Folien (PDF)
Code

Wednesday, April 09, 2008 1:29:33 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, April 08, 2008

Habe gerade die neue Infragistics Netadvantage Suite 2008.1 intalliert. Bei der Installation der ASP-Komponenten muss man allerdings eine kleine Einstellung machen, sonst erhält mein einen "Fatal error".

Erst wenn man in den Windows Features die IIS6 Management Compatibility aktiviert hat, klappt die Installation

image

Tuesday, April 08, 2008 10:30:23 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Zusammen mit meinem Kollegen Mark werde ich am 22.04.08 bei der UG München den Vortrag zum Thema Qualitätsmanagement mit VSTS nachholen.

Thema des Vortrags:

Dass Qualitätsmanagement heute ein fester Bestandteil eines modernen Entwicklungsprozesses sein sollte, ist inzwischen - zumindest in der Theorie – keine Frage mehr. Die Wirklichkeit ist aber leider immer noch sehr häufig eine andere. Woran liegt das? Terminstress, sich ändernde Anforderungen im Projektverlauf und in vielen Fällen ein erheblicher bürokratischer Overhead bei der Ausführung von QM vereitelt erfolgreich, die definierten Maßnahmen auch zu leben.
Die Test-Tools von Visual Studio hat wohl schon fast jeder einmal gesehen, evtl. auch genutzt. Entscheidend beim Einsatz dieser Tools ist aber die Integration in den Gesamtprozess. So besteht ein erfolgreiches QM nicht nur aus Tests, sondern auch Requirementmanagement, Releasemanagement, Testability und andere Aspekte spielen hierbei eine wichtige Rolle. Die Kunst besteht darin, diese verschiedenen Aspekte über den Gesamtprozess miteinander zu verbinden. Wie dieses Ziel mit VSTS und TFS erreicht werden kann, zeigt der Vortrag.
Die ideale Zielgruppe für diesen Vortrag sind: Entwickler, Qualitätsmanager, Testexperten und IT-Entscheider mit der Bereitschaft, sich auch das ein oder andere Prozessdetail live anzusehen.

 

Weitere Details finden sich hier

Tuesday, April 08, 2008 5:00:21 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |  |   | 

Mit der Versionsverwaltung im Team Foundation Server kann man ja bekannter maßen nicht nur Code verwalten, sondern auch andere Dateien wie z.B. SQL-Skripte, Dokumentationen etc. Hierzu ist es sinnvoll, entsprechende Ordner anzulegen. Doch das will manchmal nicht recht gelingen. Will man unterhalb dem Root eines Projektes einen neuen Ordner anlegen, kann es vorkommen, dass der Button dazu disabled ist.

image

Der Grund dafür ist einfach (wenn man's weiß). Ein Blick in den Workspace verdeutlicht das Problem.

image

Hier sieht man, dass im Workspace ein Mapping für den Unterordner "Benutzerverwaltung" eingerichtet ist. Da die Versionsverwaltung alle Operationen, also auch das Anlegen eines neuen Ordners aber auf dem lokalen Pfad ausführen muss, tritt hier ein Problem auf. Die Anwendung weiß nicht, wo sie den Ordner lokal anlegen soll. Abhilfe schafft hier, wenn man das Mapping auf der Projkektebene einstellt, also so:

image

Alternativ kann man natürlich auch ein separates Mapping für den Root-Ordner des Projektes einrichten. Jetzt kann der Ordner lokal einem gültigen Pfad zugeordnet werden und der Button ist auch wieder enabled.

Tuesday, April 08, 2008 2:40:22 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Monday, April 07, 2008

In loser Folge schreibe ich über besonders gute oder schlechte Bücher an dieser Stelle. Nun habe ich vor Kurzem das Buch ScharePoint & Co gelesen und finde dieses Buch durchaus empfehlenswert. Gleich vorneweg, das Buch enthält keine Informationen, wie man für SharePoint Web-Parts entwickelt. Es war für mich als Entwickler aber dennoch sehr interessant, weil es sehr gut die verschiedenen Einsatzmöglichkeiten von SharePoint in Zusammenarbeit mit anderen Office-Anwendungen beschreibt. Es wird anhand verschiedener praxisorientierter Beispiele gezeigt wie man Daten in Excel- oder Access-Tabellen innerhalb von SharePoint nutzt, wie man auf der SharePoint Plattform Kommunikation effizient gestaltet, z.B. mit dem Exchange-Server oder Groove, wie man InfoPath-Formulare nutzt und wie man mit dem SQL-Server Business Intelligence realisiert.

Das Buch hat mir die eine oder andere Möglichkeit aufgezeigt, die ich bisher noch nicht kannte und wo ich früher vielleicht erst mal selbst ein WebPart oder eine andere Lösung geschrieben hätte. Das Buch hat mir verdeutlicht, dass SharePoint mehr kann, als ich bisher wusste. Das gibt mir die Möglichkeit, unser Portal um Funktionen zu erweitern, die bisher wegen zu viel Aufwand einfach außen vor geblieben sind.

Aus meiner Sicht ein absolut empfehlenswertes Buch, auch für Entwickler.

SharePoint & Co. - Technologien und Tools im Teamwork von MindBusiness und HanseVision erschienen bei Microsoft-Press

Monday, April 07, 2008 7:26:37 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Sunday, April 06, 2008

Es gibt eine aktualisierte Dokumentation für die API zum Team Build hier zum Download:

http://download.microsoft.com/download/5/f/8/5f872c2e-4221-410b-b86e-4c3cd831b0c4/Team Foundation Build Managed Reference.chm

Achtung die Datei muss auf der lokalen Platte gespeichert und dann über rechte Maustaste / Properties mit Hilfe des Unblock-Buttons entsperrt werden bevor sie korrekt angezeigt wird.

Sunday, April 06, 2008 12:38:11 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Friday, April 04, 2008

Über das PropertyGrid-Control habe ich ja mehrmals gebloggt (z.B. hier). Dieses Control verwendie ich recht häufig um z.B. den Inhalt eigene Konfigurations-Klassen zu editieren. Zusammen mit der XML-Serialisierung lassen sich so sehr flexible Konfigurationsmöglichkeiten schaffen.

Nun hatte ich die Anforderung eine dynamische Datenstruktur an ein PropertyGrid zu binden. Da stand ich zunächst vor einem Problem. Bisher habe ich nur Objekte mit Properties unterschiedlicher Typen an das PropertyGrid gebunden. Nun habe ich eine Liste von Objekten, die die Elemente im PropertyGrid beschreiben. Wie aber diese an das PropertyGrid binden?

Das schöne ist, das das PropertyGrid sich hier als sehr flexibel erweist. Man muss folgende Schritte durchführen:

  1. Man brauch eine Klasse für ein einzelnes Property
  2. Dann brauchen wir eine Collection für diese Properties. Diese leiten wir von CollectionBase und ICustomTypeDescriptor ab und implementieren die Interfaces. Entscheidend ist hier die Methode GetProperties. Hier werden nun ine PropertyDescriptionCollection aus unseren Properties aufgebaut. Diese Methode ruft das PropertyGrid auf um sich dieProperties zu besorgen, die es rendern soll. Hier können wir nun also von einer belibigen Datenstruktur die benötigten
    Informationen für das PropertyGrid aufbauen.
  3. Dafür brauch wir jetzt noch einen cCustomPropertyDescriptor. Diesen leiten wir von PropertyDescriptor ab und implementieren es.
  4. Nun können wir unsere Properties aufbauen und an das PropertyGrid binden. Ich habe das CustomPropertyGrid als eigenes Control angelegt. Der Code ist nun sehr simpel:
   1: private void Form1_Load(object sender, EventArgs e)
   2: {
   3:     cPropertyCollection props = new cPropertyCollection();
   4:     props.Add(new cPropertyItem("BoolValue", "This is a boolean value", false, true, "Properties"));
   5:     props.Add(new cPropertyItem("StringValue", "This is a string value", false, "Test123", "Properties"));
   6:     props.Add(new cPropertyItem("Folder", "Path for folder", false, "", "Path"));
   7:  
   8:     this.artisoPropertyGrid1.SelectedObject = props;
   9: }


Damit erhält man folgendes Ergebnis. Man sieht die dynamisch angelegten Properties mit ihrem Name, in die Kategorien untergliedert und mit der Beschreibung. Das PropertyGrid wählt automatisch die gewohnten Controls abhängig vom Datentyp aus.

image

Dis ist schon ganz nett. Ich möchte aber für das Folder-Property einen entsprechenden Editor angeben können. Bei statischen Klassen vrwendet man einfach Attribute, aber bei dynamischen? Dazu wird die verfügbare Dokumentation sehr, sehr dünn. Hierzu haben wir auf der Property-Klasse eine Attribute-Arary. Diese Attribute können wir nun in der GetProperties-Klasse an den cCostomPropertyDescriptor übergeben. Der Aufbau der Properties sieht dann so aus:

   1: private void Form1_Load(object sender, EventArgs e)
   2: {
   3:     cPropertyCollection props = new cPropertyCollection();
   4:     props.Add(new cPropertyItem("BoolValue", "This is a boolean value", false, true, "Properties"));
   5:     props.Add(new cPropertyItem("StringValue", "This is a string value", false, "Test123", "Properties"));
   6:     props.Add(new cPropertyItem("Folder", "Path for folder", false, "", "Path",
   7:         new TypeConverterAttribute(),
   8:         new EditorAttribute(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(System.Drawing.Design.UITypeEditor))));
   9:  
  10:     this.artisoPropertyGrid1.SelectedObject = props;
  11: }

 

Nun kann man im Feld für den Wert für das Property "Folder" auf einen Button klicken und erhält einen Dialog zur Auswahl eines Verzeichnisses.

image

Friday, April 04, 2008 11:17:09 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Bei der Neuinstallation eines Entwicklungsrechners dauert es immer ewig, bis man sich die ganzen nützlichen Helferlein zusammengesucht hat, die man im Laufe der Zeit zu schätzen gelernt hat. Deshalb habe ich mir gedacht, ich schreibe mir mal eine Liste, die ich dann immer wieder ergänzen kann. Und vielleicht ist für den einen oder anderen da auch noch was interessantes dabei.