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

Paint.Net ist ein kostenloses Grafik-Tool, das umfangreiche Funktionen zur Bearbeitung von Grafiken bietet. Gerade für Entwickler düfte das Tool vollkommen ausreichen und auch eine echte Alternative zu Photshop & Co sein.

http://www.getpaint.net/

Danke an Jonas für den Link

Friday, September 29, 2006 7:29:35 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, September 28, 2006

Um in Excel Zellen bis ans Ende einer datenreihe aufzufüllen (z.B. eine Summenformel etc.), kann man einfach den zu übernehmenden Bereich markieren und dann auf das kleine Kästchen rechts unten im selektierten Bereich doppelklicken.

Ich wollte nun das gleiche Ergebnis per VBA erreichen. Dazu habe ich die zu kopierende Zelle erst mal mit dem Namen "Copy" versehen. Dann kann man mit dem folgenden Befehl das AutoFill ausführen:

Range("Copy").AutoFill Destination:=Range("H3:H" & Range("G65535").End(xlUp).Row), Type:=xlFillDefault

Damit wird der Bereich "Copy" von der Zelle H3 bis Hx kopiert, wobei x die letzte Zeile der Spalte G ist, die einen Wert enthält.

Thursday, September 28, 2006 6:53:23 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Wednesday, September 27, 2006

In seinem Blog beschreibt bharry einige Fixes und neue Features des SP1 Beta für Team Foundation Server. Scheint wohl jetzt neu zu sein, auch für Service-Packs Betas anzubieten. Na ja so kommt man früher dran und es sind hinterher hoffentlich weniger Fehler drin - mal abwarten.

http://blogs.msdn.com/bharry/archive/2006/09/26/772371.aspx

Wednesday, September 27, 2006 5:32:47 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Das Tool selber hat zwar mit .net nix zu tun, ist aber für den Entwickler trotzdem interessant. Es gibt die System-Infos auf dem Desktop aus. Funktioniert auch, wenn man eine Hintergrundgrafik eingestellt hat.

http://www.sysinternals.com/Utilities/BgInfo.html

BGInfo Screenshot

Wednesday, September 27, 2006 5:17:49 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Unter http://blogs.msdn.com/somasegar/archive/2006/09/26/772250.aspx gibt es einige Hinweise zur Beta-Version von VS 2005 SP1 sowie den Vista-Support von VS.

Wednesday, September 27, 2006 4:42:19 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, September 26, 2006

Die September CTP des .Net Frameworks 3.0 kann unter http://www.microsoft.com/downloads/details.aspx?FamilyId=C6636E90-26E6-44E0-8780-5D3CCD3D94ED&displaylang=en heruntergeladen werden. UNter http://msdn.microsoft.com/windowsvista/support/relnotes/netfxSEPTCTP/default.aspx  finden sich bekannte Fehler und Systemanforderungen.

Tuesday, September 26, 2006 11:03:56 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Beim Databinding möchte man oft Einfluss auf die Darstellung der Werte auf der Oberfläche nehmen. Ein typischer Fall hierzu ist z.B. das Databinding mit Prozentwerten. Hier hat man z.B. einen Wert 0,5 der als 50% angezeigt werden soll. Wenn der Benutzer dann 40% eingibt, soll dieser Wert in 0,4 konvertiert werden. Hierzu kann man die Format- und Parse-Events des Databindings verwenden.

Zuerst müssen die Events definiert werden. Dabei gehen wir in dem Fall davon aus, dass es sich um das erste Databinding auf dem Control handelt.

this.txtValue.DataBindings[0].Format += new ConvertEventHandler(ValueInputPercent_Format);
this.txtValue.DataBindings[0].Parse += new ConvertEventHandler(ValueInputPercent_Parse);

Dann können in den Eventhandlern die entsprechenden Formatierungen vorgenommen werden. Dies können natürlich auch noch mit entsprechenden Fehlerprüfungen versehen werden.

void ValueInputPercent_Parse(object sender, ConvertEventArgs e)
{
  e.Value =
Double.Parse(e.Value.ToString().TrimEnd('%')) / 100;
}

void ValueInputPercent_Format(object sender, ConvertEventArgs e)
{
  e.Value = ((
double)e.Value) * 100 + "%";
}

Tuesday, September 26, 2006 11:01:11 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

User-Controls werden im Designer von Visual Studio  genauso instanziert wie zur Laufzeit. Um hier unterscheiden zu können, kann man mit der Variable DesignMode abfragen, in welchem Modus die Komponente momentan initialisiert wird. Die ist z.B. sinnvoll, wenn man beim instanzieren auf Objekte zugreift, die im DesignMode gar nicht zur Verfügung stehen. Hier ein kleines Beispiel:

public MyControl()
{
  InitializeComponent();
  if (!DesignMode)
  {
    try
    {
      shiftConfiguration.ReadXml(ConfigurationManager.AppSettings["ShiftConfigFile"]);
    }
    catch (Exception ex)
    {
      MessageBox.Show("Error reading Shift Configuration File\n\nError : " + ex.Message);
    }
  }
}

Tuesday, September 26, 2006 10:56:22 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Monday, September 25, 2006

Ich habe heute ein Update meiner Blog-Software eingespielt. Es gibt da im Moment noch ein paar kleinere Probleme z.B. mit den Kommentaren. Ich bin dabei das zu beheben. Wenn jemand sonst noch Fehler auffallen, bitte mir kurz melden.

Monday, September 25, 2006 4:09:38 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Friday, September 22, 2006

Als Erweiterung zu meinem Beitrag zum Übernehmen von Excel-Daten über die Zwischenablage (http://www.artiso.com/ProBlog/PermaLink,guid,2017b61d-19f4-4e4a-a033-cbf820d2b18e.aspx) hier nun das Gegenstück, Daten über die Zwischenablage an Excel übergeben:

string Data = "1,1;2,7;3,1;4,8;5,9";
Byte[] ClipboardData = Encoding.UTF8.GetBytes(Data);
MemoryStream ClipboardStream = new MemoryStream(ClipboardData);
DataObject DataObj = new DataObject(DataFormats.CommaSeparatedValue, ClipboardStream);
Clipboard.SetDataObject(DataObj, true);

Daten über mehrere Zeilen werden übrigens mit Environment.NewLine getrennt.

Friday, September 22, 2006 2:26:27 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Der nachfolgende Code zeigt, wie JPEG Grafiken (und ebenso auch andere Formate) verlustlos rotiert werden können:

Image i = Image.FromFile(this.imageFilename);
ImageCodecInfo usedIC = this.GetEncoderInfo("image/jpeg");

System.Drawing.Imaging.Encoder encoder =
System.Drawing.Imaging.Encoder.Transformation;

EncoderParameters encparams = new EncoderParameters(1);
EncoderParameter encparam =
new EncoderParameter(encoder,
(long)EncoderValue.TransformRotate270);
encparams.Param[0] = encparam;

i.Save("filename.jpg", usedIC, encparams );

i.Dispose();
i = null;
GC.Collect();

Quelle: http://blog.norberteder.com/index.php?entry=entry060920-223506

Friday, September 22, 2006 6:43:24 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

HTML-Emails mit integrierten Bildern zu verschicken ist unter .net gar nicht schwer - wenn man weiss, wie es geht. Hier ist's beschrieben:

http://blog.freakfabrik.net/PermaLink.aspx?guid=2fc780aa-14e2-45a6-a58e-73bfbd966905

Friday, September 22, 2006 5:56:58 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

.net bietet keine Funktion, um eine Form einfach auszudrucken. Diese Lücke schließt nun Microsofts PrintForm Component 1.0.

http://www.microsoft.com/downloads/details.aspx?familyid=286111b0-6965-46cc-bf6f-c5ee63b1f98c&displaylang=en#filelist

Damit läßt sich bereits mit 2 Zeilen Code eine Form ausdrucken.

this.printForm1.Form = this;
this.printForm1.Print();

Die Komponentebietet darüber hinaus noch eine Vielzahl von Einstellmöglichkeiten, z.B. zur Anzeige einer Druckvorschau etc.

Übrigens nicht durch den Namespace (Microsoft.VisualBasic.Powerpacks) irritieren lassen, die Compunente funktioniert auch unter C# ;-)

Friday, September 22, 2006 5:52:56 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Wednesday, September 20, 2006

User-Controls können auch mit eigenen Events erweitert werden. Das ist eigenlich recht simpel. Man definiert einfach einen Event, z.B.

public event EventHandler LinesChanged;

Dann ruft man an der Stelle, an der der Event ausgelöst werden soll einfach den Event auf. Das geht am einfachsten über:

LinesChanged(this, EventArgs.Empty);

Der Event kann dann außerhalb des User-Controls wie gewohnt mit einem Eventhandler ausgewertet werden. Möchte man mehr Informationen als den Sender übergeben, erstellt man sich einfach eine Klasse, die man von EventArgs ableitet und übergibt dann eine Instanz dieser Klasse beim Aufruf des Events, z.B.

public class MyEventArgs : EventArgs
{
   private string msg;

   public MyEventArgs( string messageData ) 
   {
      msg = messageData;
   }
   public string Message { 
   get { return msg; } 
   set { msg = value; }
   }
}

Damit der Eventhandler nun auch noch den richtigen Datentyp für die EventArgs übergeben bekommt braucht mann noch ein Delegate, z.B.

public delegate void MyEventHandler(object sender, MyEventArgs e);

Der Event muss nun entsprechend deklariert werden:

public event MyEventHandler LinesChanged;

Um den Eventhandler nun zu erzeugen, legt man in der umgebenden Klasse eine Instanz des Objektes an, das den Event wirft. Auf dieser Instanz kann man nun den Event mit dem Handler verbinden. Das geht in VS ganz einfach. Man gibt z.B. ein:

MyControl.LinesChanged +=

Dann drückt man zweimal Tab und schon hat man den Eventhandler angelegt. Fertig sieht das dann ungefähr so aus:

MyControl.LinesChanged += new UControl.MyEventHandler(MyControl_LinesChanged)

void MyControl_LinesChanged(object sender, MyEventArgs e)
{
   throw new Exception("The method or operation is not implemented.");
}


 

Wednesday, September 20, 2006 8:56:44 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Mit WCF (Windows Communication Foundation) lassen sich Service orientierte Architekturen (SOA) implementieren. Der Vorteil gegenüber bestehenden technologien besteht darin, dass die eigentliche Schnittstelle von dem Nachrichtenformat und dem Transportweg unabhängig ist, d.h. mann kann einfach durch Konfiguration bestimmen, ob die Kommunikation über HTTP, TCP, MSMQ, Named Pipes etc. stattfinden soll und ob der Nachrichtenaustausch über SOAP/XML, Binärserialisierung etc. erfolgen soll. WCF ist bestandteil von .net 3.0

Im Rahmen eines Projektes habe ich begonnen, mich mit der WCF zu befassen. Die ersten Ergebnisse sind in dem folgenden Tutorial beschrieben. Das Dokument soll einen einfachen Einstieg in WCF bieten.

Windows Communication Foundation Tutorial.pdf (847,8 KB)
Wednesday, September 20, 2006 9:23:36 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Monday, September 18, 2006

Das Tutorial steht für C# und VB.Net zur Verfügung. Unten finden Sie den Link für die erste Folge in C#. Von dort aus können links aus der Navigation die anderen Folgen aufgerufen werden.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspnettut/html/aspnet_tutorial01_dataaccesslayer_cs.asp

Monday, September 18, 2006 8:20:57 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Sunday, September 17, 2006

10 häufige Fallstricke bi der Veröffentlichung von ASP.Net Webseiten und deren Vermeidung, zum Teil auch der technische Hintergrund werden in folgendem Artikel beschrieben:

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

Sunday, September 17, 2006 9:44:47 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |  |   | 

Bei der Erstellung von UIs sollte darauf geachtet werden, dass möglichst wenig Funktionalität in der Benutzeroberfläche selbst implementiert wird. Das folgende Entwurfsmuster beschreibt eine Vorgehensweise:

http://www.microsoft.com/germany/msdn/library/architecture/EntwurfsmusterModelViewPresenter.mspx?mfr=true

Sunday, September 17, 2006 9:40:07 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Mit der BusyBoxDotNet kann man einfach eine Wartemeldung unter ASP.Net erzeugen.

http://busyboxdotnet.qsh.eu/

Sunday, September 17, 2006 8:52:27 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Mit Sancastle können XML-Kommentare aus VS 2005 als Dokumentation ähnlich wie die MSDN-Dokumentation aufbereitet werden. Nun gibt es bei CodeProjekt nun auch eine grafische Oberfläche für Sandcastle.

http://www.codeproject.com/useritems/SandcastleBuilder.asp

Sunday, September 17, 2006 8:20:04 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Saturday, September 16, 2006

Der Artikel beschreibt wie unter ASP.Net 2.0 Ressoucen eingesetzt werden und wie sich damit Web-Anwendungen lokalisieren lassen.

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

Saturday, September 16, 2006 9:46:35 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Die Verwaltung von Konfigurationseinstellungen hat sich in .net 2.0 gegenüber .net 1.1 geändert. Es stehen Funktionen zum Schreiben von Konfigurationsparameter und auch benutzerspezifische Konfigurationsparameter zur Verfügung. Die Verwendung der Konfigurationeinstellungen unter .net 2.0 beschreibt der Artikel http://msdn.microsoft.com/vcsharp/default.aspx?pull=/library/en-us/dnvs05/html/SettingsCS_RL.asp

Saturday, September 16, 2006 9:40:12 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Auf der Seite Coding4Fun finden Hobby-Entwickler interessante Informationen und Beispiele (z.B. Programmierung von Spielen etc.)

http://www.microsoft.com/germany/msdn/coding4fun/default.mspx

Saturday, September 16, 2006 9:33:32 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

In einer 10-teilgen Web-Cast Serie erklärt Daniel Walzenbach wie ASP.Net Srever-Controls entwickelt werden.

http://www.microsoft.com/germany/MSDN/webcasts/library.aspx?id=1032303182

Saturday, September 16, 2006 9:28:33 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Vor kurzem habe ich hier gepostet, wie man Debug-Informationen ausgeben kann. Hier noch eine kleine Ergänzung. Man kann den Debug-Informationen auch noch Informationen über die Quelldatei, das Modul und die Zeile ausgeben. Dazu dient der folgende Code:

Debug.WriteLine("Quelledatei = " + new StackFrame(0, true).GetFileName() +
"\nMethode = " + new StackFrame(0, true).GetMethod() +
"\nZeile = " + new StackFrame(0, true).GetFileLineNumber() + "\n");

Gefunden bei Dani.Net

Saturday, September 16, 2006 9:13:53 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Friday, September 15, 2006

Unter http://www.netfxguide.com/ finden sich jede Menge Links zu Webkasts, Tutorials, Artikel etc. zum Thema .Net 3.0. Die Inhalte sind in die Rubrichen WCF, WPF, WF und sonstiges gegliedert.

Friday, September 15, 2006 11:40:21 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

In einer 7-teiligen Webcast-Serie stellt Dr. Holger Schwichtenberg ASP.Net 2.0 vor

http://www.microsoft.com/germany/MSDN/webcasts/library.aspx?id=118767534

Friday, September 15, 2006 7:42:54 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Thursday, September 14, 2006

Bei Christoph Schmid habe ich gerade folgenden Tipp gefunden:

 

Dass man per Pfeiltasten zwischen den eingegebenen Befehlen wechseln kann, war mir bekannt.
Aber es geht einfacher mit der F7-Taste. Dann erscheint ein Fenster, in welchem man die Befehle sieht und schnell wechseln kann.


Quelle: http://blogs.dotnetgerman.com/schmidi/PermaLink,guid,a9bace19-3447-47e2-94a1-5bb83ce10e2d.aspx

Thursday, September 14, 2006 6:35:19 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Unter MSDN gibt es einen Artikel, der einen Überblick über verschiedene Aspekte von .Net 3.0 gibt.

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

Thursday, September 14, 2006 6:27:27 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
Auf Dani.NET habe ich folgenden interessanten Beitrag gefunden:
In wohl praktisch jeder Applikation müssen Settings für den Mail-Versand gespeichert werden - SMTP-Hoster, statische Sender-Adresse etc.
Wer das wie ich bis jetzt immer mit eigenen Konfigurations-Abschnitten gelöst hat, der soll hier belehrt werden <img src="http://blogs.dotnetgerman.com/dani.net/smilies/happy.gif"> :
<configuration>
    (...)
    <system.net>
       
<mailSettings>
           
<smtp from="info@mydomain.com">
               
<network host="my.smtp.host"/>
           
</smtp>
       
</mailSettings>
   
</system.net>
    (...)
</configuration>

So sieht ein entsprechender built-in Dokumentations-Abschnitt aus. Natürlich wäre es zB. auch möglich, entsprechende
Credentials für den SMTP-Server zu definieren.

Wenn nun ein Mail-Objekt erstellt wird und über die Klasse SmtpClient versendet wird, werden
automatisch die entsprechenden Daten aus dem Config-File genommen.
Thursday, September 14, 2006 6:15:57 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Heute habe ich mir mal Outlook 2007 näher angeschaut und dabei bin ich über die Funktion gestolpert, mit der Outlook RSS Feeds lesen kann. Eigentlich bin ich mit dem SharpReader, den ich bisher einsetze, ganz zufrieden. Einzig sört mich, dass ich auf verschiedenen Rechnern nicht sauber synchronisieren kann, welche Einträge ich schon gelesen habe.

In Outlook werden die Einträge der Feeds werden in Outlook als Nachrichten auf dem Exchange-Server abgelegt. Daraus ergeben sich zwei Vorteile:

1.) Die Einträge stehen auf allen Rechnern zur Verfügung. Auch der Status (gelesen / ungelesen) wird für alle Outlook-Clients zur Verfügung gestellt.

2.) Ich kann die Einträge auch offline lesen. Dazu bietet Outlook auch die Möglichkeit, den kompletten Eintrag als HTML-File lokal zu speichern.

Total begeistert war ich dann, als ich feststellte, dass ich sogar mit meinem Outlook 2003 auf die heruntergeladenen Einträge Zugriff habe. OPML-Files können übrigens über die Import / Export-Funktion von Outlook importiert und auch wieder exportiert werden.

Nachträgliche Einstellungen können über einen etwas versteckten Dialog vorgenommen werden: Tools / Options / Mail Setup / E-mail Accounts / RSS-Feeds

Thursday, September 14, 2006 5:50:04 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Das Tutorial gibt einen kurzen Einblick in dei WPF.

http://blog.norberteder.com/content/files/tutorials/wpf/WPF_Part1.pdf

Thursday, September 14, 2006 4:43:29 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Wednesday, September 13, 2006

Texte können in Winforms-Anwendungen auch einfach vertikal geschrieben werden.

http://msdn2.microsoft.com/de-de/library/da9f790s.aspx

Wednesday, September 13, 2006 10:06:27 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, September 12, 2006

Seit ca. 2 Monaten blogge ich nun und dies ist der 100ste Eintraig in meinem Blog. Mir macht es Spass und für mich ist der Blog auch ein gutes Nachschlagewerk. Die Statistik zeigt mir, dass es wohl den einen oder anderen gibt, der auch liest, was ich hier so von mir gebe.

Für mich wäre es klasse, hier ein wenig Feedback zu erhalten. Ich bin dankbar für Anregungen aller Art. Sind die Beiträge zu knapp oder zu ausführlich? Sind die Themen interessant? Hat es dem einen oder anderen evtl. schon bei einem konkreten Problem geholfen. Lesen Sie den Blog regelmäßig oder sind Sie über eine Suchmaschine nur zufällig darauf gestossen? Wie sind Sie auf den Blog gekommen etc. etc.

Ich würde mich freuen, wenn ich ein wenig Feedback bekommen könnte. Entweder über den Contact-Link auf der linken Seite oder einfach als Kommentar zu diesem oder Beitrag.

Tuesday, September 12, 2006 7:12:06 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

In manchen Situationen hilft ein Breakpoint beim Debugen einfach nicht weiter. Haben Sie schon mal versucht, einen Eventhandler für ein Mouse-Move-Ereignis mit einem Breakpoint zu debuggen? Das ist schlicht unmöglich.

Abhilfe schafft hier das Debug-Objekt. Sie können damit z.B. Informationen im Ausgabefenster von VS ausgeben. In oben beschriebenen Fall würden Sie also z.B. folgendes verwenden:

private void Form2_MouseMove(object sender, MouseEventArgs e)
{
   System.Diagnostics.Debug.WriteLine(e.X + " - " + e.Y);
}

Das Ergebnis sieht man wie gesagt im Ausgabefenster von Visual Studio (Einblenden über Strg + Alt + O).

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

Welche Entwickler hat denn schon die Namespaces aller Objekte des Frameworks im Kopf? Da hilft oft nur in der Hilfe nachschauen - oder man kennt eine kleine aber sehr nette Funktion im Visual Studio 2005!

Man gibt einfach den Namen des Objektes ein. Ist das Objekt im .net Framework enthalten, erkennt VS das automatisch und zeigt dies durch einen kleinen roten Strich am Ende des Objektnamens ein. Klickt man darauf, kann man auswählen, ob der Namespace vor dem Objekt eingefügt l oder ob automatisch ein Using für den Namespace eingefügt werden soll. Unten sieht man ein Beispiel mit dem Objekt MailMessage.

Tuesday, September 12, 2006 6:09:44 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Eigentlich dachte ich, das sei eine ganz simple Aufgabe, aber dann hat mich das Ganze doch 2 Stunden Zeit gekostet. Das Ziel war, zwei Panels über einen separaten Scrollbar zu scrollen. Alse Panels in der Form platziert, AutoScroll auf false gesetzt, damit nicht jedes Panel mit einem Scrollbar versehen wird und den Scrollbar hinzugefügt. Der Event für das Scrollen war auch schenll gefunden, aber dann gab es Probleme.

Deshalb hier die Vorgehensweise, die nach meinen Versuchen am besten funktioniert hat.

private void Form2_Load(object sender, EventArgs e)
{
   this.panel1.AutoScroll = true;
   this.panel2.AutoScroll = true;
   this.ultraScrollBar1.Minimum = this.panel1.HorizontalScroll.Minimum;
   this.ultraScrollBar1.Maximum = this.panel1.HorizontalScroll.Maximum;
   this.ultraScrollBar1.Value = this.panel1.HorizontalScroll.Value;
   this.ultraScrollBar1.SmallChange = this.panel1.HorizontalScroll.SmallChange;
   this.ultraScrollBar1.LargeChange = this.panel1.HorizontalScroll.LargeChange;
   this.panel1.AutoScroll = false;
   this.panel2.AutoScroll = false;
}

private void ultraScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
   this.panel1.AutoScrollPosition = new Point(e.NewValue, 0);
   this.panel2.AutoScrollPosition = new Point(e.NewValue, 0);
}

Hierzu ein paar Anmerkungen:
1.) Die Werte für Minimum, Maximum, SmalChange und LargeChange können vom Panel nur dann sauber abgefragt werden, wenn AutoScroll = true gesetzt ist.
2.) Wird die Scrollposition über this.panel1.HorizontalScroll.Value gesetzt, was naheliegend wäre, kommt es bei abgeschaltetem AutoScroll zu einem seltsamen Flimmer-Effekt. Statt dessen muss die AutoScrollPosition gesetzt werden.
3.) Auch für das zweite Panel muss das AutoScroll einmal aktiviert und dann wieder deaktiviert werden, sonst scrollt das nicht mit.

Also diese Lösung funktioniert mal.

Diese Vorgehensweise scheint mir jedoch recht unlogisch und sehr umständlich. Ob das Framework da nichts besseres bietet oder ob ich da einfach noch nicht den richtigen Dreh gefunden hab, weiss ich im Moment noch nicht. Ich werde bei Gelegenheit das mal vertiefen und an dieser Stelle wieder posten.

Tuesday, September 12, 2006 2:22:54 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [1]    | 

Zur Erstellung von Reports sind die Reporting Services des SQL-Servers recht bekannt. Dass aber auch Reports direkt in VS 2005 ohne SQL-Server erstellt werden können, ist weniger bekannt. Die Berichte können zur Laufzeit angepasst werden. Diese Reporting-Funktionalität kann einfach in eigene Anwendungen integriert werden. Durch ein offenes XML-Format können die Berichtsvorlagen auch aus eigenen Anwendungen heraus erzeugt werden.

In einem Web-Cast stellt Sebastian Weber die Funktionen aber auch die Unterschiede zu den SQL-Server Reporting-Services dar.

https://www.microsoft.com/germany/MSDN/webcasts/library.aspx?id=118771506

Tuesday, September 12, 2006 7:28:00 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Monday, September 11, 2006

Über das Tool Regulazy können Reguläre Ausdrücke interaktiv erstellt werden.

http://tools.osherove.com/Regulazy/tabid/182/Default.aspx

Monday, September 11, 2006 9:16:51 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Auf dieser Seite wird der Einstieg in die .Net Programmierung an ein paar Beispielen Schritt für Schritt aufgezeigt. Damit kann wirklich jeder in die Programmierung mit .Net einsteigen und Interesse daran finden.

Vor allem bei der Aufmachung hat sich Microsoft echt was einfallen lassen.

http://www.microsoft.com/germany/msdn/aktionen/wirbauenwas/default.mspx

Monday, September 11, 2006 11:05:50 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, September 07, 2006

Wenn man seine Klassen sauber mit XML-Kommentaren versieht, ist es ein leichtes, daraus auch eine schöne Dokumentation zu erstellen. Nur beim eingeben der XML-Kommentare taucht oft die Frage aus, wie sieht das Ergebnis aus? Dazu jedesmal die Dokumentation zu erstellen ist recht mühsam. Abhilfe schafft hier dieses kleine Tool, das in der IDE eine HTML-Vorschau ermöglicht.

http://www.kyrsoft.com/opentools/qdocviewer.html

Thursday, September 07, 2006 9:27:00 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Mit dem XML Notepad von Microsoft lassen sich XML-Dateien einfach anzeigen und bearbeiten. Selbst ein Vergleich von zwei XML-Dateien ist möglich.

http://www.microsoft.com/downloads/details.aspx?familyid=72d6aa49-787d-4118-ba5f-4f30fe913628&displaylang=en

Thursday, September 07, 2006 6:53:10 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Wednesday, August 30, 2006

Oftmals benötigt man für eine Anwendung die Feiertage. Dass der 1. Mai z.B. am 01.05 ist und Neujahr am 01.01, das ist ja noch klar. Aber die kirchlichen Feiertage liegen jedes Jahr anders. Glücklicherweise lassen sich diese Feiertage alle von Ostern ableiten. Und dank des deutschen Mathematikers Carl Friedrich Gauß kann man auch das Datum des Ostersonntags mathematisch ermitteln.

http://www.microsoft.com/germany/msdn/library/visualtools/vb6/BerechnungbeweglicherFeiertageunterVisualBasic.mspx

Wednesday, August 30, 2006 9:11:40 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, August 29, 2006

.Net Applikationen werden normalerweise Just in Time compiliert. Durch eine Vorkompilierung können sich Vorteile in Punkto Performance uns Speichernutzung ergeben. Dazu bietet das .net Framework das Tool NGen. Wie dieses Tool eingesetzt werden kann und was dabei zu beachten ist beschreibt dieser deutschsprachige Artikel.

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

Tuesday, August 29, 2006 7:57:56 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Monday, August 28, 2006
Monday, August 28, 2006 8:46:07 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Dieses Tool erstellt automatisch XML-Kommentare für einzelne Methoden, Eigenschaften etc. Wenn man sprechende Methoden- und Parameternamen verwendet, kann das Tool daraus automatisch eine Beschreibung generieren. Außerdem können neue Parameter zu den XML-Kommentaren hinzufügen.

http://www.roland-weigelt.de/ghostdoc/

Es gibt auch ein kleines Video, das die Funktionsweise des Tools zeigt.

http://channel9.msdn.com/Showpost.aspx?postid=121822

Monday, August 28, 2006 8:41:59 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Hier werden einige Fragen zu .Net 3.0 beantwortet. Was ist es? Ist es kompatibel zu .Net 2.0? etc.

http://msdn.microsoft.com/winfx/learning/netfx3faq/default.aspx

Monday, August 28, 2006 8:23:22 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Zwei MS Press-Bücher kann man sich hier kostenlos als PDF herunterladen. Außerdem gibt es eine ganze Reihe von Online-Kursen zu Office 2007 die für einen zeitlich begrenzen Zeitram kostenlos angeboten werden.

http://blogs.msdn.com/walzenbach/archive/2006/08/13/696889.aspx

Monday, August 28, 2006 6:30:14 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Bei Galileo-Computing kann man sich kostenlos das Openbook "Praxisbuch Objektorientierung" herunterladen. Ich habe es leider noch nicht gelesen, deshalb hier die Kurzbeschreibung des Verlages:

Kaum eine Software, die nicht mehr objektorientiert entworfen und entwickelt wird! Die beiden Autoren geben eine umfassende Einführung in die Prinzipien und die Anwendung der Objektorientierung. Das Buch ist aufgabenorientiert, bietet Beispiele in den Sprachen C++, Java, Ruby, und C# sowie ein Kapitel zur aspektorientierten Programmierung.

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

Monday, August 28, 2006 5:45:58 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Der Task-Manager liefert oftmals nur unzureichende Informationen über die einzelnen Prozesse etc. Mit dem Tool Process Explorer kann man zu jedem Prozess umfangreiche Informationen abfragen. Das Tool kann auch den Task-Manager ersetzen.

Sehr praktisch ist, dass man das Tool nicht installieren muss, sondern die Exe separat gestartet werden kann.

http://www.sysinternals.com/Utilities/ProcessExplorer.html

Monday, August 28, 2006 2:28:12 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Friday, August 25, 2006

22:02 - Im Internet nach einem Tutorial gesucht.
22:10 - Genau das Passende gefunden.
22:11 - Ausdruck starten, um zu Hause zu lesen
22:12 - Geflucht, weil der rechte Rand mal wieder abgeschnitten ist

Für sole Probleme hat jeder so seinen eigenes Patentrezept, im Querformat drucken, nach Word kopieren und von da drucken oder - dieses kleine Tool installieren. Damit kann im IE die Seite so angepasst werden, dass Sie auf jeden Fall auf die Seite passt. Das Tool bietet auch eine Vorschau. Echt genial!

ACHTUNG - Bei der deutschen Version des IE muss das Icon manuell in die Symbolleiste eingefügt werden:
Rechte Maustaste auf die Symbolleiste / Anpassen dann aus der linken Liste das Icon "Fit-width Print" in die rechte Liste übernehmen.

http://www.visiontech.ltd.uk/software/#IEPrint

Friday, August 25, 2006 9:12:28 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Jeder Programmierer kennt das Problem. Am Entwicklungsrechner hat man einen schönen großen Monitor aber wie sieht die Anwendung bei einer anderen Auflösung, z.B. 1024 x 768 aus? Ein Fenster genau auf diese Größe zu bringen ist genau das, was Sizer tut. Man kann sich beliebige Größen defibnieren und dann einfach diese Größe für ein Fenster einstellen lassen.

http://www.brianapps.net/sizer.html

Friday, August 25, 2006 9:02:57 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Mit diesem Tool lassen sich verschiedene Befehle auf Datenbanken ausführen. Damit lassen sich z.B. Daten einer Tabelle abfragen und nach CSV oder XML exportieren. Der besondere Charme des Tools ist, dass es nicht installiert werden muss, es kann einfach die EXE gestartet werden. Damit ist es gut geeignet als Datenbank-Viewer für unterwegs.

http://www.albahari.com/queryexpress.html

Friday, August 25, 2006 7:11:19 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Das Buch beschreibt das Thema Threading in C' recht ausführlich und lässt sich auch als PDF herunterladen.

http://www.albahari.com/threading/

Friday, August 25, 2006 7:03:36 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Thursday, August 24, 2006
Ich habe im Speicher ein DataView mit ca. 22000 Datensätzen. Aus diesem DataView musste ich nun innerhalb einer Schleife 55 Abfragen machen. Dazu zwei Methoden:

dvINNs.RowFilter = "ProductDSID = " + drProducts["ProductDSID"];
foreach (DataRowView drINN in dvINNs)
{
...
}

oder

foreach (DataRow drINN in dvINNs.Table.Select("ProductDSID = " + drProducts["ProductDSID"]))
{
...
}

Ich habe eine Zeitmessung durchgeführt. Dies ergab für Methode I 1,5 Sek und für Methode II 0,03 Sek. D.h. der Select ist um Faktor 50 (in meinem Beispiel) schneller als der RowFilter.

Thursday, August 24, 2006 7:50:19 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Wednesday, August 23, 2006

Oft möchte man von einem DateTime-Wert die Kalenderwoche abfragen. Hierzu gibt es eine einfache Funktion:

Application.CurrentCulture.Calendar.GetWeekOfYear(CurrentDate, System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);

Dabei steht in CurrentDate das aktuelle Datum und die beiden anderen Parametern definieren Regeln, welche Woche als erste KW gilt. Standard in Deutschland ist dass der 1. Janur in KW 1 liegt, wenn dieser Tag ein Montag, ein Dienstag oder ein Mittwoch ist. Andernfalls zählt der 1. Januar noch zur letzten Woche des alten Jahrs und die KW1 beginnt am darauffolgenden Montag.

Wednesday, August 23, 2006 8:37:33 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Tuesday, August 22, 2006

Auf MSDN solve bekommt man ein VS 2005 Standard Edition und 6 Monate kostenloses Web-Hosting wenn man min. 5 CodeClips anschaut.

 

http://www.microsoft.com/germany/msdn/solve/news/watchandwin.mspx

Tuesday, August 22, 2006 8:22:20 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Um Einträge in die Toolbox von VS hinzuzufügen gibt es die Standard-Methode - rechte Maustaste, Elemente auswählen und sich dann die Elemente einzeln auswählen um sie hinzuzufügen. Weniger bekannt ist eine Methode, die gerade bei einer größeren Anzahl hinzuzufügender Controls schneller ist. Man kann die zugehörigen DLL-Dateien einfach per Drag & Drop aus dem Windows-Explorer auf die Toolbox ziehen.

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

Der kostenlose Internet Explorer Developer Toolbar von Microsoft bietet eine Fülle von sehr nützlichen Funktionen für Web-Entwickler. Der Toolbar integriert sich im Internet-Explorer. Man kann sich z.B. Objekte wie Tabellen, Bilder, DIVs etc. durch eine Umrandung hervorheben lassen oder man kann die komplette DOM-Struktur dursuchen und die Eigenschaften der Elemente abfragen und sogar verändern. Die Änderungen werden sofort sichtbar. Darüber hinaus werden noch eine vielzahl nützlicher Helfer angeboten, z.B. um Cookies anzuzeigen und zu löschen etc. Ein Tool, das bei keinem Web-Entwickler fehlen sollte!

http://www.microsoft.com/downloads/details.aspx?FamilyID=E59C3964-672D-4511-BB3E-2D5E1DB91038&displaylang=en

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

Oft möchte man den Monatsnamen eines Datums in der jeweiligen Landessprache des Anwenders ausgeben. Dies kann man einfach mit einer Zeile Code bewerkstelligen:

string MonthName = Application.CurrentCulture.DateTimeFormat.MonthNames[DateTimeValue.Month-1];

Alternativ kann man auch die Kurzform der Monate über die Eigenschaft AbbreviatedMonthNames abfragen.

Will man eine spezifische Sprache zur Ausgabe verwenden, kann man dies natürlich auch tun indem man einfach das entsprechende CultureInfo-Objekt verwendet:

CultureInfo ci = new CultureInfo("de-DE");
ci.DateTimeFormat.MonthNames[MonthID];

Tuesday, August 22, 2006 3:59:59 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Unter http://www.galileocomputing.de/openbook/visual_csharp/index.htm kann man kostenlos den gesamten text des Buches "Visual C# 2005" lesen und auch herunterladen. Das Buch ist gut geschrieben und enthält umfangreiches Wissen zur Programmierung mit C#. Es sit auf dem aktuellsten Stand (C# 2.0) und geht auch auf alle wichtigen Neuerungen ein.

Mir hat das Buch so gut gefallen, dass ich mir gleich eine Print-Version gekauft habe. Aber es kann sich ja jeder kostenlos überzeugen ;-)

Jedenfalls finde ich das Openbook-Konzept gut, da ich so die Katze nicht im Sack kaufen muss.

Tuesday, August 22, 2006 3:36:59 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Im Infragistics-Grid lassen sich einfach dei Beschriftungen der einzelnen Gruppen der Outlook-Gruppierung einstellen. Hierzu muss lediglich der Event InitializeGroupByRow verwendet werden. Das folgende Beispiel ändert die Beschriftung so ab, dass nur die Bezeichnung der Gruppe ausgegeben wird.

private void ultraGrid1_InitializeGroupByRow(object sender, Infragistics.Win.UltraWinGrid.InitializeGroupByRowEventArgs e)
{
    e.Row.Description = e.Row.Value.ToString();
}

Tuesday, August 22, 2006 3:27:03 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

In Ulm gibt es nun auch eine .net User-Group.

Die .net Developer-Group Ulm ist eine Organisation, die den Wissens- und Erfahrungsaustausch zwischen .net Entwicklern aus der Region Ulm und Oberschwaben fördern möchte. Jeder kann kostenlos und unverbindlich Mitglied werden.

In regelmäßigen Abständen werden Mitgliedertreffen abge-halten, bei denen Vorträge zu aktuellen Themen gehalten werden.

www.dotnet-ulm.de

Tuesday, August 22, 2006 10:06:39 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Das MSDN-Wiki ist eine Erweiterung zur MSDN-Dokumentation mit Tipps und Tricks aus der .net Community.

Das MSDN-Wiki funktioniert jetzt auch mit FireFox und es bietet nun auch eine RSS-Unterstützung.

http://msdnwiki.microsoft.com/en-us/mtpswiki/default.aspx

Tuesday, August 22, 2006 8:26:07 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Jede Menge Code-Snippets für alle Lebenslagen finden sich unter

http://dotnet-snippets.de/dns

Achtung Cookies müssen zugelassen werden, sonst funktioniert die Seite nicht korrekt.

Tuesday, August 22, 2006 7:39:50 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Saturday, August 19, 2006

Recht bekannt ist die Option im Infragistics Grid Datensätze durch einen Klick auf den Kopf einer Spalte zu filtern.

Es gibt aber auch die Möglichkeit, eine Zeile einzublenden, in der die Filterbedingung für jede Spalte eingegeben wird. Der Vorteil liegt dabei darin, dass auch nur Anfangsbuchstaben eingegeben werden können. Um dies zu erreichen, stellt man einfach im Designer Dialog unter Feature Picker die Option Filtering / Filter UI Type auf Filter Row. Das Ergebnis sieht dan so aus:

Saturday, August 19, 2006 3:14:13 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Dieses Tool unterstützt beim Entwickeln mehrsprachiger Oberflächen. In einer Tabelle können die Textattribute für verschiedene Sprachen eingegeben werden.

http://www.jollans.com/multilang_dotnet/multilang_for_dotnet.htm

Saturday, August 19, 2006 9:12:19 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Mit XNA Game Studio Express kündigt Microsoft eine kostenlose Entwicklungsumgebung für die X-Box Plattform unter C# und der VS-IDE an.

http://msdn.microsoft.com/directx/xna/

Saturday, August 19, 2006 9:02:25 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 

Dieser Artikel beschreibt, wie mit Windows Workflow Foundation Workflows erzeugt und betrieben werden.

http://www.theserverside.net/tt/articles/showarticle.tss?id=WorkforProcess

Saturday, August 19, 2006 8:54:40 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Enthält auch das Entity Framework. Damit soll OR-Mapping in ADO.Net integriert werden.

http://blogs.msdn.com/adonet/archive/2006/08/15/701479.aspx

Saturday, August 19, 2006 8:51:51 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Wednesday, August 16, 2006

Mit ein paar kleinen Tricks kann man auch offline mit dem TSSC arbeiten.

http://blogs.vertigosoftware.com/teamsystem/archive/2006/07/03/2984.aspx

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

Wird eine Datei aus der TeamSystem SourceControl ausgecheckt, wird von dieser datei nicht automatisch die letzte Version gehohlt wie man das von VSS gewohnt ist. Der Grund dafür ist, dass dadurch evtl. ein inkonsistenter Zustand der Anwendung entstehen könnte, da die ausgecheckte Datei in einer neueren Version vorliegt, die nicht mit den restlichen dateien des Projekts kompatibel ist.

Weitere Ausführungen unter: http://blogs.vertigosoftware.com/teamsystem/archive/2006/05/15/2755.aspx

Wednesday, August 16, 2006 6:28:08 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
 Monday, August 14, 2006

MSDN Solve ist die Lösung für alle Entwickler, die praxis-orientierte Hilfestellungen bei typischen Programmier-Herausforderungen suchen. MSDN Solve liefert verständliche Antworten auf immer wiederkehrende Fragen aus dem IT-Alltag und sorgt dafür, dass Sie Stolperfallen in Software-Projekten künftig leicht umschiffen.

http://www.microsoft.com/germany/msdn/solve/default.mspx

Monday, August 14, 2006 11:04:04 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Die aktuelle Bildschirmauflösung abzufragen ist in .NET denkbar einfach, möchte man jedoch alle verfügbaren Auflösungen erfragen und eventuell sogar eine neue Auflösung setzen, muss man auf die Win32 API-Mittel zurückgreifen. Dieser Beitrag stellt eine Klasse zur Verfügung mit der mit jeweils einer Zeile Code über die verfügbaren Auflösungen iteriert werden bzw. eine neue Auflösung festgelegt werden kann

http://www.codegod.de/WebAppCodeGod/Main.aspx?pid=168

Monday, August 14, 2006 6:47:42 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Sunday, August 13, 2006

Jede Menge Infos, die aktuellsten Downloads und vieles mehr findet man unter http://www.netfx3.com/

Sunday, August 13, 2006 11:52:10 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |  |   | 
 Wednesday, August 09, 2006

Ein wenig bekanntes Control ist das FlowLayoutPanel, das in VS 2005 standardmäßig enthalten ist. Mit diesem Control kann man Unterelemente in einer fließenden Ansicht darstellen wie das z.B. auch von Web-Seiten bekannt ist. Sie möchten eine Liste von Textboxen die untereinander stehen? Kein Problem mit dem FlowLayoutPanel. Sie können eine beliebige Richtung wählen (von rechts nach links, von oben nach unten etc.). Passen nicht alle Control in die Reihe, wird automatisch ein Umgruch eingefügt. Damit ist das FlowLayoutPanel wesentlich flexibler als man diese Funktion z.B. mit Docking erreichen könnte. Vor allem bei dynamisch generierten Control leistet das FlowLayoutPanel gute Dienste!

Wednesday, August 09, 2006 1:48:34 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 

Oft möchte man Daten, die aus Excel in die Zwischenablage kopiert wurden, in der Anwendung verarbeiten. Dies geht recht einfach, da die Excel-Daten in der Zwischenablage einfach als CSV-Format vorliegen.

string ExcelValue = "";
IDataObject ClipboadData = Clipboard.GetDataObject();
if (ClipboadData.GetDataPresent(DataFormats.CommaSeparatedValue))
{
   
StreamReader ExcelReader = new StreamReader((Stream)ClipboadData.GetData(DataFormats.CommaSeparatedValue));
   
while (!ExcelReader.EndOfStream)
   {
      ExcelValue = ExcelReader.ReadLine();
   }
}

Man holt sich die Daten aus der Zwischenablage und prüft diese, ob sie im CSV-Format vorliegen. Dann kann man mit Hilfe eines StreamReaders die Daten lesen. Die Daten kommen dann in einem Format wie z.B. 5,8;8,9;7,5. Das lässt sich nun problemlos in der eigenen Anwendung verarbeiten.

Wednesday, August 09, 2006 1:37:59 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 Tuesday, August 08, 2006

Um von generischen Objekten den Typ abzufragen kann man folgenden Code verwenden:

Dictionary<string, int> MyObject = new Dictionary<string, int>();
Type T = MyObject.GetType();
Type[] Ts = T.GetGenericArguments();

Dieser Code liefert ein Array zurück, das im ersten Element System.String und im zweiten System.Double enthält.

Weitere Infos unter http://msdn2.microsoft.com/en-us/library/b8ytshk6.aspx

Tuesday, August 08, 2006 1:33:43 PM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    |   | 
 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
Copyright © 2010 Thomas. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: