November 2006 Blog Posts

  • Vortrag zur Windows Presentation Foundation am 05.12.2006

    Am Dienstag den 05.12.2006 veranstaltet die [url=http://www.dnug-koeln.de].net user group Köln[/url] wieder Ihr [url=http://www.dnug-koeln.de/treffen/user-group-treffen/user-group-treffen-details/article/november-treffen-der-dnug-koeln/]monatliches Usertreffen[/url] mit einem Vortrag. Diesmal hält Stefan Lange einen Vortrag über die Windows Presentation Foundation (WPF, Codename Avalon) der Zukunft in der Windows GUI Entwicklung. Mit der Windows Presentation Foundation (WPF) hat Microsoft nach über 20 Jahren Windows das erste Mal tatsächlich etwas grundlegend Neues zum Erstellen von Windows und Web Anwendungen geschaffen. Das Ergebnis ist wirklich beeindruckend geworden und wird die Windows Entwicklung nachhaltig verändern. In meinem Vortrag möchte ich den Versuch unternehmen Software Entwicklern die wichtigsten Konzepte...

  • optgroup bei DropDownList via ControlAdapter

    Leider hat es MS ja mit ASP.NET 2.0 nicht geschafft auch <optgroup /> zu unterstützen. Damit könnte man die Einträge innerhalb DropDownList gruppieren. Dies würde dann so aussehen. Dies kann man jedoch leicht nachrüsten, entweder mit einem eigenen Control oder mit einem Adapter. Wie? Das soll hier gezeigt werden. ControlAdapter sind eine ganz nette Erfindung von Microsoft, damit kann man das verhalten der eingebauten Controls überschreiben. Den Weg über den ControlAdapter hat jemand bei The Code Project [1] vollzogen. Leider hat die veröffentliche Variante einige Probleme beim Postback, da keinerlei Viewstate verwaltet wird,...

  • Anti-Cross Site Scripting Library nun in der Version 1.5 verfügbar

    Microsoft hat die Anti-Cross Site Scripting Library [1] nun in der Version 1.5 [2] veröffentlicht. Damit können Webanwendungen gegen Cross Site Scripting (XSS) abgehärtet werden. Mit der aktuellen Version sind auch Methoden für das absichern von JavaScript, Attribute, Xml und mehr hinzugekommen. Desweiteren braucht man nun kein Full-Trust Level für die Anwendung mehr und darf nun auch offiziell in produktiven Systemen eingesetzt werden. Genaures findet sich im Blog des ACE-Team [3]. Wer also Fremddaten in seine Webanwendung lässt , sei es nun über ein Formular oder bei...

  • Interfaces müssen nicht implementiert werden!

    Aus der Abteilung, Sprachfeatures die vielleicht nicht jeder kennt. Derzeit ja schwer in Mode in den Blogs :), ein Trend auf den ich mal aufspringe.     Diesmal das Interface:    "Landläufige" Meinung: Erstellt man ein Interface, dann muss eine darauf aufbauende Klasse alle Methode und Eigenschaften implemtieren. Falsch[:  Muss sie nicht!   Jedenfalls nicht wenn sie schon implemtiert sind, z. B. in einer Basisklasse. Und dies ist auch ganz praktisch. Dies zeige ich hier an einem einem Beispiel.     Wenn ich z.B. mit dem Modell View Presenter Pattern [1] eine Anwendungsoberfläche erstelle und dort den Presenter einen passiven View steuern...

  • HTMLElement-Scrollposition bei einem PostBack merken

    Heute in den Newsgroups [2], es fragte Fabian Nowothnik danach wie man nach einem Postback die Scrollpositionen von einzelnen Elementen wieder herstellen kann. Für die Scrollposition der Seite gibt es dies ja seit ASP.NET 2.0 schon in der Serienausstattung. Ein Scrolling innerhalb eines DIV-Elements "passiert" ja schnell, in dem innerhalb eine DIV-Elements mehr reinpackt als die festgesetzen Ausmaße zulassen. Nun einfach den CSS-Style "overflow:auto;" oder "overlow:scroll;" gesetzt dann kann man darin scrollen, jedoch verliert sich die Scroll-Position nach dem Postback. Das ist schade. Prinzipiell sollte es doch ganz einfach sein etwas dagegen zu machen. Position der Elemente...

  • .NET Framework 3.0 ist Final!

    Heute hat Microsoft die finale Version von .NET 3.0 veröffentlicht. Das .NET Framework 3.0 ist die Version 2.0 des Frameworks zuzüglich der Module Windows Presentation Foundation (WPF), Windows Comunication Foundation (WCF), Windows Workflow Foundation (WF) und Windows Card Spaces (WPF). Alle Anwendungen die für 2.0 entwickelt worden sind laufen auch unter 3.0. Jedoch ist zu beachten das ab der Version 3.0 Windows 2000 und 98/Me nicht mehr unterstützt wird. Also Rechnervorraussetzungen empfiehlt Microsoft 1Ghz Prozessortakt und 256 MB Arbeitsspeicher. Sollte man eine Vorabversion von .NET 3.0 auf dem...

  • Download der MSDN Library August 2006

    Microsoft hat die englische MSDN Library von August 2006 in der CD-Version zum kostenlosen Download zu Verfügung gestellt. Wer sie also noch nicht hat, kann sie nun runterladen und die Entwickler Dokumentation aktualisieren. [url=http://www.microsoft.com/downloads/details.aspx?FamilyId=6671F8DA-B0CB-41DE-AD93-798FC71D344D&displaylang=en]MSDN Library August 2006 Download[/url]

  • Generische ConfigurationElementCollection

    Baut man sich für seine .NET 2.0 Anwendung eigene Konfigurationsbereiche, dann braucht man früher oder später auch eine Liste von Elementen. Braucht man dies öfters, dann wird es ein wenig nervig, da man ein wenig Grundtipparbeit für jede Auflistung hat. Hier ein generischer Ansatz für ConfigurationElementCollection. public abstract class ConfigurationElementCollection<T> : ConfigurationElementCollection where T : ConfigurationElement { protected override ConfigurationElement CreateNewElement() { return (ConfigurationElement)Activator.CreateInstance(typeof(T)); } public T this[int index] { ...

  • Mit einem eigenem Validator die Angaben in der Konfigurations-Datei überprüfen

    Unter .NET 2.0 ist es mit Ableitungen von [b]ConfigurationSection[/b] und [b]ConfigurationElement[/b] sehr einfach möglich die Konfigurations-Dateien um eigene Abschnitte zu erweiteren die dann Typsicher eingelesen und verwendet werden können. Möchte man nun die Attribute der Konfiguration direkt beim einlesen überprüfen und nicht erst wenn der Wert zur Laufzeit verwendet wird, so geht dies natürlich auch. So werden ein paar Standard-Validatoren mitgeliefert z.B. [b]IntegerValidator[/b] und [b]SubclassValidator[/b]. Einen eigenen Validator zu schreiben ist, wie so oft in .NET, natürlich auch möglich. Dazu sind nur zwei Schritte notwendig. [list] [*]Schreiben eines Validators auf Basis von [b]ConfigurationValidatorBase[/b][*]Schreiben...