Blog Home  Home Feed your aggregator (RSS 2.0)  
artiso Blog - Saturday, January 27, 2007
Neues rund um's Thema .Net
 
 Saturday, January 27, 2007

Die Workitems von Team System lassen sich ja einfach in Excel abfragen und bearbeiten. Jedoch war ich mit den angeboteten Spalten nicht zufrieden. Man kann zwar über einen entsprechenden Button noch beliebige weitere Spalten abrufen, das aber jedesmal zu tun war dann doch ein wenig nervig. Nach einigem Suchen habe ich dann die Lösung gefunden. Man muss sich einfach eine eigene Query anlegen und dort die gewünschten Spalten definieren. Wenn man nun über diese Query die Workitems in Excel abfragt, kommen genau die Spalten, die in der Query definiert sind.

Saturday, January 27, 2007 9:35:19 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Sunday, January 14, 2007

Mit OleDB lassen sich sehr einfach Excel-Dateien lesen. Man macht sich einen Connectionstring der ungefähr so aussieht:

Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ExcelFileName & ";Extended Properties='Excel 8.0;HDR=No;"

Nun kann man eine ganz normale Connection öffnen und wie gewohnt z.B. über ein Select-Statement ein DataSet befüllen.

Dim conn As OleDbConnection = New OleDbConnection(connectionString)
conn.Open()
Dim dt As DataTable = New DataTable()
Dim oleDbDataAdapter As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM [Tabelle1]", conn)
oleDbDataAdapter.Fill(dt)
oleDbDataAdapter.Dispose()
oleDbDataAdapter =
Nothing
conn.Close()

Das Problem ist dabei, wenn in Excel z.B. Integer und Textwerte in einer Spalte gemischt stehen und die Integerwerte dabei überwiegen, wird diese Spalte als Integer angelegt und die Textwerte stehen im Dataset dann als NULL. Das kann man umgehen, wenn man am Connectionstring den Parameter IMEX=1 anhängt. Damit wird ein "ImportMixedTypes"-Mode aktiviert, der gemischte Spalten immer als Text interpretiert.

Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Me.tbImportdatei.Text & ";Extended Properties='Excel 8.0;HDR=No;IMEX=1'"

Das Problem bei der ganzen Sache ist nur, dass nun standardmäßig die ersten 8 Zeilen geprüft werden. Sind diese alle Integers, wird die Saplte auch als Integer definiert, auch wenn weiter unten noch Textwerte kommen. Man findet hier an verschiedenen Stellen den Hinweis auf einen weiteren Parameter MaxScanRows. Dieser scheint aber nicht zu funktionieren, wie man auch aus diesem MSDN-Artikel ersehen kann. Statt dessen muss man die Einstellung in der Registry vornehmen, wenn man eine andere Anzahl prüfen möchte. Hierzu passt man im Zweig

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

 

den Parameter TypeGuessRows an. Dieser Wert kann auf 1-16 Zeilen eingestellt werden. Ein Wert von 0 bedeutet dass die ersten 16384 Zeilen geprüft werden, um festzustellen, ob der mixed Mode verwendet werden muss oder ob der Datentyp eindeutig bestimmt werden kann. Dass das eigentlich keine saubere Lösung ist, ist klar. Wer will schon seinen Kunden zumuten, in der Registry rumzupfuschen? Aber es scheint im Moment keine bessere Lösung zu geben.

HDR=No bedeutet im obigen Fall übrigens, dass die Excel-Datei keine Header-Zeile hat.

Sunday, January 14, 2007 4:23:55 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Friday, January 05, 2007

Team Foundation Sidekicks ist eine Sammlung von Tools, die verschiedene Aufgaben bei Nutzung und Verwaltung von Team Foundation Server erleichtern. Unter anderem wird eine vereinfachte Verwaltung von Labels angeboten:

Link to Team Foundation Sidekicks

Friday, January 05, 2007 2:31:06 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Dieser Artikel beschreibt wie man über ein Add-In Funktionen für den Team Build und die Quellcode-Verwaltung programmieren kann.

Link to Attrice Corporation Team Foundation Sidekicks

Friday, January 05, 2007 2:25:46 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Mit diesem Tool kann man WorkItems von einem Team Projekt in ein anderes verschieben.

Link to Team Foundation Server Work Item Utility: Home

Friday, January 05, 2007 2:12:43 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Lars Keller berichtet über das Tool IEeee, das es ermöglicht, direkt aus dem IE einen Fehlerbericht mit detailierten Informationen als WorkItem im Team System Server anzulegen. Das Tool dürfte vor allem für Tester sehr interesant sein.

Link to IEeee: Home

Friday, January 05, 2007 2:09:27 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Crum for Team System ist ein kostenloses add-in für Visual Studio Team System, das agile Entwicklungsmethoden nach Scrum unterstützt. 

Link to Scrum for Team System

Friday, January 05, 2007 1:56:04 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Um einen Label auf einer WinForm per Code einfach fett zu machen, funktioniert leider folgende Methode nicht:

TitleLbl.Font.Bold = true;

Statt dessen kann man aber folgenden Code verwenden:

TitleLbl.Font = new Font(TitleLbl.Font, FontStyle.Bold);

Friday, January 05, 2007 10:17:40 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, January 04, 2007

WorkItems für den Team Foundation Server lassen sich einfach per Code erstellen.

TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("tfs-test");

WorkItemStore store = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));

WorkItemType wiType = store.Projects[0].WorkItemTypes[1];

WorkItem newWI = new WorkItem(wiType);

newWI.Title = "Title";

newWI.Save();

Für den Code müssen noch folgende Namespaces referenziert und eingebunden werden:

using Microsoft.TeamFoundation;

using Microsoft.TeamFoundation.Client;

using Microsoft.TeamFoundation.WorkItemTracking.Client;

Dazu muss das Visual Studio SDK installiert sein.

Zu beachten ist, dass die Angaben für die Eigenschaften des WorkItems sprachspezifisch sind. Auf einem deutschen Server wird folgender Code nicht laufen:

newWI.State = "Active";

Auf dem deutschen Server muss das dann heissen:

newWI.State = "Aktiv";

Unschöner zu lesen, aber dafür sprachunabhängig ist die Verwendung von IDs.

Um übrigens ein Workitem zu lesen, kann folgender Code verwendet werden:

WorkItem newWI2 = store.GetWorkItem(92);

 

Thursday, January 04, 2007 4:40:24 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, January 02, 2007

Möchte man einen enum-Wert an eine ComboBox binden, dann muss man hier einen kleinen Trick anwenden. Ich habe das mal am Beispiel mit dem UltraComboEditor aus der Infragistics-Bibliothek realisiert. Man braucht zunächst einen Parse_Event auf dem Binding:

this.ultraComboEditor1.DataBindings[0].Parse += new ConvertEventHandler(ValueInputEnum_Parse);

Dann kann man in dem Eventhandler den Wert in den Enum konvertieren:

void ValueInputEnum_Parse(object sender, ConvertEventArgs e)
{
   e.Value = Enum.Parse(typeof(ePeriodInterval), e.Value.ToString());
}

 

Tuesday, January 02, 2007 4:09:01 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Friday, December 29, 2006

Unter .net 1.1 hat man das Problem, dass Panels und andere scrollbaren Controls keinen Event liefern, wenn das Control gescrollt wird. Wie man das beheben kann, beschreibt Rick Brewster hier: http://blogs.msdn.com/rickbrew/archive/2004/06/24/165493.aspx

Bei .net 2.0 besteht das Problem übrigens nicht mehr, hier bringen die Controls den Event auch Eigenschaften über die horizontale und vertikale Bildlaufleiste mit.

Friday, December 29, 2006 6:04:41 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Monday, December 11, 2006

Bereits in der Ausgabe 9 bringt Microsoft das Architecture Journal heraus. Jetzt gibt es das Architectur Journal auch kostenlos als Print-Version. 

Link to Architecture Journal - Registration

Monday, December 11, 2006 10:42:57 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Dieser sehr interessante Artikel beschreibt, wie man den Erfolg von Software-Factories mit Visual Studio Team System messen kann.

http://msdn2.microsoft.com/en-us/library/aa925157.aspx

Monday, December 11, 2006 7:17:36 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, December 07, 2006

Microsoft hat im Juli 2006 Winternals übernommen. Die Freeware-Tools, die bisher unter dem Namen Systernals angeboten wurden, sind nun über TechNet frei verfügbar:

http://www.microsoft.com/germany/technet/sysinternals/default.mspx

Die meisten Tools unterstützen inzwischen auch Vista.

Thursday, December 07, 2006 10:22:01 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Monday, December 04, 2006

In München findet am 13. und 14. Februar 2007 die Entwickler-Konferenz VSOne statt. In 8 Tracks werden sehr interessante Sessions rund um die Software-Entwicklung mit .net angeboten:

- Windows Forms
- Windows Mobile
- Web 2.0
- Advanced Development  (ADC)
- Visual Basic
- SQL Server & BI
- Business Fasttrack
- Tools&Solutions

Ich werde dort zwei Vorträge halten, einen zum Thema Databinding in Winforms, einen zum Datenaustausch mit mobilen Devices über Active Sync.

Nähere Infos unter www.vsone.de

Monday, December 04, 2006 10:56:14 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, November 28, 2006

Will man in einem Web-Service Sessions nutzen, so muss der Client Cookies handeln können. Ist der Client eine Web-Applikation, so ist das kein Problem. Bei WinForms muss man da zu einem kleinen Kniff greifen.

Man muss für den Service einen CookieContainer erstellen. Dazu kann man im Client folgenden Code verwenden:

WebService.MyService ws = new WebService.MyService();
ws.CookieContainer = new CookieContainer();

Damit kann dann auch der Windows-Client Cookies handeln.

Tuesday, November 28, 2006 8:19:30 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Saturday, November 25, 2006

Mit Microsoft Sandcastle lassen sich die XML-Kommentare aus dem Sourcecode in eine Dokumentation konvertieren. Damit lassen sich ohne viel Aufwand Dokumentationen im Stile einer MSDN-Dokumentation erstellen, die sogar in die VS-Hilfe eingebunden werden können. Einen Einstieg bietet das folgende Tutorial von Jonas:

http://www.dotnet-ulm.de/Downloads/20061121/Sandcastle.zip

Saturday, November 25, 2006 12:10:24 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Wednesday, November 22, 2006

Word, Excel und Powerpoint haben in der neuen Version 2007 ein neues Dateiformat, das mit Office 2003 oder Office XP nicht gelesen werden kann. Man kann zwar aus Office 2007 im alten Format speichern, aber es gibt auch noch eine andere Möglichkeit. Das  Microsoft Office Compatibility Pack ermöglicht es, Office 2003 / XP die neuen Formate zu lesen.

Link to Download details: Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats

Wednesday, November 22, 2006 11:49:25 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Saturday, November 18, 2006

Mit dem Power Toys Pack Installer erhält man einen schnellen Überblick über die verfügbaren Power Toys und kann diese direkt installieren.

http://www.codeplex.com/PackInstaller

Saturday, November 18, 2006 2:17:01 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Orcas wird die Erstellung von Anwendungen auf Basis von folgenden Plattformen unterstützen:

  • .net Framework 2.0 (VS 2005)
  • .net Framework 3.0 (Vista)
  • .net Framework 3.5 (Orcas)

http://blogs.msdn.com/msbuild/archive/2006/11/03/msbuild-orcas-and-multi-targeting.aspx

Saturday, November 18, 2006 1:22:30 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Mit dem Update funktionieren die Power Toys nun auch mit nicht englischsprachigen Visul Studios-

http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=fe72608b-2b28-4cc1-9866-ea6f805f45f3

Saturday, November 18, 2006 1:02:23 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Galileo Computing bietet wieder ein neues Openbook an, dieses mal zum Thema Visual Basic 2005

http://www.galileocomputing.de/openbook/visual_basic/

Saturday, November 18, 2006 11:56:46 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Albert Weinert beschreibt in einem Blog-Eintrag, wie man ein kleines Control bauen kann, das nach einem Postback die Scroll-Position von DIVs etc. wiederherstellt.

http://der-albert.com/archives/79-guid.html#extended

Saturday, November 18, 2006 11:54:08 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Microsoft bietet im Rahmen des Programms Small Busines + für kleine Unternehmen einen kostenlosen Call bei der Hotline für registrierte Teilnehmer an.

http://www.microsoft.com/germany/kleinunternehmen/small-business-plus/anmelden.aspx

Saturday, November 18, 2006 11:49:40 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Sandcastle, das Dokmentations-Tool von Microsoft ist nun in der November CTP zum download verfügbar.

http://www.microsoft.com/downloads/details.aspx?FamilyID=e82ea71d-da89-42ee-a715-696e3a4873b2&DisplayLang=en

Saturday, November 18, 2006 11:39:10 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Microsoft hat ein Resource Refactoring Tool rausgebracht, mit dem einfach Strings aus der Anwendung in Resource-Files ausgelagert werden können.

Ein Beispiel mit Screenshots gibts in dem Blog-Beitrag von Alex-

http://blogs.dotnetgerman.com/alexonasp.net/PermaLink,guid,4293f21b-679c-4d12-b3c9-3c2a6d3f3833.aspx

Saturday, November 18, 2006 11:30:32 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, November 16, 2006

Ein gutes Nachschlagewerk für Oracle-Befehle mit vielen Beispielen findet sich unter http://www.psoug.org/library.html

Thursday, November 16, 2006 5:59:24 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, November 14, 2006

Bei Microsoft kann man sich kostenlos ein Team System Training herunterladen.

http://www.microsoft.com/downloads/details.aspx?familyid=527E2A17-1DEA-4D0B-9484-6AE43D00E570&displaylang=en

Tuesday, November 14, 2006 9:53:18 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Wednesday, November 08, 2006

Es gibt ein Control mit dem Namen DSOFramer, das es erlaubt, Office-Anwendungen in eine eigene WinForms-Anwendung zu integrieren. Das Control hat allerdings einen Schönheitsfehler, es funktioniert nicht auf MDIChild-Forms. Versucht man innerhalb eines MDIChilds per Code eine Datei im DSOFramer zu laden, erhält man eine nichtssagende Fehlermeldung. Über einen kleinen Trick lässt sich das Problem allerdings beseitigen. Man baut sich einfach ein Usercontrol, in das man den DSOFramer steckt. danach funktioniert das Control auch in MDIChilds.

Infos und Download des DSOFramer_Controls unter http://support.microsoft.com/kb/311765

Dank an Christopher für den Tipp.

Wednesday, November 08, 2006 9:53:15 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Saturday, November 04, 2006

PLINQ steht für parallel LINQ. Wer wissen will, was sich dahinter verbirgt, der findet nähere Informationen unter http://www.bluebytesoftware.com/blog/PermaLink,guid,81ca9c00-b43e-4860-b96b-4fd2bd735c9f.aspx

Saturday, November 04, 2006 7:02:43 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, November 02, 2006

artiso, mein Arbeitgeber, sucht momentan einen .net-Entwickler zur Festanstellung. Falls jemand Interesse hat oder jemanden kennt, der im Moment einen Job sucht, der kann gerne mit mir Kontakt aufnehmen.

Hier die Stellenanzeige:

Die artiso solutions GmbH, ein ein visionäres .net Entwicklungsunternehmen in der Nähe von Ulm sucht zum nächstmöglichen Zeitpunkt einen/eine

.net Entwickler/-in

Die artiso entwickelt individuelle Softwarelösungen für groß- und mittelständische Unternehmen in Süddeutschland. Hierbei kommen sowohl Web- als auch Windows-Technologien und Smart Devices zum Einsatz. Es werden modernste Entwicklungstechnologien, zum Beispiel .net 3.0 ebenso wie innovative Architekturansätze und moderne Entwicklungstools eingesetzt.

Wir bieten unseren Entwicklern-/innen die Möglichkeit, sich mit innovativen Technologien zu beschäftigen. In unserem Team kann sich jeder seinen individuellen Neigungen entsprechend einbringen und Verantwortung übernehmen.

Nähere Informationen erhalten Sie unter http://www.artiso.com/ oder via e-Mail unter tschissler@artiso.com.

Thursday, November 02, 2006 6:56:43 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

In seinem MSDN-Magazin-Artikel zeigt Rainer Stropek ein paar Möglichkeiten auf, wie mit WPF Oberflächen gestaltet werden können und welche Möglichkeiten sich daraus ergeben. 

Link to Verpassen Sie Ihren Anwendungen mit .NET 3.0 ein neues Gesicht

Thursday, November 02, 2006 5:49:47 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Wednesday, November 01, 2006

Um den aktuell angemeldeten Windows-User zu ermitteln gibt es zwei Möglichkeiten:

1.) string userName = Environment.UserName
Diese Variante liest aus der Systemumgebung die entsprechende Einstellung aus.
Nachteil: Diese Einstellung kann leicht manipuliert werden, z.B. in der Eingabeaufforderung mit Set USERNAME = Administrator

2.) string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
Diese Variante fragt den User direkt im Windows Sicherheitsystem ab und kann deshalb nicht manipuliert werden.

Wednesday, November 01, 2006 9:54:43 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, October 31, 2006

Galileo Computing hat zwei neue Openbooks veröffentlicht. Diese Openbooks stehen in vollem Umfang online oder als kostenloser HTML-Download zur Verfügung. Ich finde das echt ne gute Sache, da man hier auf die Schnelle mal kurz was nachlesen kann und die Katze nicht im Sack kaufen muss. Man kann sich in aller Ruhe anschauen, was das Buch zu bieten hat und dann bei Gefallen die gedruckte Version erwerben.

Zum <openbook> JavaScript und AJAXhttp://www.galileocomputing.de/openbook/javascript_ajax/

Buch: Visual Basic 2005http://www.galileocomputing.de/openbook/visual_basic/

Tuesday, October 31, 2006 5:02:54 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Hat man eine umfangreiche Form mit vielen Controls, ist es oft nicht einfach, den Überblick über die Tab-Reihenfolge der Form zu behalten. Und für den Anwender ist es ärgerlich, wenn er bei Tastaturbedienung wild auf der Eingabemaske herum geführt wird. IN VS 2005 gibt es im Menü Ansicht hier einen Eintrag, der hier eine Lösung bietet . Ruft man den Menüpunkt Aktivierreihenfolge (Taborder) auf (ist nur verfügbar wenn das aktive Fenster eine Winform enthält), wird die Form in einem speziellen Modus dargestellt und auch der Cursor ändert sein Aussehen.

 

Die Zahlen, die nun bei jedem Control angegeben werden, geben die Tabreihenfolge an. Hat man Gruppierungselemente wie z.B. Panels, so werden durch Komma getrennt erst die Reihenfolge der Gruppen und dann die des Controls angezeigt.

Um die Tabreihenfolge zu ändern beginnt man nun einfach die Controls in genau der Reihenfolge anzuklicken, wie man sie haben möchte. Die Zahlen werden sofort angepasst.

Um den Modus wieder zu verlassn, muss man den Menüpunkt im Menü Ansicht einfach wieder deaktivieren. So einfach erhält man saubere Tabreihenfolgen.

Tuesday, October 31, 2006 11:54:31 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Monday, October 30, 2006

Es gibt eine Möglichkeit, in eine Anwendung COM-Komponenten zu integrieren und diese dann ohne Registrierung dieser Komponente einfach per XCopy oder per Click-Once-Deployment zu verteilen.

http://msdn.microsoft.com/msdnmag/issues/05/04/RegFreeCOM/default.aspx

Monday, October 30, 2006 7:11:05 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Ein wirklich gutes Dokument zum Thema Databinding in WinForms mit Visual Studio 2005 findet sich unter

http://www.windowsforms.net/Samples/Go%20To%20Market/Data%20Binding/DataBinding%20FAQ.doc#_Toc117313112

Monday, October 30, 2006 11:49:20 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Sunday, October 29, 2006

Es gibt bereits seit einiger Zeit ein deutsches MSDN-Magazin das immer zwei Ausgaben der englischen Version zusammenfasst. Online gibt es jetzt auch das Original auf deutsch übersetzt.

(Gefunden bei http://der-albert.com/)

Link to MSDN Magazin: Inhalt: November 2006

Sunday, October 29, 2006 10:27:05 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Microsoft bietet 3 kostenlose e-Learnings zu WPF, WF und WCF an.

Link to Offer Detail

Sunday, October 29, 2006 10:22:52 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Es gibt einen Connector, der den Team Foundation Server mit einem MS-Project Server verbindet.

Link to bharry's WebLog : New TFS - Project Server Connector available

Sunday, October 29, 2006 10:08:34 PM (M