Blog Home  Home Feed your aggregator (RSS 2.0)  
artiso Blog - Friday, August 04, 2006
Neues rund um's Thema .Net
 
 Friday, August 04, 2006

Eine sehr umfangreiche Link-Liste zu den 3 Hauptthemen von .Net 3.0 gibt es unter:

Teil 1: Windows Presentation Foundation
Teil 2: Windows Communication Foundation
Teil 3: Windows Workflow Foundation

Friday, August 04, 2006 6:10:58 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Xml2PDF ist eine Komponente, mit der verschiedene XML-Formate nach PDF konvertiert werden können, unter anderem auch WordML.

http://alt-soft.com/products_xml2pdf.jsp

Friday, August 04, 2006 8:08:16 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Wednesday, August 02, 2006

Um die Work Items aller Team-Projekte eines Team-Servers anzeigen zu können, kann man einfach eine entsprechende Query anlegen. Hierzu einfach im Team-Explorer auf Work Items mit der rechten Maustaste klicken und dann "Add Query" auswählen. Die Query is dann schon mit einem Filter nach einem Projekt vorbelegt. Diesen einfach löschen, dann erscheinen alle Work Items.

 

Wednesday, August 02, 2006 7:27:32 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Wer Mono (die .Net Implementierung für Linux) ohne viel Aufwand mal testen möchte, kann sich jetzt ein VMWare-Image herunterladen, in dem alles bereits installiert ist. So kann man sofort loslegen.

http://www.mono-project.com/news/archive/2006/Jul-28.html

Wednesday, August 02, 2006 6:46:42 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Unter http://www.dnrtv.com finden sich einige Videos zum Thema .Net Entwicklung.

Wednesday, August 02, 2006 7:10:00 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Tuesday, August 01, 2006

Oft erhält mein eine Meldung in einer Message-Box und möchte den text kopieren. Mit Alt-Druck erhält man einen Screen-Shoot, aber das ist eine Grafik. Wie kommt man nun an den Text?

Mit Strg-C !

Tuesday, August 01, 2006 7:55:46 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Eine Reihe von interessanten Artikel findet man unter http://www.theserverside.net/tt/articles/index.tss

Tuesday, August 01, 2006 7:05:21 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Oft müssem am Anfang und am Ende eines Strings überflüssige Zeichen gelöscht werden. Dazu kann in .Net der Befehl Trimm eingesetzt werden.

string t = " Test ";
string Result = t.Trim(' ');

Mit Trim lassen sich aber auch mehrere Zeichen auf einmal löschen. Dabei ist die Reihenfolge der Zeichen egal!

string t = " \r\n Test \r \n ";
string Result = t.Trim('\r', '\n', ' ');

Tuesday, August 01, 2006 4:31:42 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

In einer Anwendung aus der ich auf Access via COM zugreife, wollte ich das Access-Fenster ausblenden. Die "visible" Eigenschaft kann man auch setzten - es passiert nur nix, daher das ganze über DLLImport. Wichtig ist, dass man sich den/die "handle" auf das/die Fenster merkt - die findet man sonst nicht mehr und kann sie sonst auch nicht mehr sichbar schalten.
Das Beispiel kann man natürlich auch auf jede andere Anwendung übertragen und das Process-Objekt hat ja auch noch paar andere Methoden, um ein bestimmtes Fenster zu finden, "GetProcessByID()" usw. sind auch vorhanden.

z.B. ausblenden von allen Access-Fenstern:

ArrayList processHandles = new ArrayList();
foreach (Process p in Process.GetProcessesByName("msaccess"))
{
   ShowWindow((int)p.MainWindowHandle, 0);  // 0 steht für unsichtbar
   
processHandles.Add((int)p.MainWindowHandle);
}

einblenden

foreach
(int processHandle in processHandles)
{
   
ShowWindow(processHandle, 9);  // 9 bedeutet restore - sprich so, wie das Fenster vor dem ausblenden aussah (Position, Größe)
}

und der dllimport, damit die Funktion genutzet werden kann:

[DllImport("User32")]
private static extern int ShowWindow (int hwnd, int nCmdShow);

Tuesday, August 01, 2006 5:35:56 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Friday, July 28, 2006

Unter http://msdn.microsoft.com/asp.net/reference/multimedia/ findet man eine umfangreiche Liste mit Trainings-Videos etc. zum Thema ASP.Net, größtenteils kostenlos!

Friday, July 28, 2006 7:21:51 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
Friday, July 28, 2006 7:17:18 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Mit MSBee kann MSBuild von VS2005 so konfiguriert werden, dass damit Anwendungen kompiliert werden können, die auf dem Framework 1.1 ablaufen. Dies kann vor allem zur Pflege von bestehenden Anwendungen sinnvoll sein. Neue Anwendungen zu erstellen ist jedoch recht mühsahm, weil VS 2005 automatisch partial Classes verwendet, die aber vom Framework SDK 1.1 nicht unterstützt werden.

http://www.codeplex.com/Wiki/View.aspx?ProjectName=MSBee

Friday, July 28, 2006 7:06:40 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Thursday, July 27, 2006

Statt try-catch-finally gibt es auch noch eine Alternative mit Hilfe sog. Scopes.

http://blog.veloursnebel.de/PermaLink,guid,fb472ac8-d855-4224-a2e0-ddf758492b17.aspx

Thursday, July 27, 2006 7:04:14 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Will man Fenster mit ungewöhnlichen Formen erzeugen (wie z.B. unten), ist das mit Hilfe der Region-Eigenschaft kein Problem.

http://www.microsoft.com/germany/msdn/library/net/windowsforms/WindowsFormsUmrisseFreiBestimmen.mspx?mfr=true

Thursday, July 27, 2006 6:27:42 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Wednesday, July 26, 2006

Unter http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0605-01.mspx gibt es eine Webcast-Serie zu Visual Studio Team System

Wednesday, July 26, 2006 10:10:02 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |  |   | 

Unter http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0605-02.mspx gibt es eine Webcast-Serie zur Entwicklung mit Office 2007 und .Net

Wednesday, July 26, 2006 10:07:41 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |  |   | 

Von Microsoft gibt es ein deutschsprachiges Portal das sich mit Themen rund um die Software-Architektur beschäftigt:

http://www.microsoft.com/germany/architecture/default.mspx

Wednesday, July 26, 2006 7:20:36 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |  |   | 
 Tuesday, July 25, 2006

Unter IDesign gibt es einen Download, mit dem das My-Objekt von VB auch unter C# genutzt werden kann.

http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=-1&tabid=19&download=141

The My class in VB often simplifies and streamlines many operations, from Network programming to clipboard, to audio access, and so on. What takes sometimes a programming fit in C# can be done in one line using the My class in VB. If VB has Me and My, then C# should have this and That. The That class is the C# equivalent of the VB My class. It is a static class that uses the VB implementation as much as possible, and it requires adding a referencing to Microsoft.VisualBasic. The That class is instrumental when working in heterogeneous environments and when dealing with in porting of VB to C# or visa-versa.

Weitere interessante Downloads gibt's unter http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11#ES

Tuesday, July 25, 2006 9:46:16 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
Tuesday, July 25, 2006 6:22:40 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
Tuesday, July 25, 2006 6:14:36 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Monday, July 24, 2006

Unter http://www.red-gate.com/products/SQL_Prompt/index.htm kann man kostenlos ein kleines Tool herunterladen, das für alle SQL-Editoren wie z.B. den Query Analyzer, SQL Server 2005 Managementstudio etc. eine Intelli-Sense Unterstützung für Tabellen-, Aplaten und Funktionsnamen bietet.

Monday, July 24, 2006 4:21:32 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Mit dem Team Foundation Server Administration Tool können im Team Foundation Server benutzer und Berechtigungen verwaltet werden.

http://www.codeplex.com/Wiki/View.aspx?ProjectName=TFSAdmin

Monday, July 24, 2006 6:38:05 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Friday, July 21, 2006

http://www.cimtec.dk/dot-net/DataBinding/DataBinding.htm

Beschreibt auch das Databindung zu User-Controls.

Friday, July 21, 2006 4:15:17 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Bisher war es recht mühsahm, Oberflächen für verschiedene Sprachen zu erstellen. Mit VS 2005 ist das jetzt ein Kinderspiel. Einfach auf der Form die Eigenschaft Localizable auf true setzen. Dann die Oberfläche für die Standard-Sprache aufbauen. Anschließend die Eigenschaft Language auf der Form auf eine explizite Sprache einstellen und Anpassungen vornehmen (Lables, Buttons etc. neu beschriften). VS legt für die Zweitsprache automatisch eine .resx-Datei an, in der diese sprachspezifischen Einstellungen gespeichert werden.

Während des editierens kann man beliebig zwischen den Sprachen umschalten und die Oberfläche für die jeweilige Einstellung editieren. Genial ist dabei, dass nicht nur Texte in den sprachspezifischen Ressource-Dateien gespeichert werden, sondern auch alle anderen Einstellungen. Wird ein Button z.B. in Englisch mit "Save" betittelt, kann es sein, dass die deutsche Bezeichnung "Speichern" zu lang ist und der Platz nicht ausreicht. Kein Problem. Den Button einfach in der deutschen Einstellung vergrößern und schon wird auch die Größe des Buttons in Abhängigkeit der Sprache gewählt.

Friday, July 21, 2006 3:17:56 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Thursday, July 20, 2006

Dass viele Operationen mit einem string recht langsam ist, ist ja weitgehend bekannt, auch dass man hier besser einen StringBuilder verwendet. Folgendes Beispiel ist unter Performance-Aspekten sehr ungünstig:

string Text = "";
for (int i=0; i<100000; i++)
{
   Text += "x";
}

Was weniger bekant ist, die Erklärung dafür. Wird einem String ein neuer Wert zugeweisen, so wird das Objekt jedes mal neu angelegt. In dem obigen Beispiel wird also 100000 mal ein neues String-Objekt angelegt und das alte verworfen. Das kostet natürlich Zeit. Dahingegen ist der StringBuilder dynamisch erweiterbar. Nach der initialisierung wird er mit einer Kapazität von 16 Zeichen angelegt. Die Kapazität verdoppelt sich nun jedesmal, wenn die Kapazität überschritten wird. Mit dem einfügen des 17. Zeichens wird die Kapazität also auf 32 erhöht etc. Beim Stringbuilder kann man im Konstruktor auch schon eine größere Kapazität angeben.

Thursday, July 20, 2006 7:14:12 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Wednesday, July 19, 2006

In der AssemblyInfo.vb bzw. AssemblyInfo.cs gibt es zwei Einträge zur steuerung der Versionierung.

<Assembly: AssemblyVersion("0.9.*")>
<Assembly: AssemblyFileVersion(
"0.9.2.0")>

Das Problem dabei ist, dass die AssemblyVersion durch * automatisch nummeriert werden kann, dass das aber bei der AssemblyFileVersion nicht funktioniert. Möchte man, dass beide gleich sind, muss man lediglich die AssemblyFileVersion löschen.

Wednesday, July 19, 2006 2:40:00 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |  |   | 
 Monday, July 17, 2006

Möchte man den Titel eines Diagramms aus einer Zelle holen, muss man einen kleinen Trick anwenden. Über den Dialog "Diagrammoptionen" lässt sich nur ein fester Text eingeben. Wenn man aber den Titel im Diagramm markiert und dann in der Eingabeleiste den Verweis eingibt, funktioniert das ganze.

Monday, July 17, 2006 6:15:52 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Nach der Aktualisierung von Daten eines Pivot-Charts sind ie Formatierungen wie Farben der Balken etc. verloren. Dies liegt daran, weil das Diagramm komplett neu aufgebaut wird. Dies kann man umgehen, indem man die Einstellungen als benutzerdefinierten Diagrammtyp speichert und diesen dann dem Chart wieder zuweist. Ein Makro zur Aktualisierung der Daten eines Pivot-Charts ohne Verlust der Formatierung könnte dann so aussehen:

    ActiveWorkbook.Sheets("Projektzeiten").PivotTables("PivotTable2").PivotCache.Refresh
    Application.Wait (Now + TimeValue("0:00:01"))
    Application.ActiveWorkbook.Charts(1).ApplyCustomType ChartType:=xlUserDefined, TypeName:="MyType"
    Application.ActiveWorkbook.Charts(1).HasPivotFields = False

Den Wait in Zeile 2 braucht er offensichtlich, da sonst die Aktualisierung noch nicht abgeschlossen ist.

Monday, July 17, 2006 6:13:06 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [1]    | 
 Friday, July 14, 2006

...mit verschiednen Web-Casts zum Thema Windows Presentation Foundation für Entwickler und Designer.

http://blogs.msdn.com/karstenj/archive/2006/06/15/632639.aspx

Friday, July 14, 2006 7:46:38 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Mit dem Obensource Webpart "SharePoint Fourums Web Part" kann ein komplettes Forum als einzelnes Webpart direkt in Sharepoint integriert werden. Ein deutsches Language-Pack ist verfügbar.

http://www.codeplex.com/Wiki/View.aspx?ProjectName=SPFORUMS

Friday, July 14, 2006 7:14:16 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

In einer Studie vertitt die Burton Group die Ansicht, dass JAVA EE in 5 Jahren keine wesentliche Rolle bei den Entwicklungstechnologien mehr spielen wird. Einer der Gründe dafür ist SOA!

http://searchwebservices.techtarget.com/originalContent/0,289142,sid26_gci1198211,00.html

Friday, July 14, 2006 7:00:01 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Der VMWare-Server kann nun kostenlos heruntergeladen werden

http://www.vmware.com/download/server/

Friday, July 14, 2006 6:40:12 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, July 13, 2006

Über Array-Formeln lassen sich Konstrukte wie das folgende erstellen:

{=MITTELWERT(WENN(ISTNV(C1:C3);"";C1:C3))}

Arrayformeln müssen mit STRG+UMSCHALT+EINGABE bestätigt werden (statt nur EINGABE). Die geschweiften Klammern müssen nicht eingegeben werden, sondern werden von Excel nach der Bestätigung mit STRG+UMSCHALT+EINGABE automatisch hinzugefügt. Klappt auch bei MIN, MAX und MEDIAN.

Thursday, July 13, 2006 6:27:31 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Wednesday, July 12, 2006

Die C# Bibliothek SharpZipLib enthält Funktionen zum lesen und schreiben von ZIP, GZIP, Tar und Bzip2. Sie ist als Opensource verfügbar.

http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx

Wednesday, July 12, 2006 5:23:45 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Mit dem SP1 spendiert Microsoft dem SQL Server 2005 Express zusätzlich die zwei Funktionen Reporting-Services und den Volltextindex des großen Bruders. Vorlagen für das Erstellen der Reports für Visual Studio gibt es mit dem Microsoft SQL Server 2005 Express Edition Toolkit SP1.

http://msdn.microsoft.com/vstudio/express/sql/download/

Wednesday, July 12, 2006 4:48:27 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, July 11, 2006

In diesem Artikel aus dem MSDN-Magazin werden 10 verbreitete Fallstricke beschrieben, die die Performance von ASP.Net Anwendungen negativ beeinflussen.

http://msdn.microsoft.com/msdnmag/issues/06/07/WebAppFollies/default.aspx

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

Diese Power-Toys erweitern die Funktionen des Class Designers im Visual Studio

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

Im Moment scheint es hier noch Probleme zu geben, wenn das System nicht komplett englisch ist, aber es ist ja auch noch eine Alpha-Version.

<