TYPO3 v5, FLOW3 and Unicase
I had the pleasure of attending two interesting presentations at our university yesterday. I am a bit biased here, because one was held by myself, for a few students participating in the current “Softwareentwicklungswerkzeuge” (software development tools) lecture. The other one was a presentation by Sebastian Kurfürst, one of the core developers of TYPO3 (and a “former student of mine”), for the T3 User Group Dresden, about the upcoming TYPO3 v5 and its application framework FLOW3.
Even if you’re not interested in TYPO3 or CMS development, I recommend reading the [very fancy] slides (if you understand German). They have a rather large user base, still they decided to throw away the current code base and design the new release from scratch – using ‘modern paradigms’ such as strict Test Driven Development, Dependency Injection, Aspect Oriented Programming, Domain Driven Design and MVC. Sebastian accomplished to explain these concepts clearly, so if you want to refresh your knowledge about any of these techniques, [url=http://www.slideshare.net/skurfuerst/flow3-der-aktuelle-stand-typo3-usergroup-dresden-presentation]take a look at the slides[/url]. According to him, TYPO3’s new base level application framework is the first framework to introduce AOP to the PHP world, and is ‘ahead’ of the current PHP development (they require PHP 5.3, which is not even in beta yet).
I’m really looking forward to the new TYPO3, which hopefully might be one of the first web application frameworks and CMS that doesn’t suck completely.
Unfortunately, the most important part of the presentation was a live demo, where I showed how you can easily generate a “new client” by small changes to the meta model. The [url=http://www.unicase.org/]unicase website[/url] has [url=http://teambruegge.informatik.tu-muenchen.de/groups/unicase/wiki/a3773/Video_Tutorials.html]screencasts of most features[/url] though, so if you’re interested, you can watch it there.
If you want to try it out, I’ll explain the few steps required to get your own local server and clients to run. If you just want to try the client, they have an update site you can easy add to your current Eclipse installation, and a standalone download. Unfortunately, the link to the relevant [url=http://teambruegge.informatik.tu-muenchen.de/groups/unicase/wiki/b5627/Documentation.html]unicase documentation[/url] is “hidden” in the right sidebar, whereas the main documentation link in the center of the page currently leads to a mostly empty wiki page.
There’s another screencast on the project website about checking out the project from its SVN repository, but I’m not a big fan of screencasts. Besides, there are a few steps missing from the video tutorial.
1. Open Eclipse including Subclipse (its SVN plugin), and import all projects from the unicase repository. To do that, you can go to “File -> New -> Other… -> SVN -> Checkout Projects from SVN”, and point it to http://svnbruegge.informatik.tu-muenchen.de/repos/unicase-readonly . You can either decide to check out the latest releases from the trunk, or (which is what I did) go for the latest tagged release. Important: select all projects in one branch to check out all projects individually, not the whole branch into one large project.
<home>/.unicase/ , and
I also had to create a file called es.properties in
<home>/.unicase/emfstore/conf with the line
emfstore.acceptedversion = any to make it work, but you might not have to do this.
3. Now you can run
org.unicase.emfstore to start the server and
org.unicase.ui.navigator to start a client instance. To change the meta model, go to
org.unicase.model. For more details, check out the (mislabeled) [url=http://www1.in.tum.de/static/shared/unicase/VideoTutorials/developer/unicaseMDD.mov]screencast “Model-driven development Tutorial”[/url].
4. To log in to the server using the default keystore, use “super” as both username and password. You can then add more user accounts within the GUI, or generate your own keystores.