Mittwoch, 22. Juli 2009

Spring MVC

Mit diesem Post will ich einige Stolpersteine bei dem Einarbeiten in Spring und der Implementierung einer ersten Spring MVC Anwendung beschreiben und einige für bestimmte Bereiche der seite wichtige Links bereitstellen.

Grundsätzliche Informationsquellen die beim Einstieg pflicht sind:
SpringByExample: Hier findet man eine Viel zahl an kleinen Beispielimplementierungen für fast alle wichtigen Spring Frameworkteile. Nachteilig wirken sich aus, das Fahelen von Schritt für Schritt Tutorials und teils oberflächliche Beschreibungen und Beispiele.
SpringDoku: Ausführlicher als man glaubt und auf jeden Fall die Standardlektüre für alle Spring Eisnteiger.
SpringBlog: Neuigkeiten im Bereich Spring findet man hier.

Für die Umstellung von Spring MVC auf Annotationsbasierte Konfiguration ist dieser Artikel ganz gut wobei er nicht auf Interceptor klassen eingeht.

Ich Finde die @Autowired Funktion für eine der sinnvollsten Annotationen. Oft hat man jedoch mehr als ein Objekt der gleichen Klasse im Spring Kontext hier hilft die @Qualifier("") Annotation.

@Autowired
@Qualifier("applicantFacade")
private ApplicantFacade iApplicantFacade;
Weiterhin kann man bestimmte Objekte für das Autowire Context deaktivieren. - ...


Spring - Hibernate
Will man die beiden mächtigen Frameworks verbinden kommt man an dem Buch Spring & Hibernate - Eine Praxisbezogene Einführung nicht vorbei. Viel Zusatz information braucht man nach aufmerksamen Durchlesen des Buchs eigentlich nicht. Ich will jedoch speziell im Hinblick auf MVC auf den OpenSessionInViewFilter eingehen der notwendig ist wenn man Lazy Loading der Objekte braucht:

org.springframework.orm.hibernate3.support.OpenSessionInViewFilter


Zudem hatte ich einige Probleme mit der NonUniqueObjectException. Exception die für die Ich nicht sofort eine Lösung fand: Link1, Link2

Spring Security
Momentan ist die einfachste und schnellste Einführung in Spring Security in videoform ist etwas älter und stellt Spring Security 2.x vor.

Speziell im Hinblick auf die Security 3.0 wurde das framework viel userfreundlicher. Eine Menge von XML Konfiguration ist nun überflüssig geworden. Im Spring Finance Beispiel kann man einige Gute Ansätze und Ideen für seine Spring 3.0 Security und MVC Konfiguration holen. Weitere aktuelle und Entwicklernahe Quelle für Spring Security ist der Spring Blog bzw. der Security 3.0 Eintrag.

Will man User Programmatisch anmelden so kann man die hier angeführte Anleitung verwenden.

Will man einem User nur Zugriff auf Seine Objekte - Objekte die er erstellt hat bzw. Objekte die er Verwalten darf bereitstellen (Artikel - Autor) - so muss man etwas weiter in das Framework einsteigen und eine ACL Implementierung für seine Sicherheitsrelevanten Objekte bereitstellen. Ein sehr interesantes Tutorial findet man hier.

will man für das Admininterface oder für Sessionexterne Zugriffe erfahren welche Sessions gerade aktiv sind bzw welcher User sich gerade auf der Palttform befindet so hilft hier diese knappe Handlungsanweisung.

Spring Web Flow

Rendering - Tiles Einrichtung unter Spring
Um redundanzen in den JNLP Files zu vermeiden und Trotzdem einfachhat und Kontrolle über den Rendering Prozess zu haben eignet sich der Tiles Ansatz ziemlich gut. Zudem bietet Tiles die Möglichkeit in wenigen Schritten eine Navigation und somit die dynamische hervorhebung der aktuellen Position auf der Webseite, ein Breadcrumbs Model und dynamisches anpassen des Webseiten Templates abhängig von der aktuellen Contentseite und der Rolle des Nutzers. Für die Tiles Einrichtung ist wie Üblich die Spring Referenz in akuteller Version zu beachten.

Um eine dynmaische Navigation auf der Webseite einzurichten habe ich mich vom folgenden Beitrag inspirieren lassen. Das vorgestellte Konzept lässt sich beliebig erweitern.
Weiterhin ist es machmal notwendig auch programmatisch in den Tiles Prozess einzugreifen. Die Klassen DynamicTilesView und DynmaicTilesViewProcessor übernehmen leiten alle Anfragen an die Tiles Konfiguration weiter und können weitreichenden Veränderungen and dem tatsächlich angewandtem Tiles Definition sowie an den respond und request Objekten vornehmen. Weiterhin lassen sich für bestimmte Tiles Definitions sogennante Preparer einbauen und auch Kontextabhängige Programmatische Veränderungen vornehmen können.

Montag, 22. Juni 2009

XML Binding

XML Binding ist eine Technologie die neben dem Databinding und dem O/R Binding immer wichtiger wird. Muss man gegen ein proprietäres XML Format, oder an der Persistenz sich immer wieder ändernden Modells arbeiten, spart einem XML Binding jede Menge Zeit und Nerven. Der etwas neutrale aber dennoch aufschlussreiche Artikel auf heise.de/developer/ bietet eine kommentierte Übersicht über die Features und die Angebote im XML Binding Markt.

Mittwoch, 17. Juni 2009

Infastruktur eines Entwicklers

Appfuse ist eine sehr schöne Beispielwebanwendung mit allen notwendigen Features Tutorials und sehr viel Beispielcode. Will man im Bereich Java eine Webapplikation auf der grünen Wiese Entwickeln so sollte man sich diese unbedingt angucken. Ich entwickle momentan mit Spring MVC WebFlow und Security eine JSP Plattform und konnte mir schon das eine oder andere abgucken. Vor allem fand ich aber die Seite auf der die Einrichtung einer Infrastruktur für Softwareentwicklung beschrieben wird. Hier gibt es sehr viel Nützliches insbesondere wenn man sich auch für Maven2 begeistern kann.
Abfuse Wiki

Dienstag, 12. Mai 2009

Swing im Browser

Während die großen RIA Frameworks schon lange auch Desktopapplikation anbieten und Eclipse bzw. SWT Entwicklung schon seit langem Pläne und Entwicklungen vorweist um die entsprechenden Anwendungen auch im Browser anzuzeigen gibt es nun auch ein Framework das der Swing Welt auf den Browser verhilft. Das Projekt heißt WingS und will die Paradigmen und die Herangehensweise von Sing auf JavaScript mit Hilfe von AJAX portieren wobei viel Webtechnologie durch das Framework von dem Benutzer abstrahiert wird. Nun findet in München ein Workshop statt der auch Neulingen einen Einstieg in die Technologie bieten und für erfahrene Benutzer eine Plattform schaffen soll. Während Entwicklung von Swingweb momentan wohl nicht mehr weiter geführt wird ist WingS die Alternative für erfahrene Swing Programmierer die komplexe Webanwendungen schreiben wollen.

Montag, 4. Mai 2009

Parleys.com private beta

Will man einen leichtverdaulichen Überblick über den aktuellen Stand in der Java Technologie bekommen so geht kein Weg vorbei, an der Plattform die von den Devoxx (Javapolis) Initiatoren ins Leben gerufen wurde. Auf Parleys.com können aktuelle Vorträge und Diskussionen die auf den letzten Dovoxx Veranstaltungen aufgenommen wurden eingesehen werden. Die Vielfallt der Themen und die perfekte Aufbereitung bzw. Qualität der Aufnahmen ist für ein offenes Portal beispiellos und hat deutlich zur wachsenden Beliebtheit der Konferenz beigetragen.

Nun haben sich die Entwickler der Plattform allen voran Stephan Janssen daran gemacht die Technologie die Hinter Parleys.com steckt allen verfügbar zu machen und in einer private beta die nächste Generation der auf Flex und Air basierenden Platform vorgestellt. Die Idee ist es Universitäten, Java User Groups und anderen Institutionen die Möglichkeit zu bieten auch deren Content im Internet auf einer Zentralen Plattform zu Verfügung zu stellen. Dabei soll sich die Zielgruppe nicht auf Java Entwickler bzw. Informatiker beschränken. Das Geschäftsmodell von Parleys soll in Zukunft jedoch vorsehen, dass speziell die partizipierenden Universitäten als Austausch für den Dienst einen kleinen Teil ihrer Breitband Kapazität zu Verfügung stellen damit die frei verfügbaren Vortragsmaterialien der Parleys.com Plattform weiterhin frei verfügbar bleiben.

Weiterhin wird die Entwicklung eines Parleys Publishers vorangetrieben der das Onlinestellen von Vorträgen noch schneller und einfacher gestalten soll. Der Lehrstuhl Prof. Thome beteiligt sich an der „private Beta“ und wird in Zukunft versuchen die eLearning Videos des Lehrstuhls über die Parleys Plattform bereitzustellen.

Weitere Informationen zu der Plattform bekommen Sie in der Google Group von Parleys.com.

Dienstag, 28. April 2009

Fragen zum Open Source

Während eines von mir betreuten Wirtschaftsinformatik Seminars zum Thema Open Source habe ich einige Fragen und mögliche Antworten formuliert die das Thema in einem globaleren Kontext betrachten.

Seminar zum Thema: Open Source Lizenzen und Geschäftsmodelle von
Michael Bauer Lizenzen - Ausarbeitung Korrektur
Simon Philipp Geschäftsmodelle - Ausarbeitung Korrektur
Vortrag:


1) Wieso können OS Produkte schneller bis zur Marktreife gebracht werden?
• Niedrige Einstiegskosten
• Kein Vendor lockin bei unsicheren Märkten
• Investitionssicherheit.
2) Wieso können OS Produkte schneller bis zur Marktreife gebracht werden?
• Viele freiwillige Tester die auch Beta Versionen testen.
• Häufigere und schnellere Releases z.B. durch „perpetual beta“ und des Fehlens von Marketing und Vertriebs die Releases oft aus eigenen Überzeugungen verzögern.
• Durch Transparenz und Quellcode Einsicht kann jeder beteiligter (User, Tester) stark zur Lösung eines Problems beitragen.
• Probleme werden durch die Transparenz und Offenheit sehr viel schneller an die Entwickler herangetragen und können durch öftere Releases sehr viel schneller beseitigt werden.
3) Wo liegen OS Potentiale zum Senken der total „cost of ownership“?
• Einsparungen im Supportbereich Unabhängigkeit von spezieller Hard- und Software da überall offene Standards und Interfaces.
4) Wie kann Marketing und Vertrieb durch den Open Source Charakter des Produkts eingespart werden?
• Meist V & M über Electronic "Mund zu Mund Propaganda" im Netz Blog’s und Foren.
5) In wie fern ist OSS Entwicklung in gewisser Weise die reinste Form des Kapitalismus?
• Es existiert ein Markt für Dienstleistungen wobei statt des Geldes andere, viel bessere, weil persönlich angepasste, monetäre Mechanismen greifen. Der Markt ist global und frei, so dass jeweils derjenige dessen opportunitätskosten am geringsten sind in das Projekt einsteigt.

Donnerstag, 23. April 2009

SAPDB deinstallieren

Vor Kurzem musste ich eine nicht mehr richtig funktionierende SAPDB deinstallieren. Dies ist nicht ganz ohne da ich eine DB Instanz deinstallieren musste jedoch keinen Zugang mehr drauf hatte. Somit verhinderte die Deinstallationsroutine das Löschen einer DB weil ich nicht mehr auf die DB zugreifen konnte. Hier bekam ich Schützenhilfe. Nach dem ich bereits die DB auf der Festplatte entfernt habe entfernte ich auch noch den Registry Einträge mit Windows\regedit.exe HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SAP DBTech-.* danach konnte ich mit Hilfe eines MAXDB Installers die DB Ohne Probleme Entfernen.
Nun kann es sein dass trotz einer erfolgreichen Deinstallation immer noch Verweise auf die alte Datenbank in der Registry vorhanden sind. Die Suchoption von Regex "SAPDB" hilft hier nicht unbedingt weiter. Falls man nun keine weitere SAP Produkte installiert hat könnte man zur Brachialmethode greifen und alles was die Kombination SAP enthält löschen. Hier fand ich noch mindestens 2 weitere Verweise die auch den namen meiner alten Datenbank enthielten was dann zum erfolgriechen Installieren von MAXDB und einer neuen Datenbank endlich ausgreicht hat.