Blog Home  Home Feed your aggregator (RSS 2.0)  
artiso Blog - Sunday, October 05, 2008
Neues rund um's Thema .Net
 
 Sunday, October 05, 2008

Ich hatte gerade das Problem, dass in einem Feld in der Datenbank Einträge wie z.B. "Thomas, Schissler" standen und ich die in "Schissler, Thomas" ändern wollte. Hier hilft folgendes kleines Skript:

select CASE LEN(ResponsibleName) 
            WHEN 0 THEN ResponsibleName 
            ELSE SUBSTRING(ResponsibleName, charindex ( ',', ResponsibleName )+2, len(ResponsibleName))
                 + ', ' 
                 + SUBSTRING(ResponsibleName, 1, charindex ( ',', ResponsibleName )-1) 
            END 
from data
Sunday, October 05, 2008 10:48:07 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

In einem früheren Beitrag habe ich beschrieben, wie man kleinere Listen mit LINQ effizien speichern kann. Hierzu verwende ich einfach ein XML-Feld in der entsprechenden Tabelle und lege die Liste dann dort als XML-Serialisierung ab. Nun stand ich vor der Herausforderung, dass ich direkt auf der Datenbank dieses Feld abfragen wollte. Glücklicherweise beitet T-SQL eine sehr gute XML-Unterstützung, unglücklicherweise gibt es eine vielzahl von Techniken dies zu tun und die Treffer meiner Internetrecherche waren sehr unübersichtlich. Deshalb hier nochmals kurz zusammengefasst, wie ich das gelöst habe.

Ich habe in einem Feld folgenden XML-Inhalt der ein Dictionary mit 5 Einträgen repräsentiert:

<Root>
  <item>
    <key>
      <int>1</int>
    </key>
    <value>
      <decimal>17.00</decimal>
    </value>
  </item>
  <item>
    <key>
      <int>2</int>
    </key>
    <value>
      <decimal>17.81</decimal>
    </value>
  </item>
  <item>
    <key>
      <int>3</int>
    </key>
    <value>
      <decimal>18.62</decimal>
    </value>
  </item>
  <item>
    <key>
      <int>4</int>
    </key>
    <value>
      <decimal>19.43</decimal>
    </value>
  </item>
  <item>
    <key>
      <int>5</int>
    </key>
    <value>
      <decimal>20.24</decimal>
    </value>
  </item>
</Root>

 

Die Struktur der XML-Daten ist bei allen Datensätzen gleich. Nun wollte ich diese Werte in 5 separaten Spalten ausgeben um diese einfachin Excel weiterverarbeiten zu können. Das macht folgendes Skript:

SELECT   PackSIzeID, Units,
    u1.l.value('decimal[1]','Decimal(18,2)') AS UnitsYear1,
    u1.l.value('decimal[1]','Decimal(18,2)') AS UnitsYear2,
    u1.l.value('decimal[1]','Decimal(18,2)') AS UnitsYear3,
    u1.l.value('decimal[1]','Decimal(18,2)') AS UnitsYear4,
    u1.l.value('decimal[1]','Decimal(18,2)') AS UnitsYear5
FROM  data_PackSizes 
CROSS APPLY Units.nodes('//Root/item[1]/value') u1(l)
CROSS APPLY Units.nodes('//Root/item[2]/value') u2(l)
CROSS APPLY Units.nodes('//Root/item[3]/value') u3(l)
CROSS APPLY Units.nodes('//Root/item[4]/value') u4(l)
CROSS APPLY Units.nodes('//Root/item[5]/value') u5(l)


Hier kann ich die 5 values als separate Nodes adressieren und dann in der Feldliste entsprechend auswählen. Das Ergebnis sieht dann so aus:
image

Vielleicht geht das auch noch eleganter, aber für mich hat's erst mal funktioniert und deshalb habe ich hier erst mal nicht mehr Zeit investiert.

Weitere Infos zum Thema:

SQL XML-Workshop von Jacob Sebastian

Technet-Whitepapaer: XML Best Practices for Microsoft SQL Server 2005

Sunday, October 05, 2008 10:29:54 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, October 02, 2008

Die nächste Version der TFS Power-Tools werden ein paar richtig coole Features enthalten sein.

Z.B. ein neuer Knoten "Team Members" im Team Explorer über den man mit allen Team-Mitglieder kommunizieren kann und worüber man auch z.B. schnell die Pending Changes oder die Shelfsets einzelner Mitglieder findet etc.

imageimage

Zusätzlich lassen sich damit Komponenten wie z.B. Checkin-Policies oder Workitem-Controls einfach distributieren.

image

Und von vielen heiß ersehnt, es gibt jetzt eine Windows Explorer Integration zur Quellcode-verwaltung.

imageimage

Darüber hinaus ist noch der Power-Shell Support Bestandteil der neuen Power-Tools

Weitere Details unter Brian Harrys Blog

bharry's WebLog : Preview of the next TFS Power Tools release

Thursday, October 02, 2008 1:49:18 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Wednesday, October 01, 2008

Ok, OK, ich weiß, ich bin spät dran, aber ich möchte dennoch nicht versäumen, einen kurzen Rückblick auf den Herbstcampus zu tun und meine Folien zu veröffentlichen.

Interessant war für mich an der Veranstaltung, dass es Tracks sowohl für JAVA als auch .Net gab. Ich selbst hatte zwei Talks:

Qualitätsmanagement mit VSTS und TFS
In dieser Session habe ich zunächst einmal beleuchtet, warum Entwickler QM nicht unbedingt mögen. Einer der Gründe liegt in der mangelnden Integration von QM in den Entwicklungsprozess. Gerade hier bietet VSTS und TFS einige Verbesserungen. Wichtig ist, dass QM nicht erst mit dem Testing beginnt, sondern bereits früh im Prozess ansetzen muss. Ohne ein gutes Requirement-Management wird kein gutes Qualitäts-Management möglich sein. Im Vortrag habe ich demonstriert, welche Methoden mit diesem Toolset über die verschiedenen Prozessphasen zur Verfügung stehen um in Software-Projekten wirklich mehr Qualität zu erzielen.

Agile Development Process - Ein Architektur-basierter Entwicklungsprozess

Architektur und Prozesse werden meist getrennt betrachtet. Dass aber gerade eine gemeinsame Betrachtung dieser beiden Themen viele Vorteile bringt, habe ich versucht in dieser Session zu vermitteln. Im Kern ging es darum, dass verschiedene Prozesse wie z.B. das UI Driven Development erst durch eine passende Architektur ermöglicht wird. Sehr gut fand ich auch die Diskussion am Ende meines Vortrags. Das versprochene Whitepaper zu diesem Vortrag wird noch nachgereicht.

Wednesday, October 01, 2008 9:10:06 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, September 30, 2008

SharePoint veröffentlicht die Dokumentbibliotheken per WebDAV, d.h. man kann über \\<Servername>\sites\<ProjektName> beispielsweise auf die Dokumente eines TFS-Projektes zugreifen. Das funktioniert standardmäßig aber nicht von einem Windows 2003 Server aus. Hier muss der WebDAV Client zuerst aktiviert werden. Hierzu muss der Dienst "WebClient" gestartet werden.

image

Tuesday, September 30, 2008 11:58:45 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Monday, September 29, 2008

Ab dem 01.10.2008 werden Besitzer einer Visual Studio 2008 Team System Development Edition auch eine Visual Studio 2008 Team System Database Edition erhalten und umgekehrt. In Visual Studio 2010 werden diese beiden Produkte wohl zu einem verschmolzen.

Weitere Informationen unter Visual Studio 2010 and .NET Framework 4.0 Overview im Kapitel "Better Together – Visual Studio Team System Development Edition and Database Edition"

Monday, September 29, 2008 11:12:01 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

image

Am 08.10.2008 haben wir Stefan Lieser zu Gast bei der .Net Developer-Group Ulm. Er wird in seinem Vortrag einige "Software Design Principles" vorstellen und erläutern wie diese helfen, Software wartbarer wird.

Mitglieder und Gäste sind herzlich eingeladen. Weitere Infos unter http://www.dotnet-ulm.de/Treffen.aspx

Monday, September 29, 2008 9:40:14 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Wenn vom Team Explorer die Versionen 2005 und 2008 auf einem Rechner installiert werden, kann es bei der Office-Integration zu Problemen kommen die mit dem Fehler TF80076 quittiert werden. Wie man dieses beheben kann beschreibt dieser Artikel.

TFS Excel integration fails with error TF80076 - after installing 2008 Team Explorer

Monday, September 29, 2008 9:24:37 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, September 25, 2008

Vom 19.11 bis zum 21.11.2008 findet in Berlin der Technical Summit statt. Neben einem Überblick über die aktuellen Microsoft Entwicklungstechnologien könenn sie sich hier auch über die wichtigsten Trends auf der DC informieren.

Ich bin auf dem Technical Summit als Sprecher und als ATE vertreten sein. Meine Vortragsthemen:

  • Durchgängige Entwicklungsprozesse mit Visual Studio Team System
  • Qualitätsmanagement mit VSTS und TFS
  •  

    Offizieller ATE @ Microsoft Technical Summit 2008: Treffen Sie mich in den Ask the Experts-Sessions!

    Thursday, September 25, 2008 7:19:14 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

    Eine neue User-Group die sich speziell mit Team System beschäftigt wurde vor kurzem gegründet. Dabei handelt es sich um eine virtuelle usergroup, das heißt die Treffen finden in Second Life und über Office Live Meeting statt. Ich bin schon mal gespannt auf das nächste Treffen.

    Team System User Group - Virtual Edition

    Thursday, September 25, 2008 12:34:36 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

    In inzwischen über 47 Videos werden in dieser Serie HowTos rund um das Thema Visual Studio Team System präsentiert. Kurz und verständlich bekommt man hier viele BestPractices und Tips.

    "How Do I?" Videos for Team System

    Thursday, September 25, 2008 12:23:15 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
     Wednesday, September 24, 2008

    Es ist wohl noch eine weile hin, bis wir Rosario wirklich nutzen dürfen. Brian Harry hat aber schon mal vorab veröffentlicht, welche Systemvoraussetzungen und Abhängigkeiten Rosario haben wird. So werden wohl unter anderem auch SQL 2005 und Office 2003 nicht mehr unterstützt. Dies gibt jetzt bereits die Möglichkeit, rechtzeitig zu planen und sich auf die Anforderungen ggf. entsprechend vorzubereiten.

    bharry's WebLog : Charting a course for TFS "Rosario"

    Wednesday, September 24, 2008 11:26:01 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

    Der Team Foundation Server bietet die flexible Möglichkeit ProcessTemplates individuell anzupassen. Diese ProcessTemplates enthalten die Definition der Workitemtypes (welche gibt es und welche Felder haben diese), die Workflows (was passiert wenn ich bei einem bestimmten Workitem eine bestimmte Aktion auslöse), und vieles mehr wie Standarddokumente etc.

    Dieses ProcessTemplate kann man nicht nur im Vorfeld definieren, sondern auch für laufende Projekte noch anpassen, was in der Praxis eine enorme Hilfe ist. Wie's genau geht beschreibt Christian Binder in einem zweiteiligen Blog-Beitrag.

    Teil 1
    Teil 2

    Wednesday, September 24, 2008 1:34:49 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
     Tuesday, September 02, 2008

    Richard Hundhausen hat eine Liste mit Tools und nützlichen Helferlein rund um Team Foundation Server veröffentlicht. 

    Team System Widgets

    Tuesday, September 02, 2008 10:55:23 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
     Monday, August 25, 2008

    am 08.09.2008 findet bei der .Net Developergroup Ulm ein 'Cool Tipps' Wettbewerb statt. Idee hinter diesem Wettbrewerb ist, einen stärkeren Austausch innerhalb der Community zu erreichen. Mit diesem besonderen Event wollen wir auch das 2-jähriges Bestehen unserer Usergroup und hoffentlich auch das 200. Mitglied feiern.

    Jeder Entwickler hat seine kleinen Tricks um bestimmte Aufgaben schnell, effizient und elegant zu erledigen.
    Unser Ziel ist ein Austausch dieses Wissens. Aus diesem Grunde wollen wir am 08. September einen ganz besonderen Wettbewerb veranstalten. Die Mitglieder der .net Developergroup Ulm sind aufgerufen, ihr Knoff-Hoff in einer Kurzpräsentation vorzustellen. Das vorgestellte Thema kann aus einem weiten Bereich gewählt werden. Egal ob es sich um ein Code-Snippet handelt, um ein Tool, eine spezielle Methode oder ein Designpattern. Alles was mit der .Net Programmierung zu tun hat ist von Interesse. Und jeder Teilnehmer kann wertvolle Sachpreise gewinnen. Mitmachen lohnt sich!

    Hier die Rahmenbedingungen für den Wettbewerb:

    • Teilnahmeberechtigt sind alle Mitglieder der .net Developergroup Ulm 
    • Jeder Teilnehmer erhält 10 Min. für seinen Beitrag 
    • Alle Beiträge müssen in einem Zusammenhang mit der Programmierung unter .Net stehen. 
    • Die Besucher der Veranstaltung wählen am Ende die besten Beiträge, die mit wertvollen Sachpreisen belohnt werden. 
    • Themenvorschläge sind bis spätestens 31.08. per E-Mail einzureichen unter info@dotnet-ulm.de

    Sachpreise:

    • 1 Enterprise Studio-Lizenz (Wert 1100$) von
    LogoComponentOne
    • 2 RadControl-Lizenzen (Wert je 1299$) von
    logo_telerik
    • 1 ReSharper-Lizenz (Wert 140€) von
    logo_jetbrains
    • 3 Jahres Abos (Wert je 76,50€)von
    dotnetmaglogo
    • 5 Buchgutscheine (a 60 €) von
    logo_mspress

    Bereits angemeldet Themen:

    • Lokalisiertes Property-Grid 
    • Vista Gadgets programmieren 
    • Broadcast Messages mit Controls 
    • Zeitspar-Tools für TFS 
    • Object Cloner 
    • Data Sets per WCF übertragen 
    • PDF- und Excel-Export aus ASP.Net mit Bordmitteln 
    • Generische Fehlerklasse
    • Beliebige Datenformate per Serialisierung erzeugen und lesen

    Wer noch Interesse hat, am Wettbewerb teilzunehmen, kann gerne noch einen Vortrag an info@dotnet-ulm.de einrichen. Und natürlich sind alle interessierten gerne als Zuhörer willkommen. Und vielleicht schaffen wir es ja doch noch bis zum 08.09 die fehlenden 7 Mitglieder zu gewinnen, um die 200 voll zumachen.

    Monday, August 25, 2008 7:22:19 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
     Sunday, August 17, 2008

    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. Also so könnte ein Entwicklungsrechner aussehen:

    Betriebsystem / Standardanwendungen:

    • Windows Vista Ultimate
    • Office 2007
    • SQL-Server 2005 Express
    • SQL-Server 2005 Management Studio

    Entwicklungsumgebung:

    Tools

    Stand 30.10.2008
    To be continued...

    Sunday, August 17, 2008 9:28:47 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
     Wednesday, August 13, 2008

    Wer eine Visual Studio 2008 Standard Edition oder höher sein Eigen nennt, kann sich jetzt kostenlos einen Icon-Editor herunterladen.

    image

    Axialis Software - IconWorkshop™ Lite Download

    Wednesday, August 13, 2008 11:58:04 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

    Seit kurzem ist der TFS Administration Guide zum Download bereitgestellt. Der Guid beschreibt viele Aspekte der Administration des TFS über Berechtigungsverwaltung, Anpassung von Workitemtypen und Process-Templates Backup und vieles mehr.

    Download details: Administration Guide for Team Foundation Server

    Wednesday, August 13, 2008 11:48:10 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
     Tuesday, August 12, 2008

    Über das Erscheinen des .Net Framework 3.5 SP1 haben ja bereits genügen Leute berichtet, da muss ich jetzt nicht noch einen draufsetzen. Wer möchte, kann sich den recht ausführlichen Blog-Beitrag von Dariusz anschauen.

    Ich habe natürlich auch sofort das SP installiert. Die letzten 3 Std. habe ich damit zugebrach einen Fehler zu finden. Und was soll ich sagen, das Problem liegt am SP.

    Folgende Situation. Ich arbeite an einem Projekt, das intensiv ASP.Net AJAX nutzt. Dort habe ich an verschiedenen Stellen die Übergabe von Daten aus dem CodeBehind an Javascript. Diese löse ich, indem ich im Code behind folgenden Code verwende:

    ScriptManager scriptManager = ScriptManager.GetCurrent(Page);
    scriptManager.RegisterDataItem(this, "StringToTransfer");

    In Javascript kann ich dann auf diese Werte zugreifen:

    function EndRequestHandler(sender, args) {
        if (sender._dataItems != null) {
            if (sender._dataItems.__Page != null) {
                if (sender._dataItems.__Page == 'StringToTransfer') {
                    fnShowSizedPopup('../../Web/Search/CopyProducts.aspx', 500, 400);
                }
            }
        }
    }

    Das hat bisher problemlos funktioniert. Nach der Installation des SP1 war allerdings sender._dataItems immer null. Nachdem ich das SP1 deinstalliert habe, funktioniert es wieder wunderbar. Na ich werde jetzt wohl erst mal ohne SP1 leben und mir bei Gelegenheit mal anschauen, wie ich das Problem umgehe. Oder hat vielleicht jemand eine Idee, woran das liegen könnte?

     

    Nachtrag:

    Dank Hannes habe ich eine Lösung gefunden. Im obigen Beispiel muss man sender._dataItems mit args.get_dataItems() ersetzen, dann klappt's auch mit dem SP1

    Tuesday, August 12, 2008 4:38:28 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
     Thursday, July 24, 2008

    MSDN Webcasts

    Zusammen mit Christian Binder habe ich nun einen MSDN Webcast aufgenommen der sich mit dem Thema UI Events und Record & Play für UI Testing beschäftigt. Dieser Webcast ist als Fortsetzung zum Thema UI Testing mit dem UI Automation Framework aufgebaut. Der Webcast selbst wird als Download ab dem 08.08.08 (cooles Datum) verfügbar sein. Den Demo_Code zum Webcast kann man ab sofort hier runterladen.

    Kurz hier der Inhalt des Webcasts zusammengefasst.

    Über das UI Automation Framework kann man Events aus einer Anwendung abfangen. Diese Events kann man zunächst am besten mit dem UISpy untersuchen. Nun kann man einen kleinen Recorder erstellen, der diese Events nutzt, um Benutzereingaben in einer Anwendung zu erkennen und automatisiert Code erstellt, der diese Benutzereingaben simuliert. Dieser Code kann nun in einem Unit-Test genutzt werden um automatisiert im Rahmen eines Testdurchlaufes die Benutzerinteraktion zu wiederholen. Der Clou dabei ist, dass sogar die Asserts für die erwarteten Ergebnisse automatisiert aufgezeichnet werden können.

     

    Download Demo-Code 

    Download Webcast

    Thursday, July 24, 2008 9:18:50 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |