Re-MVPed
My MVP award for the "Client App Dev" category has been renewed for another year. Thanks!
Die Slides & Samples meiner Sessions von der BASTA! Spring finden Sie hier:
An dieser Stelle nochmal einen Dank an Tobias Richling, der mir bei meiner Custom Controls Session zur Seite stand, da meine Stimme erkältungsbedingt auszufallen drohte.
Yesterday I've been working a little with CodeDom and the CSharpCodeProvider to invoke dynamically created code. Because I'm working with some WCF types in the dynamic code, I've added a reference to System.ServiceModel and some other assemblies.
...
CodeDomProvider codeProvider =
new CSharpCodeProvider(providerOptions);
CompilerParameters compilerParams =
new CompilerParameters();
compilerParams.GenerateInMemory = true;
compilerParams.ReferencedAssemblies.Add(
"System.ServiceModel.dll");
...
CompilerResults results = codeProvider.CompileAssemblyFromDom(
compilerParams, codeUnit);
At runtime, the following exception was returned via the CompilerResults.Error collection:
Metadata file 'System.ServiceModel.dll' could not be found.
I've been wondering, because all other assembly references works fine and the code executed as expected when I don't use WCF types in the dynamic code.
The answer lies in the CSharpCodeProvider class. By default it uses the .net 2.0 compiler and don't knows about the Reference Assemblies folder (c:\Program Files\Reference Assemblies\Microsoft\Framework\...) where the additional .net 3.0 and .net 3.5 assemblies can be found.
To force CSharpCodeProvider to use the .net 3.5 compiler, a special provider option must be set:
Dictionary<string, string> providerOptions =
new Dictionary<string, string>();
providerOptions.Add("CompilerVersion", "v3.5");
CSharpCodeProvider provider =
new CSharpCodeProvider(providerOptions);
In der aktuellen Ausgabe der dotnetpro (12/2008) ist der dritte Teil meiner dreiteiligen Serie über das Managed Add-In Framework (MAF) erschienen. Aus dem Abstrakt:
Fertig zum Einsatz: Ein Command-Modell für das Managed Add-in Framework
Im zweiten Teil der Serie ging es bereits um die Integration von Windows-Forms-basierten Add-ins. In diesem Teil werden nun Dialoge zur Verwaltung und Aktivierung von Add-ins vorgestellt. Außerdem wird ein Command-Modell entwickelt, welches den Add-ins eine leichte Integration in die Menü- und Toolbars der Anwendung ermöglicht.
In der aktuellen Ausgabe der dotnetpro (11/2008) ist der zweite Teil meiner dreiteiligen Serie über das Managed Add-In Framework (MAF) erschienen. Aus dem Abstrakt:
Windows-Forms-Support für das Managed Add-in Framework
Im ersten Teil der Serie wurden die grundlegenden Elemente des Managed Add-in-Frameworks (MAF) erläutert. Nun geht es um die Entwicklung grafischer Add-ins. dotnetpro rüstet die fehlende Unterstützung für Windows-Formsbasierte Add-ins nach. Auf diese Weise können auch Bestandsanwendungen von dem neuen Modell profitieren.
Die Slides & Samples meiner Sessions von der Advanced Developer Conference finden Sie hier:
Die Slides und Samples meiner Session Occasionally Connected Clients finden Sie hier.
In der aktuellen Ausgabe der dotnetpro (10/2008) ist der erste Teil meiner dreiteiligen Serie über das Managed Add-In Framework (MAF) erschienen. Aus dem Abstrakt:
Dynamisch erweitern: Das Managed Add-in Framework in .NET 3.5
Es ist gar nicht so einfach, erweiterbare Anwendungen zu entwickeln. Das Spektrum der Aufgaben reicht vom Auffinden der Add-ins über die dynamische Bindung bis hin zu Versionierung und Absicherung. Für all diese Aufgaben bietet Microsoft das neue Managed Add-in Framework (MAF), das Teil von .NET 3.5 ist. dotnetpro stellt es vor und beleuchtet seine Stärken und Schwächen.
Im August ist beim Hanser Verlag das Buch „.NET 3.5: WPF, WCF, LINQ, C# 2008, VB 2008 und ASP.NET AJAX“ erschienen, das ich zusammen mit Holger Schwichtenberg, Walter Doberenz, Matthias Fischer, Jana Frank, Thomas Gewinnus, Jörg Krause und Patrick A. Lorenz geschrieben habe. Ich habe hierbei den Teil über die Windows Presentation Foundation beigesteuert.
Weitere Infos gibt's hier.
In der aktuellen Ausgabe des dotnet Magazin (9/2008) ist der Artikel „SQL Server Security für Entwickler“ erschienen, den ich zusammen mit Dominick Baier geschrieben habe.
Aus dem Abstract:
Das Rückgrat nahezu jeder modernen Anwendung ist eine Datenbank. Dies bedeutet, dass die Gesamtsicherheit einer solchen Anwendung fest mit der Sicherheit der Daten gekoppelt ist. Aus diesem Grund sollten Entwickler ein Grundverständnis für das Datenbank-Sicherheitsmodell haben sowie die Gegenmaßnahmen für die typischsten Daten-Angriffe kennen.
Für die aktuelle Ausgabe der dotnetpro (09/2008) habe ich einen VIP-Tipp beigesteuert.
Im VIP-Tipp stellt ein Experte fünf bis zehn Buchtitel vor, die er persönlich für besonders lesenswert hält. Der VIP-Tipp soll als Entscheidungshilfe für Softwareentwickler bei der Auswahl der passenden Fachlektüre dienen. Die Aktion ist eine Kooperation zwischen der Fachbuchhandlung Lehmanns, dem Seminaranbieter Professional Developer College und der dotnetpro.
Neben der Veröffentlichung in der dotnetpro, werden die empfohlenen Bücher auch auf der Site von Lehmanns (www.lob.de/viptip) beschrieben.
In der aktuellen Ausgabe der dotnetpro (08/2008) sind zwei Artikel von mir zum Schwerpunktthema „GUI“ erschienen.
Fenster mit System
Windows Forms hat sich im Bereich der Desktop-Anwendungen als De-facto-Standard etabliert. Doch mit der Windows Presentation Foundation steht bereits ein direkter Konkurrent in den Startlöchern. Kann sich der „Dauerläufer“ in Zukunft behaupten?Im Rausch der Oberfläche
Mit der Windows Presentation Foundation will Microsoft nicht nur die GUI-Entwicklung auf eine neue Stufe stellen, sondern auch die Grenzen zwischen Desktop und Web überwinden. Doch eignet sich das neue System auch für schnöde Businessanwendungen?
Darüber hinaus wurde ich von der dotnetpro zum Thema „Erweiterbare Anwendungen“ interviewed.
Erweiterbare Anwendungen aufbauen
Das Microsoft Add-in Framework (MAF) ist eine neue Möglichkeit, Anwendungen erweiterbar auf zubauen. Jörg Neumann wird das Framework auf der prio.conference 2008 vorstellen. dotnetpro sprach mit ihm, welche Vor- und Nachteile es bringt.
Die Slides & Samples meiner Vorträge, die ich auf der Jump!-Konferenz gehalten habe, finden Sie hier:
Neulich machte mich jemand darauf aufmerksam, dass die Pfeiltasten in Input Controls nicht funktionieren, wenn diese vom Add-In bereit gestellt werden.
Der Grund war, dass die entsprechenden Keyboard-Messages nicht per SendMessage() synchronisiert wurden und somit auf Host-Seite hängen blieben.
Ich habe den Bug gefixed und die aktuelle Version hier bereit gestellt.
PS: Wenn Sie mehr über System.AddIn oder meine Windows Forms-Implementierung erfahren möchten, kommen Sie auf dotnetpro Jump!-Konferenz, die am 24.04. in München statt findet. Hier halte ich eine Session zu dem Thema und beantworte gerne Ihre Fragen.