Lazy Loading von Plugins in multilingualen .NET Applikationen

Letztes Jahr hab ich eine kleine Anwendungs-Shell gebaut, welche mir die Entwicklung von Desktopanwendungen einfacher machen soll. Schwerpunktmäßig habe ich mich dabei auf die Features Erweiterbarkeit, Multilingualität, Lazy Loading und gute Trennung der Logik von der Oberfläche konzentriert. Als festes Standbein habe ich das Framework Mono.Addins genutzt, mit dem ich in meinen Anwendungen Erweiterungspunkte in einem XML-Baum definieren kann.

Ähnlich wie in XUL oder XAML erzeuge ich außerdem etliche Teile meiner Oberflächen direkt aus dem XML-Baum, der sich aus allen XML-Knoten der geladenen Plugins ergibt. Dies ermöglichst es mir Menüs und Werkzeugleisten darzustellen ohne alle Plugin-Assemblies zu laden. Denn die Infos über Struktur, Titel und Icons der Oberfläche befinden sich bereits in den XML-Daten und müssen nicht erst vom .NET Code erzeugt werden. Mit solchen Prinzipien kann man auch große Anwendungen zu einem schnellem Start verhelfen, Visual Studio, #Develop und Co machen es genauso.

Continue Reading

Technorati Tags: , , , ,

Witzig: Immobilienseite gibt live “Bla” Debugmeldungen aus

Sehr witzig, heute habe ich beim Surfen auf www.studenten-wg.de entdeckt, wie plötzlich ein schönes “bla” mitten auf der Seite erschien. Da scheinen wohl einige Webentwickler nicht lokal testen zu wollen :-) . Hier der Beweis:

wg

Technorati Tags: ,

Materialien zum Techtalk

Am Samstag haben wir unseren ersten studentischen Techtalk veranstaltet. Die Veranstaltung in meinen Augen auf jeden Fall ein Erfolg, ich denke jeder von uns konnte an dem Tag einiges lernen und freut sich nun auf das nächste Mal :-) . Die Teilnehmerzahl kann ruhig noch etwas wachsen, aber das wird sicherlich schon fast ganz alleine kommen, wenn wir mit der Organisation früher anfangen und der Termin dann eher feststeht.

Mit etwas mehr Vorlauf ist es dann auch sogar noch mehr Teilnehmern möglich eigene Präsentationen zu zeigen, die ja doch etwas mehr Vorarbeit benötigen als ich dachte. Ich wollte eigentlich das Session Hijacking vorführen, aus Zeitgründen hat es dann aber doch nur für eine XSS-Lücke gereicht :-) .

Continue Reading

Technorati Tags: , , , ,

Webdevelopment-Techtalk am 10.1.

Im Oktober letzten Jahres hatte ich gemeinsam mit ein paar Freunden die Idee einen Techtalk im Sinne eines Barcamps zu veranstalten. Am Samstag ist es nun endlich soweit :-) …wir werden Präsentationen zu jQuery, ASP.NET und vielen anderen spannenden Themen hören und halten.

Wir nutzen ein studentisches Begegnungszentrum – MOPS - als Veranstaltungsort.  Ein relativ kleines gemütliches Café. Da wir aktuell noch nicht die maximale Teilnehmeranzahl erreicht haben, könnt ihr euch gerne auf unserer Techtalk-Seite anmelden…

Technorati Tags:

Veröffentlichung meiner Arbeit zu “Virtuelle Maschinen”

Im Jahr 2006 habe ich eine schriftliche Arbeit über vituelle Maschinen geschrieben. In dem 30-Seiten langem Dokument gehe ich zuerst allgemein auf verschiedene existierende VM-Typen ein. Dann werden verschiedene Vorteile und Nachteile aufgezeigt, immer an konkreten Beispielen wie z.B. Java oder der .NET-Plattform. Behandelt werden unter anderem die Themen Plattformunabhängigkeit, Geschwindigkeit, Speicherverbrauch, Sicherheit, Flexibilität und Sicherheit.

Auch interessant ist der Abschnitt über die (grundlegende) Funktionsweise von Garbage Collectoren. Außerdem ist das letzte Kapitel der Ayox Intermediate Language gewidmet, eine Eigenentwicklung einer Zwischensprache (ein Mix aus Java Bytecode und CIL) mit zugehöriger Laufzeit (Interpreter, etc.).

Download der Arbeit (pdf)


Viel Spaß beim Lesen :-)

Technorati Tags: ,

Datenmodellierung mit XML Schemata

Bisher habe ich in meinen Softwareprojekten zur Datenmodellierung immer Werkzeuge wie UML-Editoren oder die MySQL Workbench genutzt. Das sind tolle Hilfen, da man seine Ideen grafisch modellieren und hinterher in eine ausführbare Präsentation umwandeln kann. Entweder man erzeugt mit einem UML-Editor Programmcode oder mit einem Datenbanktool das SQL-Skript für das Datenbankschema.

Aktuell finde ich jedoch die Idee zur Modellierung der Daten XML Schemata zu nutzen, wesentlich interessanter. Mit einem leistungsfähigem Designer könnte man seine Modelle und Beziehungen darstellen und diese dann als XSD-Datei speichern. In der Softwarebranche wird dieses Verfahren in ähnlicher Weise schon seit Jahren genutzt. Konkret nutzt man einige OMG-Standards, um den Ansatz der Model Driven Architecture zu vereinheitlichen und damit plattformunabhängiger zu machen.

Continue Reading

Technorati Tags: , ,

Domain Specific Languages

Jetzt so kurz vor Weihnachten beschäftigt mich ein interessantes Thema, welches das Potenzial hat die Softwareentwicklung an einigen Stellen stark zu vereinfachen: DSL, genauer gesagt Domain Specific Languages. Darunter versteht man eine auf ein Problem zugeschnittene Sprache, wobei Sprache hier nicht unbedingt eine typische Text-Sprache wie Java sein muss. Es kann sich genauso gut um eine grafische Repräsentation handeln.

Jeder von uns hat schon mit einer DSL gearbeitet, wir haben es nur nicht mitbekommen :-) . Denn genau genommen sind SQL als auch RegEx zwei DSLs, die besonders ausdrucksstark sind in ihrer Domäne. Mit einer RegEx kann ich String-Muster definieren, deren Programmierung in einer “normalen” Programmiersprache dutzende Zeilen benötigen würde. Für Abfragen aus relationalen Datenbanken eignen sich RegEx aber natürlich nicht, daher sagt man die Sprache ist auf eine Domäne – ihr Arbeitsgebiet – beschränkt.

Continue Reading

Technorati Tags: , , , ,

CakePHP, der süß-saure Kuchen – Erfahrungen mit dem PHP-Framework

Vor einigen Wochen war ich auf der Suche nach einem leistungsfähigem PHP-Framework für eine Webanwendung. Meine Wahl fiel Mitte September auf CakePHP, einem modernen Anwendungs-Framework, welches die Entwicklung von robusten interaktiven Internetseiten beschleunigen soll.

Die Entscheidung war schnell getroffen, denn die schicke Internetseite von CakePHP überzeugt sehr schnell, besonders die Screencasts machen Lust auf mehr und geben einen guten Einblick in die Model-View-Controller-Funktionsweise.

Voller Eifer beginnt man also mit der Entwicklung und freut sich darauf, so nette Features wie die dynamischen Funktionen der Daten-Modelle zu nutzen: Der Aufruf $User->findByName('Thorsten'); beispielsweise funktioniert, da es in der Datenbank eine Spalte ‘Name’ in der ‘User’-Tabelle gibt. CakePHP erkennt dies automatisch und erzeugt eine korrekte SQL-Abfrage für den Methodenaufruf … und das obwohl diese Funktion zur Kompilierzeit noch nicht einmal existiert. Ich werde jetzt nicht genauer darauf eingehen, wie diese “Magic” funktioniert, aber auf jeden Fall ist es cool :-)

Continue Reading

Technorati Tags: , ,

World Day Against Software Patents

Heute – am 24. September – ist der unterstützenswerte “World Day Against Software Patents”, eine Initiative von vielen Vereinigungen, Entwicklern und Software-Firmen. In Europa gibt es zum Glück noch keine Softwarepatente, doch in den USA sind diese schon längst traurige Realität. Erst jüngst wurde wieder ein unsinniges Patent an Microsoft erteilt, welches die Funktion der “Page up”- und “Page down”-Tasten patentiert.

Meiner Meinung nach stärken Software-Patente die Monopole großer Softwarekonzerne und verhinden kreative Innovationen. Zudem sind die meisten Software-Patente keinesfalls neue Erfindungen, sondern simple Ideen, auf die jeder Entwickler selber kommen könnte. Tun wir also alles dafür, dass Software-Patente zu Grabe getragen werden bzw. gar nicht erst nach Europa kommen.

Zum Abschluss noch ein kleines nettes Video, welches das Prinzip der Patente schön darstellt:

Technorati Tags:

Technische Begriffe verständlich erklären …

… genau das macht dieses lustige Video in hervorragender Weise. Hier wird im “Kochstudio” bildlich dargestellt wie “Chip Multithreading” funktioniert. Absolut sehenswert :-)

Wenn ihr noch mehr ähnliche Videos kennt, nur her damit!

Technorati Tags: