Archiv

Artikel getaggt mit ‘Silverlight’

.Net Framework übergreifend entwickeln mit Portable Class Libraries

Mittlerweile gibt es neben dem .Net Framework 4 auch Silverlight, Windows Phone 7 und Xbox 360. Obwohl man überall in C# entwickeln kann stösst man doch schnell einmal an eine Grenze: Eine Klassenbibliothek vom vollen .Net Framework kann nicht in einem Silverlight-Projekt verwendet werden. Gleiches gilt für Windows Phone 7. Und um es noch ein wenig mühsamer zu machen sind Silverlight und Windows Phone 7 auch nicht kompatibel.

Dies zeigt sich mit dieser Fehlermeldung wenn man versucht eine *.dll einzubinden:

 

Portable Library Tools als Lösung

Eine Entdeckung der Tech Conference war für mich die Portable Class Libraries. Dieser Projekt-Typ ist vergleichbar mit einer gewöhnlichen Class Library. Allerdings kann man mehrere Framework-Plattformen als Ziel wählen.

Die einzelnen Frameworks haben eine grosse Menge an Funktionen die überall zur Verfügung stehen. So lange man in diesem Bereich bleibt ist dieser Projekttyp eine sehr gute Lösung um den Code nur einmal zu schreiben. Was genau geht und wo die Grenzen liegen ist in der MSDN gut beschrieben.

Benötigt man die Framework-Spezifischen Teile kann man immer noch mehrere Projekte machen und die *.cs Dateien verlinken.

 

Installation

Wie immer mehr Bibliotheken und Erweiterungen kann man die Erweiterung Portable Library Tools über NuGet installieren. Sobald dies gemacht ist gibt es eine neue Projektvorlage:

Über die Projekteigenschaften kann man die Zielframeworks sehr einfach auswählen:

Der wiederverwendbare Code kann nun in diesem Projekt entwickelt werden und steht Anwendungen der aktivierten Frameworks zur Verfügung.

 

Ausblick

Windows 8 wird mit Metro noch ein weiteres Framework in die .Net Welt bringen. Gemäss den Informationen aus der Tech Conference von Mitte März in Baden gibt es aber eine gute Nachricht: Visual Studio 11 (oder wie man die Version am Ende nennt) wird diesen Projekttyp bereits integriert haben. Eine Nachinstallation wird so nicht nötig sein und damit auch den Anwendern der Express-Edition zur Verfügung stehen.

 

TechDays 2011 in Basel

Anfangs Mai war es wieder so weit: Die TechDays 2011 riefen die .Net Entwickler nach Basel. Für mich waren die grossen Themen der TechDays Silverlight 5 und das Windows Phone 7. Ich hoffte auf etliche neue Ideen sowie zahlreiche Tipps und Tricks. Dies wurde nicht nur erreicht sondern noch übertroffen.

 
Silverlight 5 und Windows Phone 7
Ronnie Saurenmann zeigte die praktischen Neuerungen in Silverlight 5. Die auf Ende Jahr erwartete Version wird das Drucken deutlich beschleunigen. Wenn man mit Vektoren statt mit Rastergrafiken seine Reports drucken kann wird man viel weniger Daten hin und her schieben müssen.

Das Pivot Control wird auch endlich mit zur Laufzeit definierten Werten für die Abfragen auskommen. Man erspart sich damit nicht nur die vorgängige Aufbereitung der Daten, sondern kann viel flexiblere Abfragen machen. Zusammen mit den Animationen wird man nun ein ideales Control für die Datenauswertung bekommen.

Laurent Bugnion machte mit seinen Präsentationen zum Windows Phone 7 (WP 7) eine sehr gute Arbeit. Es hat sich gelohnt nach der Enttäuschung im letzten Jahr bei RIA Services doch wieder seine Präsentationen anzuschauen. Im ersten Teil zeigte er eine grundlegende Einführung zu WP 7 um zu erklären, was Windows Phone eigentlich ist und wie das Ökosystem dazu aussieht. Dazu nutzte er die Applikation, die er schon für seine Präsentation an der MIX im April verwendet hat.

Im 2. Teil ging es dann an die Details wie man so eine Applikation entwickelt. Wie es der Titel “WP7 Deep Dive” erwarten liess wurden dabei viele Punkte angesprochen, die vor allem für diejenigen interessant waren, die bereits fürs WP7 entwickeln. Bugnion konnte dabei unter anderem von seinen Erfahrungen mit der SBB-App berichten.

 
Gute Präsentationen aus der .NET User Group Bern
Kay Herzam und René Leupold hielten die Ende April in Bern vorgestellten Präsentationen. Ich war erfreut wie viele Leute sich „Entity Framework – ein Überblick“ von René anschauten. Obwohl im Raum nebenan Sascha Corti eine Einführung in HTML 5 gab und es sich um den ersten Session Block des 2. Tages handelte, mussten einige Zuhörer dem Vortrag im Stehen folgen.

Den Vortrag von Kay zur Webentwicklung mit ASP.NET und den 2. Teil zu Entity Framework von René konnte ich mir leider erst als Video anschauen. (Die 2 Windows Phone Sessions liefen parallel dazu)
Was ich von meinen Arbeitskollegen zu den Präsentationen hörte war durchwegs positiv und könnte wohl dazu führen das noch der eine oder andere den Weg an ein Treffen der DNUG Bern finden wird.

 
Viel Gutes und nur eine Enttäuschung
Mario Szpuszta lieferte (meiner Meinung nach) die beste Präsentation. Sein Thema „OData und WDF Data Services unter der Lupe“ war genial vorgetragen und eine ideale Kombination aus Humor und technischen Details. Ob man sich schon mit dem Thema beschäftigt hat oder es zum ersten Mal hörte – es war für jeden etwas dabei. Das Video dazu ist zwar gut, es fehlt aber leider all das was Mario auf der Bühne vorgeführt hat.

Mich enttäuschte eigentlich nur die Deep Dive Präsentation zu Expression Blend von Christian Moser. Dies lag vor allem an dem was ich vom Vortrag erwartet hatte. Die unbekannten Features konnte ich nicht finden, dafür waren die gezeigten Möglichkeiten zu sehr an dem was man innert kürzester Zeit selber herausfindet. Es gab zwar auch zahlreiche hilfreiche Tipps, doch für eine Advanced Session schien mir dies alles zu oberflächlich.

Als 100er (Basic) oder 200er (Intermediate) Session wäre die Präsentation sehr gut gewesen. So aber fehlte mir zu viel. Ich kann die Session aber all denen Empfehlen, die schon die ersten Schritte mit Expression Blend gemacht haben und nun gerne mehr wissen möchten.

 
Twitter – nichts für Schweizer Entwickler?
Vor den einzelnen Präsentationen wurde jeweils eine Twitterwall eingeblendet. Wer seinen Tweet mit dem offiziellen Hashtag #chtd versah wurde nicht nur einfacher gefunden, sondern erschien auch auf dieser Twitterwall. Man konnte so sehr schön und fast in Realtime sehen wie die TechDays bei den Entwicklern ankamen. Jedenfalls bei denen die Twitter nutzen.

Mich erstaunte wie gross die Ablehnung gegen Twitter war. Fast in jeder Session hörte man immer wieder ein „Wer braucht den das?“ oder ein „Die meinen auch es würde sich jemand für ihre Meinung interessieren“. Es schien fast als ob Twitter ein Phänomen ist, das an einem grossen Teil der .Net Entwicklern in der Schweiz vorbei gegangen ist. Ist dies wirklich so oder sass ich nur jeweils im falschen Teil der Räume?

 
Präsentationen und Videos
Auf der offiziellen Seite findet man unter Präsentationen / TechDays 11 die Folien und Videos zu den einzelnen Sessions. Leider sieht man jeweils nur was auf die Leinwand projiziert wurde. Bei anderen Veranstaltungen wie der MIX sieht man auch noch den Referenten, was die ganze Sache deutlich interessanter macht. Dies wäre vielleicht noch eine Verbesserung fürs nächste Jahr – oder den Herbst.

 
Nächste TechDays: Im Herbst
Die nächsten TechDays werden im Oktober in Bern stattfinden. Dies da Microsoft die Veranstaltungen besser aufeinander abstimmen will. Wenn ich das Ziel auch sehr gut finde, so scheint mir das Risiko in einem Jahr 2 TechDays durchzuführen sehr gross. Ich befürchte dass sich die Besucherzahlen in Bern in Grenzen halten werden, da 4 Tage Weiterbildung für viele Firmen wohl zu viel sind. Ich bin daher gespannt wie hoch die Eintrittspreise sein werden und was man alles rund um Windows 8 zeigen will.

 
Fazit
Mir gefielen die TechDays 2011 sehr gut. Die Themen im Developer Track passten zu meinen Interessen und hatten durchwegs eine gute Qualität. Wenn es auch noch Platz für die eine oder andere Verbesserung hat, so freue ich mich doch auf die nächsten TechDays.

Buch-Rezension zu “Building Enterprise Applications with WPF and the MVVM Pattern”

25. April 2011 3 Kommentare

Building Enterprise Applications with Windows Presentation Foundation and the Model View ViewModel Pattern” von Raffaele Garofolo erschien im März 2011 bei Microsoft Press. Das MVVM Pattern ist für Silverlight und WPF Anwendungen schon fast ein Muss. Für den geringen Betrag von 15$ bekommt man ein gutes Buch zu MVVM.

 

Das Buch startet wie zu erwarten mit einer Einführung ins Model View ViewModel Pattern und dessen Abgrenzung gegenüber den sonstigen UI Patterns wie MVC oder MVP. Mit diesen Grundlagen ist man gerüstet um die einzelnen Schichten einer Anwendung anzuschauen. Vom Domänenmodell geht es über den Data Access Layer durch die Geschäftslogik zur Oberfläche der Anwendung.

Als Abschluss bietet das Buch eine kurze Übersicht zu MVVM Frameworks und Toolkits wie Caliburn, Prism, MVVM Light Toolkit oder Cinch.

Am Ende jedes Kapitels findet man ein grösseres Beispiel in dem die gerade beschriebenen Punkte zu einem realistischen Szenario verbunden werden. Dies sollte man unbedingt anschauen, da der Text im Kapitel selber wohl nicht jedem genügen wird.

 
Klein, aber fein?
Das Buch ist mit nur 224 Seiten recht dünn, behandelt aber dennoch eine grosse Anzahl von Themen. So kann vieles nur angeschnitten werden, für eine Vertiefung fehlt es an Platz. Wer hier eine detaillierte Einführung in Caliburn erwartet muss zwangsläufig enttäuscht werden.

Es gibt aber Themen wie das Repository- oder das Unit of Work Pattern, die mit ausreichendem Tiefgang beschreiben werden. Der Mehrwert dieses Buches liegt für mich beim kombinieren der einzelnen Themen und Ansätze zu einem Gesamtbild.

Im Grossen und Ganzen hätte der Verzicht aufs eine oder andere Toolkit oder Framework dem Buch wohl mehr Profil gegeben. Jetzt wird zwar jeder angesprochen, doch wer eine Empfehlung für ein spezifisches Produkt sucht wird enttäuscht.

 
Test-Driven
Garofolo legt sehr viel Wert auf die Testbarkeit der vorgestellten Ansätze. So findet man neben einer minimalen Einführung in Test Driven Development über das ganze Buch verteilt immer wiederkehrende Beispiele wie man in dieser Situation nun genau den Code testen kann. Diese Hilfestellung fand ich sehr gut und ich wünschte mir, dass mehr Autoren so viel Wert auf die Testbarkeit legen würden.

 
Downloads
Beim Link zu den Code-Beispielen gab es scheinbar einige Probleme. Der Source Code finden sich auf http://examples.oreilly.com/9780735650923-files/9780735650923_files.zip. Man könnte für die Zukunft noch die ReSharper-Dateien und Binaries weglassen, wodurch das Zip deutlich kleiner würde.

 
Fazit
Wer eine kurze und günstige Einführung ins MVVM Pattern sucht wird in diesem Buch das gewünschte finden. Man muss sich aber mit WPF oder Silverlight auskennen, denn dies ist keine Einführung in diese Technologien.

 
Zum Buch
Building Enterprise Applications with Windows Presentation Foundation and the Model View ViewModel Pattern” von Raffaele Garofolo, 2011 Microsoft Press, ISBN Print 978-0-7356-5092-3, ISBN E-Book 978-0-7356-4982-8, 224 Seiten, Englisch

TechDays 2010 in Basel

11. April 2010 3 Kommentare

Am 6. und 7. April durfte ich die TechDays in Basel besuchen. Nachdem die letztjährigen TechDays bei uns während Wochen für Gesprächsthemen sorgten, freute ich mich auf 2 interessante Tage.

 
Keynote: eine verpasste Gelegenheit
Die TechDays starteten allerdings nicht gerade vielversprechend. Wir waren ein wenig zu früh in Basel und mussten draussen aufs öffnen der Türen warten. Nach einem Kaffee und einem ersten Rundgang durch die Ausstellerstände begann die Keynote. Neben einigen Informationen rund um die TechDays (dieses Jahr nahmen 1100 Personen teil) startete der Hauptteil über visuelle Filmeffekte.

Christoph Ammann versuchte dieses an sich spannende Thema zu präsentieren. Dies gelang allerdings nicht wirklich. Anhand vom Endprodukt in HellBoy 2 zeigte er was sie gemacht hatten. Uns wurden zwar einige Filmausschnitte (ohne Ton) gezeigt, doch was alles dahinter steckt wurde nur angetönt. Es war so oberflächlich, dass man es auch hätte sein lassen können. Zudem wirkte der ganze Vortrag unvorbereitet.

Die Keynote endete mit der Verleihung des .NET Swiss Innovation Awards. Die ausgezeichneten Applikationen nutzten Silverlight, WPF, Azure, WCF oder am besten alles zusammen. Microsoft konnte zeigen, dass es produktionsreife Produkte gibt, die auf diese “neuen” Technologien setzen.

 
Silverlight
Ein grosses Thema an den TechDays war Silverlight. Ronnie Saurenmann war einmal mehr super. Seine Präsentation “Silverlight 4 Overview: The key Microsoft UI technology” wie auch “Silverlight 4 Advanced” waren kurzweilig und boten eine hohe Informationsdichte. Zudem gab es sehr viel zu lachen, was bei einer solchen Veranstaltung nicht alltäglich ist. Es gibt eine neue DeepZoom-Anwendung von Ronnie für das Kunsthaus.

Silverlight ist mit Version 4 bereit für Geschäftsanwendungen (Line of Business – oder kurz LOB). Das DataGrid, die RIA-Services und der Designer in Visual Studio 2010 sind nun fertig und werden in Kürze veröffentlicht.

 

WPF
Bei all der Aufmerksamkeit für Silverlight kam WPF ein wenig kurz. Nur eine Session beschäftigte sich mit den Neuerungen von Version 4. Endlich gibt es aber auch da ein DataGrid und einen DatePicker, die man nicht mehr aus dem Toolkit holen muss. Die Schrift soll nun auch endlich besser steuerbar sein. Die Unschärfe beim scrollen oder während einer Animation könnten somit endlich der Vergangenheit angehören. Auch das DataBinding wurde cleverer. Ein setzen des aktuellen Werts soll nun das Binding nicht mehr entfernen.

Microsoft will nun WPF (und auch Silverlight) auch für LOB-Anwendungen pushen. Bisher lag das Augenmerk vor allem auf den grafischen Spielereien die damit möglich sind. Das DataGrid und die weiteren neuen Controls sind dafür eine Notwendigkeit. Bleibt nur die Frage wieso dies nicht schon mit der letzten Version angegangen wurde. Gerade das Grid ist doch wirklich unverzichtbar.

 

Azure
Ein weiteres sehr grosses Thema war Azure. Cloud Computing wächst und wird immer wichtiger. Mittlerweile gibt es auch in Europa ein Datacenter. Somit müssen die Daten nicht mehr über Nordamerika geholt werden.

Die Präsentation “Learn how to build your first .NET application for the Cloud using Windows Azure” zeigte wie einfach das deployment in die Wolke ist. Eine Datenbank wird über einen gewöhnlichen Connection-String angesprochen. Die ganzen Zusatzservices wie die gespiegelten Datenbanken sind transparent dahinter “versteckt”. Für den Entwickler spielt es somit fast keine Rolle, worauf er sich nun verbindet.

 
MIX, Entity Framework und TFS
Sascha P. Corti steckte einem mit seiner Begeisterung auch diesmal wieder an. Seine Zusammenfassung der MIX zeigte viele Neuerungen bei Microsoft. Der IE 9 wird endlich SVG anzeigen können und rendert so schnell wie derzeit kein anderer Browser. Wird auch endlich Zeit mag da mancher denken. Gerade bei SVG musste man ja lange genug warten.

Das Pivot Control gibt es derzeit nur für WPF. Hoffentlich kommt das auch bald für Silverlight. Was auf der Demo wie eine Spielerei aussieht könnte enorm praktisch bei der Visualisierung grosser Datenmengen sein. Ebenfalls sehr interessant tönt oData. Dies ist quasi ein RSS für Daten. Nur können Daten damit auch erzeugt und verändert werden. Ich bin sehr gespannt wie sich dies entwickeln wird.

Auch beim Entity Framework gibt es in Version 4 zahlrieche Verbesserungen. Ein lazy loading ist nun ebenso möglich wie die Einflussnahme auf die generierten Entitäten. Mittels der Template Engine T4 kann man seine Entitäten nach Belieben umschreiben lassen.

Der Team Foundation Server wartet mit einer ganzen Reihe von Verbesserungen für das Requirements- und Projektmanagement auf. Der Vortrag von Neno Loje dazu war ebenfalls spitze. Die teils sehr zynischen Bemerkungen sorgten für einen würdigen Abschluss der TechDays.

 
Was enttäuschte
Auch wenn mir die TechDays zum grossen Teil gut gefielen, so gibt es auch Punkte und Vorträge, die mich enttäuscht haben.

“RIA Services: Geschäftsorientierte Anwendungen mit Silverlight 4″ von Laurent Bugnion war so eine Präsentation. Von einer Session die sich an Experten richtet erwarte ich deutlich mehr als das vorzeigen des Hands-On Lab von Microsoft zu Silverlight RIA Services. Auf dies lief die ganze Präsentation am Ende leider hinaus. Dabei hätte es zu RIA Services etliches zu erzählen gegeben: Kompatibilität zwischen Versionen, Upgrade-Szenarien oder wann man eigentlich auf RIA-Services setzen soll und wann nicht. Doch all dies fehlte.

Fürs nächste Jahr sollte sich Microsoft überlegen, ob man wirklich alle 5 parallelen Sessions immer gleichzeitig in die Mittagspause lassen will. Wenn 1100 Leute an der Essensausgabe warten kann sich jeder die Schlangen vorstellen. Es gibt sicher einige Sessions die nach 45 Minuten fertig wären und auch solche, die gerne noch 15 Minuten anhängen würden. Diese Staffelung zusammen mit einem Küchenteam das dann auch bereit ist würde das alles deutlich angehemer machen. Grössere Teller würden ebenfalls den ganze Essensdownload beschleunigen…

Das Abschiedsgeschenk muss ich hier ebenfalls erwähnen. Beim Verlassen am Mittwoch gab es für jeden Teilnehmer noch einen Seesack. Dieser war gut gefüllt mit all der Werbung, die man einem die letzten 2 Tage an den Ausstellerständen schon in die Hand gedrückt hat. Ich behielt nur die Broschüre zum Azure-Wettbewerb. Der Rest landete zusammen mit dem fürchterlich stinkenden Seesack in der runden Aktenablage. Das “Geschenk” sollte man vor der nächsten Veranstaltung bitte ebenfalls überdenken.

 
Fazit
Wenn man in den richtigen Sessions war, hat man sehr viel lernen können und die 2 Tage sind wie im Flug vergangen. Hat man aber Pech und sass in den “falschen” Sessions, waren die TechDays alles andere als interessant (Siehe das Fazit von Dani Meier).

Mir hat es gefallen und ich konnte viele neue Ideen mitnehmen. Fürs nächste Jahr sollte Microsoft aber über die Bücher. Sich für 520.– an einem Glücksspiel um die richtigen Sessions zu beteiligen kann ich meinem Chef nicht wirklich vermitteln. Zumal mit der Shape im Herbst eine Konkurrenzveranstaltung aus dem gleichen Haus ansteht.

Kategorien:.Net Schlagworte: , , , ,

Silverlight 4 Hands-On Lab

17. Januar 2010 3 Kommentare

Am 15. Januar besuchte ich das Hands-On Lab zu Silverlight 4 bei Microsoft in Wallisellen. Bisher habe ich nur ein wenig mit den Beispielen zu Silverlight experimentiert. Hier mal ein wenig mit den Komponenten gespielt, da ein wenig Code angepasst. Meine Erfahrungen mit Silverlight waren somit bisher vor allem theoretischer Art. Das Hands-On Lab war daher eine gute Gelegenheit, endlich mehr zu machen als nur ein wenig zu Spielen.

 
Was ist ein Hands-On Lab?
Bei einem Hands-On Lab nimmt man sein eigenes Laptop mit und kann selber die vorgegebenen Beispiele ausführen. Beim Lab zu Silverlight war die Einführung sehr kurz, dafür die Aufgabe umso grösser. Auf 104 Seiten wurde ausführlich beschrieben, wie man eine Silverlight Applikation mit WCF RIA Services baut. Die Applikation nutzt die Nordwind Demo-DB und zeigt die Bestellungen an. Ein Sub-Report ermöglicht die Bearbeitung von Details der ausgewählten Bestellung. Neben dieser Grundfunktionalität gibt es einige kleine Helfer wie die Validierung der Eingabe, einen Busy Indikator beim Laden der Daten, eine Autocomplete-Box für die Suche nach Städten und die Druckfunktion.

Kurzum: Die Applikation des Hands-On Lab ermöglicht einem komprimiert und in sich stimmig die wohl am häufigsten benötigte Funktionalität auszuprobieren.

 
Derzeit noch alles Beta
Sowohl Silverlight 4 wie auch Visual Studio 2010 sind erst in Betaversionen erhältlich. Die finalen Versionen sollten wohl in 3-6 Monaten erscheinen. Mich erstaunte die Geschwindigkeit von Visual Studio. Von 2008 ist man sich einen langsamen Start gewöhnt. 2010 dagegen startet sehr schnell.
In der Beta muss man noch bei fast jeder Aktion im Server-Teil ein rebuild all durchführen. Das lässt sich zwar einfach von Hand machen, doch wenn man dies vergisst, bekommt man nur noch Fehlermeldungen zu Gesicht. Ein automatisches nachziehen der generierten Proxy-Klassen wird die Entwicklung nochmals deutlich angenehmer machen. Zudem stürzt Visual Studio 2010 in der Beta 2 zu häufig ab. 1 Absturz pro 45 Minuten ist auch bei dem schnellen Start einfach noch zu viel. Für eine Beta-Version ist der Gesamteindruck aber schon sehr gut.

 
Fazit
Ich fand das Lab eine gute Erfahrung. Man kann selber im eigenen Tempo arbeiten und stösst man auf Probleme, hat man sehr kompetente Personen im Raum, die einem helfen können. Bei Silverlight gefiel mir wie einfach und vor allem schnell man ein Grid anzeigen konnte. Kein herumschlagen mit Requests, Postbacks oder Session – einfach nur hineinziehen, verbinden und es lief.

Auch die einfache Verwendung von RIA Services hat mich positiv erstaunt. Die Objekte werden zum DB-Schema passend angelegt und man kann damit loslegen. Kein Aufbau von Sessions und keine Proxy-Errors. Werden die Daten im Subreport geändert, wird erst validiert und dann gespeichert. Hat man es dann gespeichert, bleibt es dies auch. Und vor allem wird nicht schon gespeichert, wenn der Benutzer nur etwas im Formular ändert. Somit fällt auch viel von dem Overhead weg, der mich derzeit bei der WebForms-Entwicklung stört.

Silverlight ist definitiv eine sehr interessante Technologie. Und mit Version 4 gibt es einen grossen Schritt nach vorne.

Follow

Bekomme jeden neuen Artikel in deinen Posteingang.

Join 142 other followers