Archiv für die Kategorie „.net“

.Net RIA Services – kurz erklärt

Montag, 27. Juli 2009

image

Ich hab mich etwas mit den .Net RIA Services beschäftigt und möchte nun einen groben Überblick geben. Wir stellen uns also eine 3-Schichten Architektur vor, bestehend aus Silverlight 3, ASP.net und einem quasi beliebigem Data Access Layer.

Der Data Access Layer erzeugt aus einer Datenbank Objekte, welche nun in der mittleren Schicht sind (im Bild “Order”) und bietet auch die Standard CRUD-Funktionalität. In der Regel kann man diese Objekte nicht ohne weiteres an den Client übergeben.

Hier kommen nun die .Net RIA Services ins Spiel und generieren in der Silverlight-Applikation eine identische Klasse und ein asynchrones Kontextobjekt, um mit der Serviceschicht zu interagieren.

Alles was man noch tun muss, ist in der Mittelschicht eine Serviceklasse zu schreiben, die alle Funktionen zur Verfügung stellt, die der Client nutzen können soll. Dies können die normalen CRUD-Operationen sein, spezielle Servicemethoden, die mit den Objekten interagieren oder ganz allgemein beliebige Funktionen.

Reichert man die Klassen durch Metadaten an, bekommt man die Validierung der Daten auf beiden Schichten “fast geschenkt”:

[Range(0, 120, ErrorMessage = "Sprechende Fehlermeldung!")]
public int? Age { get; set; }

Hat man dies z.B. so bei einer Person definiert, wird der Nutzer bereits beim Eingeben der Daten auf dem Client mit einer sprechenden Fehlermeldung auf seinen Fehler hingewiesen. Zusätzlich wird aber auch auf der Mittelschicht eine erneute Validierung der Daten vorgenommen. Dies ist eine sehr schöne Ausprägung des DRY-Prinzips.

Außerdem werden alle Dateien mit dem Dateinamen *.shared.cs oder *.shared.vb in den Client kopiert, was Shared Code ermöglicht. Dies kann man nutzen, um generierte Properties anzulegen.

Das Ganze erleichtert den Entwicklungsprozess von viel langweiliger Arbeit und gibt einem mehr Zeit, für die wesentlichen Aspekte!

Weiterführende Links:

Präsentation auf der Mix09

Download von Setup und Dokumentation

Ja warum eigentlich Microsoft?

Montag, 22. Juni 2009

Ich hatte in einer Nachricht mal folgende Frage bekommen und will die eigentlich für mich tiefergreifend beantworten. Hier erst einmal die Frage:

Hast du es eigentlich je bereut, dich auf ein lizensiertes Produkt zu stürzen? Ich frag bloß, weil viele bei uns z.B. denken, warum soll ich viel Geld für .Net an MS zahlen, wenn ich das woanders auch umsonst haben kann…

Bei uns in der Firma haben wir neben dem Microsoft-Bereich auch Java- und SAP-Teams. Ich sehe die Leute nicht sehr häufig, aber hin und wieder kann man sich auch von denen ein Bild machen. Ich sage das, denn letztendlich kann man nur zwischen den Sachen wählen, die es wirklich gibt (Erträumen ist keine Alternative).

Lizenzen kosten Geld, das ist klar und Microsoft verschenkt nichts, das ist auch klar. Ein sonst eigentlich ganz netter Kollege sagt hin und wieder “Was nichts kostet, ist auch nichts.” Das würde ich so nicht unterschreiben, aber hin und wieder läuft es darauf hinaus.

Um wieder auf den Punkt zu kommen. Die Frage lässt offen, ob es um Office, Windows, klassische .Net Entwicklung oder um Dienstleistungen und Entwicklungen im Bereich SharePoint oder CRM geht (oder ganz was anderes?).

Für Office gibt es keine richtige Alternative. Google hat ein wenig, andere noch etwas weniger, aber für den Unternehmenseinsatz kommt aus meiner Sicht nur MS Office in Frage. Wer Office will, braucht auch Windows, also wäre die Frage auch geklärt. Wenn man SharePoint und dessen Funktionen kennen gelernt hat, möchte man auch keine Dokumente mehr per E-Mail versenden usw.

Im Großen und Ganzen hat Microsoft ein durchdachtes Konzept.

Ja, gut und jetzt der eigentliche Teil: Schon vor längerer Zeit wollte ich von PHP/MySQL-Webseiten weg und mal was neues machen. Ein richtiges Desktopprogramm. Die Wahl war Visual Studio (2002?) oder Eclipse. Nun Visual Studio war schnell und schlank und Eclipse groß und klobig. Daher hab ich mich für VS entschieden und damit auch den ganzen Technologie-Stack angenommen. Letztendlich die richtige Entscheidung, denn während MS das .Net Framework ausgebaut hat (.Net Micro-Framework für Platinen, .Net Compact Framework für mobile Geräte und das normale .Net Framework für Desktop und Server), ist Eclipse immer noch groß und klobig und langsam ;-) .

Office hat man schon im Unternehmen, will man also irgendwo was angepasst haben, dann muss es fast zwangsweise ein Entwickler aus dem Microsoft-Bereich machen.

Und wenn es um komplette Eigenentwicklungen geht, dann stellt sich die Frage, wo wirklich noch Lizenzkosten sind. Visual Studio selbst kostet, aber Java Entwickler setzen auch teilweise nicht kostenlose IDEs ein. Der MS SQL Server kostet auch, jedoch setzen Java-Jungs ja auch nicht auf MySQL sondern vielleicht dann auf Oracle (kostet auch). Ob Linux-Server was kosten, das weiß ich nicht genau, der Windows-Server kostet. Aber ob das den fetten Braten ausmacht?

Beispiel: Ein Projekt mit 5 Entwicklern und 6 Monaten Dauer:
5 Personen * 6 Monate * 20 Tage/Monat * 8 Stunden/Tag * X €/Stunde = 4800 * X €

Denke sich jeder selber, wie groß das X ist, machen da ein oder zwei Server-Lizenzen den Braten fett?

Ich für meinen Teil finde unabhängig vom Umfeld, dass .Net die bessere Technologie ist. Ich habe meine Entscheidung von damals nie bereut. Auch wenn sie mehr auf Gefühlen, als auf Fakten beruhte.

WPF Shader Effects Library

Dienstag, 23. September 2008

Wer wie ich gerne einen Shader verwenden will, aber – ebenfalls wie ich – keinen Plan hat, wie man Shader entwickelt, oder halt einfach nur keine Idee oder Zeit, der kann mal einen Blick in dieses Projekt werfen: Die WPF Shader Effects Library hat das Ziel, eine großartige Sammlung von Shadern für WPF zu werden. Wer kann, kann auch gerne seinen Teil hinzufügen!