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

Am Dienstag werde ich auf der VSOne zwei Vorträge halten

13:45 - 14:45  Databinding in WinForms für Fortgeschrittene

Databinding ist mehr als die oft gezeigten Drag&Drop-Beispiele. Vor allem mit Objekten, typisierten DataSets und User Controls eröffnen sich enorme Möglichkeiten. Diese Session fasst die wichtigsten Infos aus jahrelanger Projekterfahrung zusammen.

15:15 - 16:15 Active Sync

Wie bekomme ich Daten vom PC auf mein Mobile Device? Wie kann ich Daten auslesen? Diese Session zeigt, wie dieser Datenaustausch mit Hilfe von Active Sync bewerkstelligt werden kann und sie gibt wertvolle Hinweise, was in der Praxis zu beachten ist.

 

Würde mich freuen, wenn der eine oder andere Leser meines Blogs auch auf der VSOne ist und wir uns mal persönlich kennenlernen.

Saturday, February 10, 2007 2:15:30 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Ich falle immer wieder darauf rein, deshalb jetzt mal zum merken! Das funktioniert nicht:

foreach (DataRow dr in table1.Rows)
    table2.Rows.Add(dr);

Das führt zu einer Fehlermeldung "This row already belongs to another table.". Statt dessen muss das lauten:

foreach (DataRow dr in table1.Rows)
    table2.ImportRow(dr);

Saturday, February 10, 2007 1:55:17 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, February 08, 2007

Wer Anwendungen für Pocket PCs oder andere mobile Geräte entwickelt oder präsentieren möchte, findet einige hilfreiche Tools im Windows Mobile Developer Power Toys Paket, das kostenlos heruntergeladen werden kann. Unter anderem findet man darin das ActiveSync Remote Display, mit dem man den Bildschirm des PDAs auf dem PC darstellen und den PDA sogar mit der Maus und der Tastatur des PCs steuern kann. 

Link to Download details: Windows Mobile Developer Power Toys

Thursday, February 08, 2007 6:56:19 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Wenn man unter Vista den IIS7 installiert hat und dann versucht, von VS 2005 aus auf den lokalen IIS7 zuzugreifen, dann quitiert das VS zunächst mit einem Fehler.

 

Wie man den IIS7 konfigurieren kann, damit man aus VS 2005 darauf zugreifen kann ist in folgendem Blog-Beitrag beschrieben:

Link to Your Websites, Our Passion! : Developing Web Applications on Windows Vista with Visual Studio 2005

Thursday, February 08, 2007 6:44:08 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 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)  #