Vorschau auf Windows 8 für Entwickler

by wmn 24. November 2011 00:09

Seit geraumer Zeit gibt es ja Windows 8 und Visual Studio als Preview-Version zum herunterladen. Dennoch sind viele Dinge, die auf die Entwickler zukommen, unklar. Wer nicht die Zeit hat, alles selbst auszuprobieren, sollte sich mal folgendes Video ansehen (1 h!). Es ist die bisher beste Präsentation, die ich gefunden habe: http://dnrtv.com/dnrtvplayer/player.aspx?ShowNum=0207

Inzwischen gibt es auch ein WIKI zum Thema, das fortlaufend erweitert wird: http://metroapps.wikispaces.com/ 

In diesem Wiki habe ich zum ersten Mal auch eine vernünftige Übersicht zum Thema Kompatibilität zwischen heutigen WPF/Silverlight-Anwendungen und WinRT-Anwendungen im Metro-Style gefunden!

besser wie tippen – Aspektorientierte Programmierung mit PostSharp

by wmn 23. November 2011 19:11

Häufig hat man ja die Anforderung bei der Anlage von Klassen immer wieder gleiche Interfaces/Methoden zu implementieren. Hierdurch erhält man immer wieder sehr ähnlichen redundanten Code. In einigen Fällen kann man sich noch durch Ableitungen helfen aber auch das ist nicht immer die Lösung.

Wer sich noch nie mit dem Thema AOP beschäftigt hat, sollte sich vorab folgendes Whitepaper unbedingt durchlesen. Es gibt einen sehr guten Gesamtüberblick über die Möglichkeiten dieser Technologie.

Ein Ausweg aus dieser Problematik kann das Tool PostSharp und die aspektorientierte Programmierung sein. Aus den Beispielen von PostSharp kann man sich eine Menge Ideen holen. Hier gibt es auch eine ganze Menge Tutorials, die man sich ansehen sollte. Die ganze Serie findet man hier  – Nach der Installation des Tools kann diese Serie übrigens auch direkt vom Studio aus aufrufen.

Visual Studio selbst unterstützt die AOP noch nicht komplett selbst. In der Regel kann man hierfür eine ganze Reihe von Bibliotheken einsetzen, die diesen Mechanismus zur Verfügung stellen. PostSharp ist eines der bekanntesten Tools und kommt inklusive einer guten VS-Integration daher.

PostSharp kann man hier herunterladen: PostSharp Download

Ein wichtiges Tool in diesem Zusammenhang ist das Programm ILSpy, das man hier herunterladen kann: http://wiki.sharpdevelop.net/ILSpy.ashxHiermit lässt sich der IL-Code von DLLs direkt und komfortabel ansehen.

Im Zusammenhang mit dem EntityFramework verwendet auch Microsoft die AOP innerhalb von VS für die eigenen Klassen. Leider wird das generieren eigener Attributklassen von VS bisher nur begrenzt unterstützt sodaß der Einsatz von Tools wie PostSharp ein ziemlich spannendes Thema ist. In jedem Fall lohnt es sich, sich mit der Thematik einmal ausführlich zu beschäftigen.

Tags:

c# | Visual Studio

DevForce unterstützt inzwischen den Code-First Ansatz

by wmn 18. November 2011 17:30

Seit Kurzem ist eine neue Version von DevForce (www.Ideablade.com) freigegeben worden. Jetzt unterstützt das Produkt auch den Code-First Ansatz im Zusammenspiel mit dem Entity-Framework. Nähere Informationen gibts wie immer hier: www.devforce.de

Außerdem gibt es seit einigen Tagen feste Lizenzpreise in Euro! Die Preisliste findet sich ebenfalls auf der deutschen Webseite. Wer nicht per Kreditkarte bestellen will kann das Produkt auch über TMN beziehen und mit Rechnung bezahlen (www.tmn-systemberatung.de ).

Wie machen wir weiter??

by wmn 18. November 2011 17:24

Nach den vielen Dingen, die uns auf der Build-Konferenz im September gezeigt und vor allem nicht gezeigt wurden, fragen sich sicher viele, wie sie denn jetzt weiter machen sollen. Speziell die Zukunft der Silverlight-Anwendungen, Visual-Studio und .NET ist für viele nicht klar absehbar. Dies führt auch zu Problemen in der Argumentation bei und mit unseren Kunden. Wer hier noch Argumente und Hinweise braucht, sollte sich mal folgende Links ansehen. Vielleicht helfen sie ja dem ein oder anderen weiter:

Ward Bell: http://neverindoubtnet.blogspot.com/

Robert Lhotka: http://www.lhotka.net/weblog/

Und sein Statement zu SL: http://www.lhotka.net/weblog/Default.aspx#a12925691-3e22-41e2-9d8f-a66c115e8b8c

PPEDV: http://blog.ppedv.de/

Informationen zu DevForce

by wmn 30. September 2011 18:08

Auf der BASTA habe ich das Produkt DevForce vorgestellt. Als Partner von Ideablade sind wir als Ansprechpartner in Deutschland aktiv. Wir haben daher auf unserer Homepage angefangen entsprechende Informationen zum Produkt bereit zu stellen. Erste Unterlagen haben wir auch schon übersetzt. Bei Fragen bitte einfach anrufen: Infos zu DevForce

Vortragsunterlagen zum BASTA-Vortrag Silverlight und MVVM mit Caliburn-Micro in der Praxis

by wmn 28. September 2011 19:36

Gestern hatte ich in Mainz meine Projektfallstudie vorgestellt. Präsentiert wurde eine Silverlight-Anwendung in der wir Caliburn-Micro, Ideablade DevForce sowie die Telerik Controls verwendet haben. Im Vortrag ging es dann hauptsächlich um die Gesamtarchitektur der Anwendung sowie das Zusammenspiel der verschiedenen Bibliotheken. Auf den letzten Seiten der Präsentation finden sich auch die Links zu weiterführenden Informationen.

Präsentation zur Projektfallstudie

Sehen wir uns auf der BASTA?

by wmn 23. September 2011 20:28

Ich möchte nur nochmals darauf hinweisen, dass wir als Partner von Ideablade dieses Jahr auf der BASTA in Mainz ausstellen werden.

Außerdem werden wir im Rahmen einer Projektfallstudie ein Silverlight-Projekt von uns vorstellen.

Wer näheres wissen will findet die Infos hier: www.basta.net

Ich würde mich freuen, den ein oder anderen in Mainz begrüßen zu können. Bis kommende Woche.

Micha

Tracing and Caching fürs Entity Framework

by wmn 4. August 2011 19:13

Tracing und Caching sind wichtige Dinge insbesondere bei größeren Anwendungen. Hierzu kann man sich viele Dinge selber erstellen. Wer dazu keine Zeit hat sollte mal einen Blick auf die Tools werfen, die vom Entity-Framework-Team bereitgestellt wurden. Hier ist auch nochmals ziemlich gut erklärt, wie man sich in die bestehende Architektur des Entity-Frameworks “einklinken” kann.

http://code.msdn.microsoft.com/EFProviderWrappers

Schon entdeckt? Entity Designer Database Generation Power Pack

by wmn 20. July 2011 17:41

Im Entitydesigner von Visual Studio kann man ja sein Datenmodell inzwischen recht bequem pflegen. Es ist inzwischen auch möglich erst ein reines konzeptuelles Modell der Datenbank in Visual Studio anzulegen und später aus diesem Modell heraus die Datenbank generieren zu lassen (Model first). Allerdings bietet der Designer nicht alle erforderlichen Funktionen an, die man sich so wünschen würde. Hier greift das obengenannte “Power Pack” an und erweitert die Funktionalität.

Eine gute Beschreibung hierzu gibts hier: http://blogs.msdn.com/b/adonet/archive/2010/02/08/entity-designer-database-generation-power-pack.aspx

und hier eine kurze deutsche Einführung mit einigen Hinweisen auf typische Problemchen beim Start: http://www.databinding.net/blog/post/2010/08/20/entity-framework-4-model-first-der-tph-strategie-mit-hilfe-des-entity-designer-database-generation.html

Den aktuellen Download (juli 20111) gibts hier:http://visualstudiogallery.msdn.microsoft.com/df3541c3-d833-4b65-b942-989e7ec74c87

Windows 8 und die Entwickler – Die Gerüchteküche brodelt

by wmn 1. July 2011 20:49

Nachdem es zu diesem Thema zahllose Diskussionen gibt, habe ich hier mal einige Links zu aktuellen Informationen gesammelt. Das spart dem ein oder anderen sicher die mühsame Suche nach verwertbaren Informationen.

http://www.zdnet.com/blog/microsoft/microsoft-needs-to-tell-windows-8-developers-now-about-jupiter-and-silverlight/9608?tag=rbxccnbzd1

http://arstechnica.com/microsoft/news/2011/06/windows-8-for-software-developers-the-longhorn-dream-reborn.ars

http://www.heise.de/developer/artikel/Windows-8-HTML5-und-die-Folgen-fuer-NET-1267153.html

Nachtrag vom 11.8. Informationen von Telerik zum Thema: http://networkedblogs.com/lvZm1 

 

Die Reihenfolge der Links ist willkürlich und ohne Wertung! Sollte jemand noch was sinnvolles finden bin ich sehr daran interessiert.

Lesenswerter Artikel zu Windows 8 und was auf uns erwartet

by wmn 27. June 2011 23:47

In den vergangenen Wochen gab es ja ziemliche Unruhe unter den Entwicklern, was die Zukunft von .NET, WPF und Silverlight betrifft. Nach wie vor hat sich Microsoft nicht zu Details geäußert und die Aufklärung auf den September verschoben. In dieser Phase der Verunsicherung hilft vielleicht folgender Fachartikel etwas Licht in die Gerüchteküche zu bringen:

http://arstechnica.com/microsoft/news/2011/06/windows-8-for-software-developers-the-longhorn-dream-reborn.ars

Viel Spaß beim Lesen.

Windows Phone Entwicklung und Virtuelle Maschinen

by wmn 9. February 2011 18:09

Seit einiger Zeit bin ich ja auch stolzer Besitzer eines Windows Phone 7 Geräts (HTC Pro 7). Zusammenfassend kann man sagen, daß ich von dem Gerät durchweg begeistert bin. Anfangs war ich auch sehr skeptisch, ob Microsoft, nach den unrühmlich Windows Mobile Erfahrungen, in der Lage sein wird, ein vernünftiges Handybetriebssystem auf den Markt zu bringen. Aber Respekt, sie haben aus den Erfahrungen gelernt und wirklich ein brauchbares Umfeld geschaffen.

Inzwischen habe ich natürlich auch die ersten Anwendungen erstellt und damit entsprechende Erfahrungen gesammelt. Einige wichtige Dinge, die wie immer kaum zu finden sind, möchte ich an dieser Stelle kurz weiter geben:

Für meinen ersten Test habe ich versucht die Windows Phone 7 Tools auf  einer neuen/leeren virtuellen Maschine zu installieren. Hier erhält man im Rahmen des Setups etliche unspezifizierte Fehler, die in einem Blue-Screen und dem Totalabsturz (!!!) der virtuellen Maschine münden! Der Setup bricht dabei einfach ab, der Bluescreen kommt und die virtuelle Maschine bootet neu! Nach reichlich aufwändiger Recherche habe ich dann den Hinweis gefunden, daß derzeit die Installation des Windows-Phone-Emulators auf einer virtuellen Maschine nicht unterstützt wird. Das hätte man im Setup auch prüfen und in Form einer sauberen Meldung anzeigen können.

Also habe ich die Tools samt der ZUNE-Software nochmals auf meiner Basismaschine (windows 7, 64bit) installiert. Hier klappte sofort alles reibungslos. Der erste Programmstart auf dem Emulator lief sofort. Nach Freischaltung meines Handys klappte auch das Deployment auf mein Handy sofort – sowohl im Debug- als auch im normalen Modus wurde die Anwendung korrekt installiert und ließ sich starten. Das Zusammenspiel zwischen Handy und VS2010 kein Problem.

Im nächsten Schritt habe ich wieder meine virtuelle Maschine angeworfen, auf der bereits ein WCF-Service lauffähig unter dem IIS installiert war. Auf dem Handy habe ich dann die Silverlight-Anwendung gestartet, die diesen Service verwendet. Das Handy war nur über WLAN im Netz angebunden! Und siehe da der Zugriff auf den Service klappte sofort.

Jetzt kam noch der Test mit dem Emulator auf der Hauptmaschine und dem Zugriff auf den WCF-Service in der virtuellen Maschine: Und hier kommt eine Überraschung, mit der ich nicht gerechnet habe:

image

Offensichtlich werden hier gleiche Mechanismen zur Verwaltung des Emulators wie auch der virtuellen Maschine verwendet. Aber der zugehörige Manager kann nicht gleichzeitig für beide Dinge verwendet werden! Eine Lösung für dieses Thema habe ich bis jetzt noch nicht gefunden aber ich bleibe dran…

Insgesamt funktioniert die Anwendungsentwicklung auf dem Gerät ziemlich reibungslos und macht richtig Spaß. Sobald ich vernünftige Beispiele erstellt habe werde ich sie hier bereitstellen. Jetzt stehen erst einmal Entwicklungen für die Kunden an.

Video zu Lightswitch auf Channel 9

by wmn 30. August 2010 20:59

In den vergangenen Tagen gab es immer wieder Hinweise auf ein neues Produkt von MS das sich Lightswitch nennt. Hierbei handelt es sich um einige Projekttemplates und Designer mit denen man ganz einfach komplette Datenbankanwendungen erstellen kann. Ich halte das Produkt für viele kleine Projekte für enorm interessant. Auch wenn es sich um einen Anwendungsgenerator handelt, verbaut man sich durch die Benutzung nichts! Insbesondere für Einsteiger bietet sich ein äußerst komfortabler Weg in die MVVM- Anwendungsarchitektur. Generiert werden dabei Silverlight Anwendungen, die mit beliebigen Datenquellen arbeiten können. Derzeit sind Projektvorlagen für C# und VB verfügbar.

Inzwischen ist auch die Beta zum Download bereit gestellt worden. Wer sich einen tiefergehenden Überblick verschaffen will - insbesondere was die Erweiterbarkeit angeht - sollte sich folgendes Video mal ansehen:

http://bit.ly/csqb3P

Übrigens wurde auch auf Universalthread eine separate Rubrik eröffnet. Hier laufen bereits die ertsen Diskussionen zu diesem Thema: www.universalthread.com.

 

schon gesehen? Solution Navigator aus den VS 2010 Productivity Power Tools (Update)

by wmn 21. July 2010 01:05

Im Visual Studio 2010 kann man sich über den Extension Manager zahlreiche hilfreiche Utilities installieren. Eine solche Erweiterung sind die “Visual Studio 2010 Productivity Power Tools”. Hier gab es in den letzten Tagen ein Update, das ein interessantes Tool mitbringt, den Solution Navigator. Dabei handelt es sich eigentlich um einen erweiterten Solution Explorer:

image

Dieses Paket von kleinen Utilities hat aber noch mehr zu bieten, was man sich mal ansehen sollte….

freies Refactoring Tool

by wmn 12. January 2009 18:58

Viele kennen Resharper als Refactoring Tool seit langem. Von DevExpress gibt es ein deutlich eingeschränktes Tool mit ähnlicher Funktionalität - dafür ist es Freeware:

 

http://www.devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/

Tags:

c# | Visual Studio

VSTS 2010 - Artikel zu den neuen Templates/Features

by wmn 7. January 2009 19:00

In Visual Studio 2010 Team-System kommen wieder etliche neue Features und Verbesserungen hinzu. Insbesondere die Templates und die zugehörigen Planungstools werden erweitert. Ein guter Artikel zu dn kommenden Dingen findet man hier:



http://msdn.microsoft.com/en-us/magazine/2009.01.vsts.aspx

VS Explorer for Visual Studio released.

by wmn 7. January 2009 18:59





von Universalthread.com:

From SSWare: "VS Explorer adds a Windows Explorer-Like file and folder browsing window to Visual Studio. It provides complete access to file andfolder context menus (including 3rd party extensions such as TortoiseSVN) and drag-drop functionality which allows directly adding files/folders to your projects. It can quickly browse to the current solution folder, project folder
or the selected item. It can add selected dll/exe files as references and open command prompt window on selected folder. VS Explorer eliminates switching back and forth between Visual Studio  and Windows Explorer and other external programs and allows you to focus on your work slow and preserve concentration, save time, reduce stress and work efficiently."

http://www.ssware.com/vsexplorer/vsexplorer.htm

Tags:

c# | Visual Studio

Aus Universalthread: ShellObjects.Net 2008 released with full support for Visual Studio 2008 and Vista

by wmn 4. November 2008 19:08

ShellObjects.Net 2008 is a set of components which allow your applications to create quick-launch like appbars with drag-docking and autohide functionality [ShellAppBar], display MSN/Office2003 style popups [ShellPopupNotification], create back-forward navigating wizards [Wizard], display Explorer-like progress dialogs [ShellProgressDialog], monitor system idle time [SystemIdleTimer], perform multiple file/folder operations with Explorer-like progress dialog support [ShellFileOperation], add automatic resizing and resolution-independence to your forms [Resizer], define and listen to system-wide hotkeys [ SystemHotkey], create system tray icons with support for animations, multiple icons and balloon styles [ShellNotiyIcon], display Vista-style task-dialogs [TaskDialog], SingleInstanceComponent, TaskScheduler library, shortcut/internet shortcut library and more. ShellObjects.Net is written in 100% C# managed code; it fully supports Visual Studio 2008 with Net 3.5/3.0 and Vista; it has a royalty-free redistribution license; it has no external dependencies and it comes with comprehensive documentation and numerous samples.

http://www.ssware.com/shlobj/shlobj.htm

Tags:

c# | Visual Studio

http Verkehr mit Fiddler analysieren

by wmn 4. November 2008 19:07

Fiddler ist ein HTTP Debugging Proxy. Damit kann der HTTP-Traffic mitsamt allem was dazugehört (Request- / Response-Headers, Bilder, CSS, …) analysiert werden.

Fiddler is freeware and can debug traffic from virtually any application, including Internet Explorer, Mozilla Firefox, Opera, and thousands more.

Fiddler ist eine Standalone-Software, alle Microsoft Programme d.h. Internet Explorer, Outlook Express, etc... sind automatisch so konfiguriert, dass der Verkehr analysiert werden kann.

Um auch den Verkehr mit Firefox analysieren zu können, muss dieser konfiguriert werden.

Erste Möglichkeit (Für Firefox):

  1. Fiddler installieren
  2. Zu "Eigene Dateien/Dokumente" navigieren, dort in den Ordner "Fiddler\Scripts" wechseln
  3. In diesem Verzeichnis gibt es eine Datei Namens "BrowserPAC.js"
  4. Den kompletten Pfad mit der genannten Datei in die Zwischenablage kopieren
  5. Im Firefox auf Extras -> Einstellungen -> Erweitert
  6. Dort das Tab "Netzwerk" auswählen und im Verbindungsbereich auf "Einstellungen" klicken
  7. Im nächsten Fenster die Option "Automatische Proxy-Konfigurations-URL auswählen, den vorher kopierten Pfad (inkl. Dateinamen) einfügen und auf "Neu laden" klicken.

Ein solcher Pfad kann bspw. so lauten: C:/Users/<Benutzername>/Documents/Fiddler2/Scripts/BrowserPAC.js

Ab sofort wird auch der Verkehr mit Firefox im Fiddler analysiert.

Zweite Möglichkeit (Auch für alle andere Programme):

  1. Im Firefox ins selbe Menü wie oben wechseln
  2. "Manuelle Proxy-Konfiguration" auswählen und dort die IP "127.0.0.1" und den Port "8888" festlegen

Hierbei sollte die Einstellung nach der "Fiddler-Session" wieder rausgenommen werden.
Wichtig: Auch die automatische Konfiguration muss wieder herausgenommen werden, da Firefox ansonsten keine Verbindung herstellen kann (Wenn Fiddler nicht läuft).

Siehe auch:

Tags:

c# | Visual Studio

Assemblies signieren Schritt für Schritt

by wmn 4. November 2008 19:02

Mein Assembly bekommt einen starken Namen - Erstellen und Signieren einer Assembly mit strong name
Was ist ein ?Strong Name??

Ein Assembly, das mit dem Anwendungsverzeichnis ausgeliefert wird, benötigt in der Regel keinen besonderen Namen. Ein Assembly aber, das von mehreren Anwendungen gleichzeitig benutzt werden soll, braucht einen absolut eindeutigen Namen ? den sogenannten ?strong name? (starken Namen).
Dieser strong name ist ein einfacher Textstring, der sich aus dem Namen der Assembly, einem öffentlichen Schlüssel und einer digitalen Signatur zusammensetzt.
Ein strong name erfüllt folgende Anforderungen:
? Namenseindeutigkeit durch die Verwendung eindeutiger Schlüsselpaare
? Schutz der Versionsherkunft ? nur der Entwickler des Codes kann eine Folge-Version des Assemblies erstellen
? garantiert Integrität der Assembly
? Installation im Global Assembly Cache (GAC) möglich

Um die Vorteile eines Assemblies mit starkem Namen zu behalten und Dll-Konflikte zu vermeiden, können Assemblies mit strong name nur auf Assemblies mit strong name verweisen.

Wie erstelle ich eine Assembly mit einem starken Namen?
Um ein Assembly mit einem starken Namen zu erstellen, muß man zuerst ein Schlüsselpaar aus einem öffentlichen und einem privaten Schlüssel generieren.
Dafür gibt es das Kommandozeilen-Tool sn.exe im Verzeichnis %FrameworkSDK%\bin.
In der Eingabe aufforderung geben Sie folgenden Befehl ein:
Sn -k meinKey.snk
Es wird dabei ein Schlüsselpaar in der Datei meinKey.snk angelegt.
Dieses Schlüsselpaar muß dann der Assembly zugewiesen, d.h. signiert werden. Dafür haben Sie zwei verschiedene Möglichkeiten.

1. Signieren über Attribute unter Verwendung der Datei AssemblyInfo.vb bzw .cs:
[C#]
[assembly: AssemblyKeyFileAttribute(@"..\..\meinKey.snk")]

Falls Sie eine IDE, z. B. Visual Studio .NET, verwenden, müssen Sie wissen, wo diese nach der Schlüsseldatei sucht. Visual Basic .NET sucht die Schlüsseldatei beispielsweise in dem Verzeichnis, in dem die Visual Studio-Projektmappe enthalten ist, wohingegen der C#-Compiler die Schlüsseldatei in dem Verzeichnis sucht, in dem die Binärdatei enthalten ist.

2. Signieren über die Nutzung des Kommandozeilen-Tools Assembly-Linker al.exe:
al /out:meinAssembly.dll meinModul.netmodule /keyfile:meinKey.snk

Bei beiden Möglichkeiten wird der öffentliche Schlüssel als sogenannter Token im Manifest der Assembly abgelegt. Ein Token ist ein Teilabschnitt des vollständigen öffentlichen Schlüssels und wird aus Platzgründen oft an Stelle des eigentlichen Schlüssels verwendet. Zusätzlich wird die Assembly mit dem privaten Schlüssel signiert. Diese Signatur ist wiederum Teil des Manifests.

Durch die Umkehrung der Signatur mit Hilfe des öffentlichen Schlüssels kann man nun sicher feststellen, ob eine Assembly auf dem Weg vom Autor zum Empfänger verändert wurde.
Somit kann kein Unbefugter den Code ändern, wenn er nicht im Besitz des vollständigen Schlüsselpaares ist.

Es ist zu empfehlen, ein Schlüsselpaar nur einmal für eine Firma bzw. für ein Projekt zu generieren und diese Datei, vor allem den privaten Schlüssel, gut unter Verschluß zu halten.

Da Sie eine Assembly nach dem Erstellen nicht mehr mit einem strong name signieren können, stellt sich die Frage, was ich als Entwickler tun kann, wenn ich gerade nur über den öffentlichen, nicht aber den privaten Schlüssel verfüge. Darauf gibt es eine einfache Antwort: das verzögerte Signieren.

Wie funktioniert das verzögerte Signieren?
Beim verzögerten Signieren (delayed signing) wird die Assembly vorerst nur teilweise signiert. Dabei wird nur der öffentliche Schlüssel verwendet. Für den privaten Schlüssel und die vollständige Signierung wir Platz reserviert.

Zuerst müssen Sie über den öffentlichen Schlüssel verfügen.

Sollten Sie über das vollständige Schlüsselpaar verfügen und das verzögerte Signieren aus einem anderen Grund anwenden wollen, können Sie den öffentlichen Schlüssel so aus der Schlüssel-Datei herausfiltern:
Sn -p meinKey.snk meinPublicKey.snk
meinPublicKey.snk enthält nun nur den öffentlichen Schlüssel der Datei meinKey.snk.

Nun fügen Sie der AssemblyInfo-Datei zwei benutzerdefinierte Attribute aus dem System.Reflection Namespace hinzu:

[C#]
[assembly:AssemblyKeyFileAttribute("meinPublicKey.snk")]
[assembly:AssemblyDelaySignAttribute(true)]

Dabei wird der Name der Datei mit dem öffentlichen Schlüssel angegeben und das verzögerte Signieren durch den Wert ?true? aktiviert.
Wird das Assembly dann kompiliert, ist es zwar nur teilweise signiert, besitzt aber einen starken Namen und kann im GAC installiert und dort verwendet werden.
Zuvor muß allerdings noch die Überprüfung der Signatur deaktiviert werden, da die Assembly ja über keine gültige starke Namenssignatur verfügt. Diese Deaktivierung können Sie wieder mit dem Strong Name-Tool vornehmen:

Sn -Vr meinAssembly.dll

Zu einem späteren Zeitpunkt, üblicherweise unmittelbar vor der Weitergabe, signieren Sie dann die Assembly mit dem kompletten Schlüsselpaar:

Sn -R meinAssembly.dll

Danach schalten Sie die Verifizierung für die Assembly wieder ein:

Sn -Vu meinAssembly.dll

Hinweis: Bei allen Optionen für Sn.exe wird die Groß- und Kleinschreibung beachtet. Eine vollständige Liste aller Optionen finden Sie in der .NET Framework SDK-Dokumentation unter dem Stichwort 'sn.exe'.

Tags:

c# | Visual Studio

Attribute in C# und ihre Erklärung

by wmn 23. September 2008 20:15

Attribute

Description

Browsable(True|False)

If False, indicates that a property should not be shown in the Properties window. However, the property will still be accessible through code.

Category("")

Sets the category under which the property will appear in the Properties window. If a category with this name doesn't exist, it will be created.

DefaultValue("")

Sets the initial value that will be used for this property when the control is created.

Description("")

Specifies the text description that will be displayed for this property in the Object Browser of Properties window.

DesignOnly(True|False)

When set to True, this property will only be available at design time. This is typically used with special properties that configure how a control behaves at design time (like a SuppressUI property), and don't correspond to a "real" piece of information about the control.

ImmutableObject(True|False)

When set to True on an object property, this attribute ensures that the sub-properties of this object will be displayed as read-only. For example, if you apply this to a property that uses a Point object, the X and Y sub-property will be read-only.

Localizable(True|False)

When set to True, the design-time value for this property will be stored in a resource file, instead of in the generated code. This makes it easy to swap the value later by introducing a new resource file. When the user configures properties that don't use this attribute, the appropriate code will be inserted in the hidden designer region of the form, unless it requires a special data type (like an image) that must be stored in a resource file.

NotifyParentProperty(True|False)

Set this to True to indicate that a parent property should receive notification about changes to the property's value (and update its display accordingly). For example, the Size property has two nested properties: Height and Width. These nested properties should be marked with this attribute.

ParenthesizePropertyName(True|False)

When True, indicates that the property should be displayed with brackets around it in the Properties window (like the Name property).

ReadOnly(True|False)

When True, this property is read-only in the Properties window at design time.

RefreshProperties()

You use this attribute with a value from the RefreshProperties enumeration. It specifies whether the rest of the Properties window must be updated when this property is changed (for example, if one property procedure could change another property).

Attribute

Description

DefaultEvent

When the application programmer double-clicks on your control, Visual Studio .NET will automatically add an event handler for the default event.

DefaultProperty

The DefaultProperty is the property that is highlighted in the Properties window by default, the first time the control is selected.

Tags:

c# | Visual Studio

StoryBoarding mit TFS

by wmn 5. September 2008 20:18

In der Analysephase hilft es sehr, wenn man die Abläufe einer Software mit einem sogenannten StoryBoard vorab schon mal diskutiert und dokumentiert. Folgende Firma bietet hierzu ein entsprechendes Tool an:

http://www.stpsoft.co.uk/story/

stpBA Storyboarding is a Microsoft Visio® based requirements definition tool to visually elaborate and validate requirements with business users through GUI storyboarding. The tool can be used standalone or integrated with stpsoft Quew, IBM Rational RequisitePro® or Borland CaliberRM®. The tool generates HTML storyboards, screen flow diagrams, reader friendly UI specifications, functional specifications and test scripts.

   

                           

Key Benefits
• GUI storyboards help business users to identify issues and gaps early, minimising the cost of rework.
• Standardising the capture, validation and documentation of requirements results in fewer errors and omissions.
• Generating UI specs, functional specs and detailed test scripts saves hundreds of man hours.
• Reader friendly documentation and storyboards help to bridge the gap between users and developers.
• Minimal learning curve for users of Microsoft® Office products.
• Can be used standalone, or integrated with stpsoft Quew, IBM Rational RequisitePro® or Borland CaliberRM®.
• Can be upgraded to the Microsoft® Visual Studio® 2005 Team System edition.

Contact Details
• For Sales and General Enquiries please email sales@stpsoft.co.uk.
• For Support please email support@stpsoft.co.uk.

Pricing Information
•  The product is licensed per user per machine.
•  All prices exclude taxes and any imports/customs duties.
•  The license fee includes 12 months of email support and software updates.
•  Maintenance can be renewed annually per license.

Visual Studio Debugger – erweiterte Möglichkeiten

by wmn 18. July 2008 20:22

Der Debugger im Studio ermöglicht uns erheblich mehr als bei vielen Kollegen bekannt ist. Über die Verwendung von sogenannten "Attributen" kann man im Quellcode das verhalten des Debuggers steuern. Nähere Informationen dazu gibt's in zahlreichen Foren.

Hier aber mal ganz kurz ein Paar Anregungen:

Attribute



Außerdem kann man die Diagnosefunktionen vom Studio noch erheblich erweitern. Dies hilft z.B. bei der Suche nach Problemen mit der Datenbindung insbesondere innerhalb von WPF-Masken erheblich. So geht's:

Im config-file der Anwendung fügt man folgende Zeilen ein, um sogenannte Listeners zu definieren:

<system.diagnostics>

<sources>

<source name="System.Windows.Data" switchName="SourceSwitch" >

<listeners>

<add name="textListener" />

</listeners>

</source>

<source name="System.Windows.DependencyProperty" switchName="SourceSwitch" >

<listeners>

<add name="textListener" />

</listeners>

</source>

<source name="System.Windows.Freezable" switchName="SourceSwitch" >

<listeners>

<add name="textListener" />

</listeners>

</source>

<source name="System.Windows.RoutedEvent" switchName="SourceSwitch" >

<listeners>

<add name="textListener" />

</listeners>

</source>

<!--

<source name="System.Windows.Media.Animation" switchName="SourceSwitch" >

<listeners>

<add name="textListener" />

</listeners>

</source>

-->

<source name="System.Windows.NameScope" switchName="SourceSwitch" >

<listeners>

<add name="textListener" />

</listeners>

</source>

<source name="System.Windows.ResourceDictionary" switchName="SourceSwitch" >

<listeners>

<add name="textListener" />

</listeners>

</source>

<source name="System.Windows.Markup" switchName="SourceSwitch" >

<listeners>

<add name="textListener" />

</listeners>

</source>

<!--

<source name="System.Windows.Documents" switchName="SourceSwitch" >

<listeners>

<add name="textListener" />

</listeners>

</source>

-->

</sources>

<switches>

<add name="SourceSwitch" value="All" />

<!--add name="SourceSwitch" value="Off" -->

<!--add name="SourceSwitch" value="Verbose" -->

<!--add name="SourceSwitch" value="Warning" -->

<!--add name="SourceSwitch" value="Activity" -->

</switches>

<sharedListeners>

<!-- This listener sends output to the console -->

<add name="console"

type="System.Diagnostics.ConsoleTraceListener"

initializeData="false"/>

<!-- This listener sends output to an Xml file named AvTrace.xml -->

<add name="xmlListener"

type="System.Diagnostics.XmlWriterTraceListener"

traceOutputOptions="None"

initializeData="AvTrace.xml" />

<!-- This listener sends output to a file named AvTrace.txt -->

<add name="textListener"

type="System.Diagnostics.TextWriterTraceListener"

initializeData="AvTrace.txt" />

</sharedListeners>

<trace autoflush="true" indentsize="4"></trace>

</system.diagnostics>

Über den Block <switches> kann man sehr genau entscheiden in welchen Bereichen die Listeners aktiviert werden sollen. Im Quellcode kann man dann die erweiterten Diagnosen über folgenden Code aktivieren:

// tracing fürs binding aktivieren

PresentationTraceSources.Refresh();

PresentationTraceSources.RoutedEventSource.Listeners.Add(new DefaultTraceListener());

PresentationTraceSources.RoutedEventSource.Switch.Level = SourceLevels.All;

WICHTIG: Ausgabe erfolgt im Verzeichnis der EXE in dem Textfile <AvTrace.txt> - kann man im Config File natürlich ändern!

Tags:

c# | Visual Studio