12.02.2010
13:15

.NET Usergroup Bern ist Mitglied bei der International .NET Association (INETA)

Seit heute ist die .NET Usergroup Bern Mitglied der INETA. Jetzt steht auch dieses Potenzial zur Verfügung. 

11.02.2010
22:15

.NET Usergroup Bern

Die .NET Usergroup Bern kommt der Realität Stück für Stück näher. Weitere Infos auf http://www.dnug-bern.ch

08.02.2010
23:21

DevExpress Changes

Die Komponenten von DevExpress haben die klassische Versionsnummer die sich aus Hauptversion, Nebenversion und Revisionsnummer (Patch) zusammensetzt. Nehmen wir als Beispiel 9.2.6.

In der Regel können aus der Versionsnummer folgende Informationen gezogen werden:

  • Erhöht sich die Hauptversion, handelt es sich um eine neue Version des Programms.
  • Erhöht sich die Nebenversion, wurden neue Funktionalitäten hinzugefügt oder geändert.
  • Erhöht sich die Revisionsnummer, wurden Fehler beseitigt.

Diese Theorie ist nicht neu, die Praxis hat jedoch ihre Tücken. Mit dem Wechsel des ASPxGridViews von Version 9.2.6 auf 9.2.8 wurde ein Fehler korrigiert. Mit dieser Fehlerbeseitigung war es anschliessend nicht mehr möglich, im Event RowPrepared Einfluss auf die Zellen zu nehmen. Aus Sicht des Supports war die Begründung, dass mein Code ab Version 9.2.8 fehlerhaft sei, aus meiner Sicht wird in diesem Bereich nicht mehr die Erwartungskonformität erfüllt. Das hat zur Folge, dass sich der Lernaufwand erhöht, weil ich nicht mehr von den Standard-Komponenten ableiten kann, sondern die Dokumentation lesen muss. Beim ASPxGridView ist das „Hinterhältige“ dabei, dass man weiterhin auf die Zellen zugreifen und die Eigenschaften ändern kann, es hat jedoch keine Auswirkungen auf die Ausgabe mehr.

Der zweite Aspekt, solche Probleme tauchen immer dann auf, wenn Termindruck besteht. Es stellt sich dann die Frage: Quellcode überarbeiten oder neue Funktionen implementieren. Eine Variante könnte dann sein: Quellcode überarbeiten, wenn die Zeit dazu besteht. Damit dies schrittweise auch gemacht werden kann, müssen in diesem Fall die Versionen 9.2.6 und 9.2.8 auf dem Entwicklungsrechner installiert sein. Das Setup lässt aber diese Möglichkeit auf Patchlevel – Ebene nicht zu.

Damit dies doch möglich wird, werden die Komponenten der Vorgängerversionen benötigt und in ein separates Verzeichnis gespeichert. Anschliessend werden die benötigten Komponenten wieder im Global Assembly Cache installiert. Das Verzeichnis mit den Komponenten wird beim Schlüssel AssemblyFolders in der Registry aufgenommen. Die Anleitung der Vorgehensweise ist hier beschrieben.

Nachdem diese Schritte erfolgreich ausgeführt worden sind, stehen die Komponenten der Vorgängerversion wieder zur Verfügung.

Abbildung 1: Mehrere Versionen auf Patchlevel - Ebene
Abbildung 1

Diese Vorgehensweise erfordert jedoch Disziplin, damit es nicht zu einem Versionsdurcheinander in der jeweiligen Projektmappe kommt.

Assemblycache ! = Visual Studio . NET – Verweis

Gemeinsame genutzte Komponenten eignen sich hervorragend für den Assemblycache. Voraussetzung ist natürlich, dass diese Komponente signiert ist. Einige der Vorteile: Die gemeinsam genutzte Komponente ist nicht mehr in jeder Solution im bin-Verzeichnis anzutreffen und das Umstellen der bestehenden Projekte auf eine neue Version wird auch viel einfacher. Natürlich gehört auch ein wenig Disziplin dazu, wenn keine Rücksicht auf die Programme genommen wird die bereits die gemeinsame Komponente nutzen (Abwärtskompatibilität) werden die Vorteile des Assemblycache und deren Verwaltung zum Nachteil.

Nachdem die Komponente im Cache installiert wurde, sucht man diese jedoch vergeblich im .NET – Verweisbereich bei der Auswahl.

Abbildung 1: Komponente im Assembly-Cache
Abbildung 1
Abbildung 2: NET-Verweis ohne Gemeinsame Komponente
Abbildung 2

Dieser Auswahlbereich zeigt jedoch nicht den Assemblycache an, sondern die Komponenten, die in der Registry im Bereich "AssemblyFolders" aufgeführt sind. Ein Vorteil dieser Umsetzung ist, dass die XML-Datei mit den Kommentaren auch in den Ordner kopiert und so für die IntelliSense – Funktion bereit gestellt werden kann.

Ein Nachteil: Es kann jeweils nur eine Version der Komponente in das Verzeichnis kopiert werden. Bei einer Anforderung zur Auswahl unterschiedlicher Versionen müssen entsprechend mehrere Schlüssel mit unterschiedlichen Verzeichnispfaden angelegt werden.

Zum Einrichten des Ordners für die . NET-Referenz sind folgende Schritte nötig:

  • Verzeichnis anlegen
  • Komponenten ins Verzeichnis kopieren
  • Regedit öffnen
  • Zur Position HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ .NET Framework\AssemblyFolders wechseln bzw. bei 64bit Systemen in HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ .NET Framework\AssemblyFolders
  • Zur Position VS 2010 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx bzw. bei 64bit Systemen in HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx
  • Neuen Schlüssel mit gewünschten Namen anlegen
  • Als Wert wird der komplette Verzeichnispfad angegeben
  • Falls Visual Studio geöffnet ist, schliessen und neu starten
Abbildung 3: Neuer Schlussel im RegEdit-Editor
Abbildung 3
Abbildung 4: Komponente in .NET-Verweis
Abbildung 4

In Visual Studio 2010 ist die Definition mit VersionMinimum neu. Hier wird definiert, ab welcher .NET-Version die Assembly zur Auswahl stehen soll.

01.02.2010
22:18

Softwarequalitätsmerkmale DIN ISO 9126

Softwarequalität spielt immer eine Rolle. Für ein Grobraster eignet sich die Übersicht der Qualitätsmerkmale nach DIN ISO 9126.

Wen diese Merkmale in der Analysephase getroffen werden, kann es auch einen ersten Hinweis für die geplante Architektur liefern. Werden die Qualitätsanforderungen gewichtet - Als Beispiel: Ist die Übertragbarkeit der Applikation nicht von Bedeutung, können während einer Sitzung Fragen gestellt werden, die eine Abgrenzung ermöglichen und den Arbeitsaufwand verringert oder das Ausreizen der Umgebung zu lässt.

Qualitätsmerkmalsehr wichtigwichtignormalnicht wichtig
Funktionalität     
Zuverlässigkeit     
Benutzbarkeit     
Effizienz     
Änderbarkeit     
Übertragbarkeit     

Nach dieser ersten Analyse können die Anforderungen in messbarer Form definiert werden.

Translate this page

Kategorien