Welcome to MSDN Blogs Sign in | Join | Help

Visual Studio Extensibility Event am 26 Mai

wer einen Überblick zu den Erweiterungsmöglichkeiten von Visual Studio sucht, sollte sich dieses Event nicht entgehen lassen. Bauen Sie z.B. Ihre Application auf Basis der Visual Studio Shell.
Inhaltlich werden folgende Themen von Ken Levy, Program Manager Visual Studio, behandelt:

  • Visual Studio Shell
  • Visual Studio SDK
  • Erweiterung von Visual Studio wie
    • Packages,
    • Add-Ins,
    • Makros und
    • Visualizer

    Anmeldung hier 

    Hinweis: Die Veranstalltung ist in Englischer Sprache und es gibt maximal 20 Plätze.

    Chris

    Posted by CBinder | 0 Comments

    UI Automatisierung in Team Build integrieren

    Im Webcast UI Automation Framework haben wir prinzipiel aufgezeigt, wie man ein UITest für eine Winforms Anwendung mit Hilfe des UI Automation Frameworks erstellen kann und wie diese in einen UnitTest integriert werden können.

    Im folgendem möchte ich aufzeigen wie man einen solchen UI-UnitTest in Team Build integrieren kann.
    Was ist zu tun?

    UITest benötigen eine "Interactive Session", wir müssen also einen Interactive Build Agent definieren und den Build Service entsprechend für einen Interactive Port konfigurieren. Die notwendigen Schritte sind unter folgendem Link beschrieben.  

    Danach kann man den Build Agent konfigurieren (mit dem Interactive Port):

    image

     

    Bevor man Builds mit diesem Agent ausführen kann, muss der Interactive Build Service auf dem
    BuildServer gestartet werden. Für UI-Tests ist es erforderlich, dass ein Account angemeldet ist
    und in diesem Kontext der Interactive BuildService gestartet wurde. Ich habe dies mit einem
    Batch automatisiert:

    StartInteractiveBuildService.bat

    runas /user:TFSBUILD /savecred "cmd /k \"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\TFSbuildservice.exe\""

    image

     

    Nun kann eine Build Definition erstellt werden, welche den BuildAgent verwendet.


    Eine Hürde gilt es aber noch zu nehmen, für die es aber je nach Anforderung unterschiedliche Lösungsansätze gibt.
    Der Unit-Test muss das UI automatisch starten/schliessen. Im Prinzip sehr einfach, allerdings liegt das im Build erzeugte UI-image in Abhängigkeit von verschiedenen Parametern in unterschiedlichen Pfaden. Die Abhängigkeiten sind z.B. Desktop Build oder Team Build, Debug Build oder Release Build,. In allen Fällen ergibt sich ein anderer Pfad zum Image.

    Beispiel:

    Desktop Build: "BasePath\Calc\bin\Debug\calc.exe"
    Team Build: "BasePath\Binaries\Debug\calc.exe"  

    wobei der BasePath auch unterschiedlich ist, aber im Test Kontext verfügbar ist.

    Ich habe mir für dieses Beispiel ein Anforderungsrahmen gegeben:
    - keine Änderung der Default Build-Pfade
    - der UnitTest soll das Image immer Starten/Beenden, ob DesktopBuild oder TeamBuild
    - es wird Debug- und Release Build-Konfiguration unterstützt


    Nun zu den Details.
    Die Demo Solution enthält 3 Projekte:
    - Calc (das UI-Image, welches getestet werden soll)
    - UIDriverLib (Wrapper für das UI-Automation Framework, ich empfehle den  White Wrapper zu verwenden)
    - UIDruverLibTests(enthält die Unit-tests)

    Der Fokus liegt auf der TestClass im UIDruverLibTests, welche 2 UnitTests enthält. Test1 ist ein nativer UI Test, der keinen Wrapper verwendet. Test2 verwendet den Wrapper. Details hierzu finden Sie im Webcast.

    Um die oben beschriebene Hürde zu nehmen, habe ich die Logik zum Starten in die Region InitHelper gepackt. Das Beenden des Images muss im [TestCleanup()] durchgeführt werden, um sicherzustellen, dass keine UI's auf dem BuildServer verbleiben.
     

    image 

    Die InitHelper Region enthält mehrere Helper Methods. Im Unit-Test verwende ich nur InitUIImage(). um das Image zu starten, die anderen Methoden sind Helper für InitUIImage().

    image

    Da ich im UnitTest einige Parameter benötige, um den  Pfad für das UIImage zu erstellen, habe ich mich entschieden die wichtigsten Parameter nicht direkt im Test als Konstanten zu definieren, sondern diese als zusätzliche Test-Properties abzulegen und somit im UI zugänglich zu machen:

    image

    Mit GetCustomProperties lese ich diese Properties dann aus. GetImagePath enthält dann die Logik den Pfad in Abhängigkeit aller Parameter zu erstellen. StartUIImage startet dann das Image.

    Auf diese Weise kann ich den UI Unit-Test auf dem Desktop oder als TeamBuild, als Release oder Debug ausführen.

    Das Beispiel ist reiner Demo code, was man auch an den Sleep's sieht (sonst gehts einfach zu schell). Dennoch hoffe ich, die ein oder andere Idee gegeben zu haben, UI-Automation als Teil des Build Prozesses zu implementieren. In Prodcution das entsprechende Exception Handling nicht vergessen!

     

    Ausblick:  Coded UI-tests sind schon jetzt im aktuellen Rosario CTP 12 enhalten :-)

    image

    Mit der Option den code aus einem Recording erstellen zu lassen:

    image

    Viel Spass

    Chris

    Posted by CBinder | 0 Comments

    Videos vom Launch 2008 in Frankfurt sind verfügbar :-)

    Wer der den einen oder anderen Talk verpasst hat, kann das jetzt nachhohlen.

    Get it here

     

    Chris

    Posted by CBinder | 0 Comments

    UI Automation Framework - UI Tests automatisieren

    auf Grund der Nachfrage habe ich mit Thomas Schissler ein Webcast zum Thema
    UI Automatisierung gemacht, der schon Heute live ist (war nicht geplannt).

    Wer das UI Automation Framework im .Net Framework noch nicht kennt, sollte sich diesen
    Webcast nicht entgehen lassen.

    Da diese Woche TeamConf, werde ich es leider nicht mehr schaffen, die TFS Build Integration
    zu bloggen.  Werde ich aber nächste Woche machen :-)

    Download hier

    Chris

    Posted by CBinder | 1 Comments

    Team System goes Community

    Ist Team System nur was für grosse Team's?
    Nein, sicher nicht! Aber wenn ich das erzähle, ist es ja von Microsoft :-)

    Daher freut es mich zu sehen, dass in der .NET Community ein wachsendes Interesse
    besteht. Lasst Euch von der Community berichten, wie man mit TFS Software entwickeln
    kann. Was gut ist und wo man noch ein wenig API coding benötigt.

    Von Anwendern für Anwender!

    Also ab zu Talk der .Net User Group München. Mehr Infos hier.

    Chris

    Posted by CBinder | 1 Comments

    Launch 2008 - Welche Sprachversion des Team Foundation Servers installieren?

    Die Teilnehmer der Launch-Veranstaltung in Frankfurt konnten bei der kostenlosen Software zwischen der englischen und der deutschen Sprachversionen wählen.

    Da beim Visual Studio Team System 2008 Team Foundation Server (TFS) ein nachträgliches Wechseln der Sprache speziell von deutsch auf englisch technisch nicht möglich ist (siehe auch Plan Language Blog Eintrag), sollte vor der Installation die Sprach-Entscheidung getroffen werden. Neben der Oberfläche sind auch die Projektinhalte von der Sprache betroffen.

    Wenn Sie auf der Launch-Veranstaltung eine deutsche Version des TFS gewählt haben, können Sie trotzdem die englische Version installieren.

    Bitte gehen Sie dabei wie folgt vor:

    (1) Laden Sie die englische TFS Trial Version herunter und installieren Sie diese komplett. Diese finden Sie hier: http://msdn2.microsoft.com/de-de/vstudio/aa700831.aspx

    (2) Anschließend die Installation erneut aufrufen (über die Windows-Systemsteuerung), die Option „TRIAL aktivieren“ steht direkt im ersten Dialog zur Verfügung.

    (3) Den Key der deutschen TFS-Version aus dem Launch Kit eingeben und damit die englische Version des TFS aktivieren.

    Ein ausführlichere Beschreibung finden Sie auch auf Brian Harry´s Blog unter:
    http://blogs.msdn.com/bharry/archive/2008/01/15/how-to-i-upg...

     

    Chris

    Posted by CBinder | 1 Comments

    VS2008 C++ Feature Pack RTM verfügbar!

    Das VS2008 C++ Feature Pack ist nun als RTM verfügbar!

    Download

    Und wer gleich noch wissen möchte, was alles Neues dabei ist, kann am 17.4 in Bad Homburg an unseren C++ Feature Pack Launch kostenfrei teilnehmen.

    Boris Jabes Program Manager im C++ Team wird Sprecher sein. 

    Schneller kann man sich kein Überblick verschaffen!

    Anmeldung hier.

    Go do :-)

    Chris

    Posted by CBinder | 0 Comments

    TeamConf 2008

    am 22-24 April 2008 findet die TeamConf2008 in München statt.

    http://www.teamconf.de/

    Auch ich werde mit folgenden Vortägen am Start sein :-)

    Wie nutzt Microsoft VSTS? Am Beispiel der Produktentwicklung der MS Developer Division.

    Erhalten Sie ein Einblick wie das notwendige Project Management umgesetzt wurde.  Welche Quality Gates verwendet werden. Welche Probleme wir hatten. Nehmen Sie die eine oder andere Anregung für Ihren Entwicklungsprozess mit

    NEXT: Microsoft VSTS code name „Rosario“

    Lernen Sie die nächste VSTS Generation kennen! Erhalten Sie ein Überblick, was die nächste VSTS Generation mitbringen wird. Sehen Sie einige der Neuerungen des aktuellen CTP’s

    VSTS Web und Load-Testing Möglichkeiten mit VSTS 2008

    Mit Oliver Hilgers, einem unserer Development Consultants mit viel praktischer Erfahrung in diesem Bereich, werde ich zeigen, was man so alles mit VSTS Webtests und Loadtests machen kann. Auch werden wir den Prozess Performance Testing in Bezug auf Webtests genauer beleuchten.

    Auch sollten Sie Thomas Schisslers Vortrag Implementierung einer hierarchischen Workitem-Organisation mit Hilfe der TFS API nicht verpassen!

    Allso es lohnt sich:-)

    Chris

    Posted by CBinder | 0 Comments
    Filed under:

    Community-Veranstaltung zum Thema C++ in Visual Studio 2008

    Am 17. April bieten wir für die C++-Entwickler-Gemeinschaft eine dreistündige Veranstaltung zum Thema C++ in Visual Studio 2008 und dem VS2008 Feature Pack für C++ in Frankfurt/Main. Wir haben zwei Program Manager aus der Product Group eingeladen und sie werden folgende Themen vortragen.

    Der Vortrag wird in Englisch gehalten werden.

    Top-Themen der Veranstaltung:

    1. What's new in Visual Studio 2008
      • walkthrough new C++ features
      • VSTS for C++ developers
    2. A deeper look into the VS2008 Feature Pack for C++
      • demo of improvements to MFC
      • the value of TR1
    3. A brief glimpse into the future of Visual C++
      • highlights from what we're building for the next version of C++

    Fast Facts:

     

    Speaker:

     

    Boris Jabes is a program manager on the Visual C++ team. He is responsible for improving the IDE experience for C++ developers with a focus on furthering the quality of source editing, understanding, and analysis. Recently, he's been concentrating on making the IDE scale to multi-million line source bases. Before joining Microsoft, Boris obtained degrees from the University of Waterloo and Carnegie Mellon where he specialized in distributed systems and software engineering.

     

    Blog:

    http://blogs.msdn.com/borisj

    Die Teilnahme an der Veranstaltung ist kostenfrei. Melden Sie sich am besten gleich für die Veranstaltung per E-Mail an!

    Anmeldung hier.

    Chris

    Posted by CBinder | 1 Comments
    Filed under:

    Wie inkrementiere ich meine Assembly Versionen automatisch mit TFS2008 ?

    Letztes Jahr hatte ich dieses Thema für TFS2005 hier behandelt.
    Mit TFS2008 hat sich aber in MSBuild einiges geändert, so dass man kleinere Änderungen vornehmen muss, um den Pattern auch mit TFS 2008 nativ verwenden zu können.

    Hintergrund ist, dass die ColumnName class deprecated wurde, welche das von mir verwendete Field BuildNumber bereitgestellt hat:

    [ObsoleteAttribute("This class has been deprecated. Please remove all references.")]
    public static class ColumnName

    Im TFSBuild.proj muss man den GetBuildPropertiesTask verwenden, um an die BuildNumber zu kommen.
    Hier ein Snip mit den nötigen Änderungen, die das TFSBuild.proj File aus dem oben referenzierten Eintrag ergänzen:


    <Target Name="CheckSettingsForEndToEndIteration">

    <!--for 2008 use the GetBuildProperties Task to get the BuildNumber -->
        <GetBuildProperties TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)">
          <Output TaskParameter="BuildNumber" PropertyName="BuildNumber"></Output>
        </GetBuildProperties>

    <!--  extract the BuildRevision -->
        <ExtractRevisionTask BuildNumber="$(BuildNumber)">
          <Output TaskParameter="BuildRevision" PropertyName="BuildRevision" />
        </ExtractRevisionTask>

    <!--  update the AssemblyInfo Props -->
        <CreateProperty Value="$(BuildRevision)">
          <Output TaskParameter="Value" PropertyName="AssemblyRevision"/>
        </CreateProperty>
        <CreateProperty Value="$(BuildRevision)">
          <Output TaskParameter="Value" PropertyName="AssemblyFileRevision"/>
        </CreateProperty>

    <!--  just needed if you populate the AssemblyDescription  too like in the sample  -->
        <CreateProperty Value="$(BuildNumber)">
          <Output TaskParameter="Value" PropertyName="AssemblyDescription"/>
        </CreateProperty>

    </Target>

    Das wars damit funktioniert es auch mit TFS2008.

    Viel Spass

    Chris

     

     
    Posted by CBinder | 2 Comments
    Filed under:

    UI Testing mit dem .Net Framework 3.0

    Im .Net Framework 3.0 ist eine Library mitgekommen, die UI Testing ermöglicht!
    Jo, da hab ich allerdings ganz schön gepennt.......

    Ein Whitepaper dazu findet Ihr Hier
    Das Thema werden wir natürlich weiter aufgreifen.

    Viel Spass
    Chris

    PS: Und ein ganz grosses Danke an Mark und Thomas von Artiso.

    Posted by CBinder | 1 Comments

    Team System: Neuer Rekord auf dem Launch in Frankfurt!

    Danke an alle, die meine Sessions besucht haben! In meinen 3 Team System Sessions waren immerhin >1800 Teilnehmer und das Feedback war einfach super.

    Das absolute Highlight, möchte ich auch allen, die keine Chance hatten auf den Launch zu kommen, nicht vorenthalten :-)

    Sehen Sie in 10min, wie Sie mit Team System und dem Workitem Manager - dank hierarchischer Baumstruktur, intellegenter Statusaggergation und flexibler Spezifikationsverwaltung Ihr Projekt aufsetzen und durchführen.

    Das Video zum Artiso Workitem Manager finden Sie unter folgendem vorläufigem Link.

    Hier

    PS: Danke an Thomas und Luka, für diese absolut gelungene Team System Erweiterung !!

    Chris

    Posted by CBinder | 1 Comments
    Filed under:

    TFS 2008 auf Windows 2008?

    Geht.

    Hauptproblem ist WSS, das mit W2008 mitkommt und zum Zeitpunkt von TFS2008 RTM noch nicht 100% fertig war.  Zum aktuellen Zeitpunkt gibt es hier ein Install Guide, der die ersten
    Hürden einfacher macht.

    Das VSTS Team arbeitet an einer offiziellen Version...

    Chris

    Posted by CBinder | 1 Comments

    Hierarchische Workitems In VSTS2008

    Zu diesem Thema hatte ich schon mal was geschrieben und auf einen Webcast verwiesen.

    Artiso hat jetzt den auf http://www.artiso.com  für den Workitem Manager ein eigenen Bereich eingestellt. Zusätzlich wird es ein Migrations Tool geben, welches den Transfer von WI zwischen Projekten inkl. der Link informationen geben...  :-)

    Für alle, die auf die Unterstützung von Hierarchischen WI angewiesen sind ist meine Empfehlung: Auf Rosario warten lohnt nicht.... oder haben Sie mehr als 1 Jahr Urlaub?

    Hier Screenshoots vom Workitem Manager und dem Word-Plug-in:

    image

    Projekt Integration zur Plannung auf Basis von Entwicklungs Iterationen:


    image

    WordPlug-In zur Erstellung der Specification auf Basis von Mini-Docs, welche direkt auf dem Sharpoint verwaltet und mit dem  WI gelinkt werden:

    image

    Auf Bedarf kann die gesamte Specification erstellt werden... nice :-)

    image

    Mehr unter http://www.artiso.com 

    Chris

    Posted by CBinder | 1 Comments
    More Posts Next page »
     
    Page view tracker