Silverlight

In einem weiteren Artikel hab ich beschrieben, wie eine Silverlight DLL auch unter .NET/WPF verwendet werden kann. Dabei ist man allerdings auf die Verwendung von nur wenigen Namesspaces beschränkt. Wie ist es jedoch bei Entwicklung einer UI bis hin zu Custom Controls. Hier möchte ich mich auf die Entwicklung eines Custom Controls konzentrieren, da das für mich in einem besonderen Fokus steht.

Habe zunächst versucht die Testentwicklung unter Visual Studio 2010 und Silverlight 4 Beta durchzuführen. Zu deisem Zeitpunkt war eine RC des VS verfügbar, jedoch konnte man die Silverlight 4 Beta nur zum Studio Beta installieren. Gequält durch viel zu viele Abstürze des VS, vermutlich hervorgerufen durch die komplexere Projektstruktur mit Links zu Dateien in der “Solution” und Prokjekte, habe ich nun das Studio 2008 und SL 3 verwendet. Einfachere Projekt konnte ich in der Beta des Visual Studio allerdings anstandslos erstellen, bauen und debuggen.

Probleme und Lösungsvorschläge zum CrossDevelopment eines CustomControls:

Continue reading

Zusammenfassung / Kurzform des Artikel “What’s New in Silverlight 4 Beta?

Wie es um die neue Silverlight Version 4 steht wurde auf der PDC im November verkündet. Es sind einige Neuerungen zu erwarten. Eine Beta läßt sich auch bereits herrunterladen die aber zum Visual Studio 2010, derzeit als Beta 2 verfügbar, installiert werden muss. Damit ist auch gleich zu erkennen, dass die Release des Studio 2010 ohne SL 4 daherkommt. SL 4 und die Tools lassen sich aber auch auf die Visual Web Developer Express 2010 hinzuinstallieren, die ebenfalls als Beta 2 zur Verfügung steht. Die neue Release soll Silverlight so aufbohren, dass sich damit Anwendungen erstellen lassen, die bisher dem Desktop vorbehalten waren. Den Vergleich mit einem JavaApplet scheue ich allerdings, da ich nicht die Grenzen von JavaApplets kenne. Multimedia Fähigkeiten von Flash und Businessapplikationen wie in einem JavaApplet, oder einfach nur .NET und WPF im Kleinformat. Folgende Liste zeigt die zu erwartenden Neuerungen, ohne Anspruch auf Vollständigkeit:

  • Druckausgabe, sowohl Bildschirmhardcopy und Bildschirmunabhängig.
  • mehr als 60 anpassbare Steuerelemente, unter anderem: RichTextbox, Masked Textbox mit Eingabevalidierung, voll ausgestattetes DataGrid
  • WCF RIA Services: Einführung der WCF in SL
  • offizielle (nicht umfassende) Unterstützung von SL4 Bibliotheken unter .NET CLR. siehe Artikel hier
  • Verbesserungen an DataBinding, unter anderem Formatierungen von Strings
  • Verbesserte Unterstützung von SL in Visual Studio ab Version 2010
  • Voll editierbare Entwickleroberfläche für erweiterte Steuerelemente und besseres Layouting
  • Besseres Property Grid und neue Editoren für einige Eigenschaften
  • Generell Verbesserungen im Studio 2010 + Blend
  • Unterstützung von WebCam und Mikrofon
  • Lokales Video Capture (WebCam) für die Kommunikation
  • Drag&Drop und Copy&Paste über die SL-Anwendung hinaus (Desktop-Anwendungen).
  • Unterstützung des Mausrades
  • Kontextmenü über rechte Maustaste (sonst kommt ja nur ein Menü mit “Über Silverlight”
  • Unterstützung von Google´s Chrome
  • Performanceverbesserungen
  • MultiTouch
  • Multicast networking
  • Schutz der Inhalte über DRM
  • Rendern von HTML innerhalb der SL Anwendung

Ein neuer Projekttyp im Studio 2010 erlaubt es, SL 4 Anwendungen so zu entwickeln, dass Sie wie normale Anwendungen auf dem lokalen Rechner “installiert” und gestartet werden können. Vom Look&Feel erscheinen sie dann auch wie diese. Vom Browser bleibt dann nur der Rahmen übrig, auch die Sandbox bleibt weiterhin bestehen. Vertrauenswürdige Anwendungen können auch vollen Dateizugriff auf das Benutzerverzeichnis zum Schreiben und Lesen von Dateien erhalten. Interaktion mit Office und anderen Anwendungen via COM.

Zusammengefasst aus “What’s New in the .NET Framework Version 4

Wichtig: Nur ne Beta, kann sich also alles wieder ändern.

  • Kompatibilität und Bereitstellung
  • Parallele Verarbeitung (MultiCore)
  • Verbesserung des Sicherheitsmodels
  • Renovierung der CLR
  • Netzwerk
  • Web (ASP.NET)
  • DesktopUI (WPF)
  • Daten / Datenbanken (ADO.NET)
  • WCF und WF

Zusammengefasst aus dem Artikel Sharing Silverlight Assemblies with .NET Apps aus dem CLR Team Blog von Miguel Madero.

Schon auf der PDC wurde angekündigt, dass die Version 4 von Silverlight es ermöglichen wird, Bibliotheken zu Implementieren, die sowohl von Silverlight 4 als auch von der .NET 4 CLR verwendet werden kann.

Das beschränkt sich allerdings auf die Verwendung von derzeit vier SL4-Bibliotheken, die als Referenz zu einem SL4-Projekt hinzugefügt sein dürfen.

  • Mscorlib
  • System
  • System.Core
  • System.ComponentModel.Composition
  • Microsoft.VisualBasic

Wird nun eine SL4 Bibliothek unter Verwendung dieser Bibliotheken erstellt, kann diese auch von einer .NET 4 Applikation verarbeitet werden.  SL4 goes .NET4 und nicht umgekehrt! Das liegt daran, dass die gleichnamigen .NET Bibliotheken über einen deutlich größeren Umfang an Typen verfügen.

Dieses Eigenschaft wird von den MS Leuten als “assembly portability” bezeichnet.

Diese neuen Mglichkeiten zielen hauptsächlich auf die Implementierung einer Geschäftslogik oder Datenverarbeitung ab, die dann in beiden Lagern verwendet werden kann. Die Unterschiede im Bereich der Grafik zwischen WPF und SL sind derzeit (und wird wohl auch so bleiben) zu groß, um hier eine Portabilität herzustellen.

Vorgehensweiße im Visual Studio:

  1. Projekte erstellen
    a) .NET WPF Anwendung
    b) Silverlight class library hinzugefügt
    c) Silverlight Projekt erstellt
  2. Referenzen zur Bibliothek hergestellt.
  3. Implementieren
  4. Starten

Nachgeschaut und überprüft:
Fungiert auch mit Studio 2008, SL3 und .NET3.5. Man konnte die Referenz zur SL4-Lib sogar auf das Studioprojekt angeben und musst nicht direkt die DLL referenzieren. Eine statische “return Hallo Methode” konnte problemlos angesprochen werden.

Mit Studio 2010, SL4 und .NET 4 klappte das nicht so reibungslos. Hier musste man direkt die DLL als Referenz hinzufügen, das galt auch bei einer SL3-DLL.