DSL for web applications
Most web sites are interactive nowadays, in the sense that they require data from users, and provide other data or information in return. That's a very generic way of describing just about every only store, community and company web site.
For our new venture, Consultants United, we require such a web site as well, and we're not too fond of CMS-es like Joomla, which offer more than you need in features and often too little in relation to the features that you do need. That's why I decided to base our new site on CodeIgniter, like my own company site for Delphino Consultancy. For the latter, I was already building a DSL that would allow me to generate all the stuff required for the MDSD Tooling index and integrate it smoothly into my site.
Given that the new web site had higher priority than the index, but I want to build both, I decided to go for it and create a DSL and code generator for interactive web sites, using MetaEdit+. Once the site is up and running, I want to redo the effort using XText and MPS, to get some first hand experience the differences between graphical DSL modeling, textual DSL modeling and intentional modeling. To this list, I will probably add WebDSL as well, once it's PHP support is released. I have no use for the Java/Tomcat version, since my provider, like many others, doesn't support that platform unless I buy a dedicated server.
Right now, the first stage of building the DSL in MetaEdit+ is almost done. I build a DSL that allows me to model the basic data model that needs to be supported by the site, and I'm able to generate all the models, views and controllers that I need in CodeIgniter from that, as well as language/translation information, SQL to generate the database and form validation code.
That was a nice step, but I need more. I don't want to do the navigation by hand, and there's a workflow that we need to go through in order to get data into the system (an interactive project marketplace) in the right manner. So, right now I'm working on a small DSL for that, which I hope to combine with the Entity DSL to be able to generate the static and dynamic parts of the site completely.
I will publish separate entries on this in the not too distant future:
- An architecture for model driven web development (MDWD)
- A structural DSL for web applications
- A workflow DSL for web applications
- Combining DSLs into a web application MDSD solution
- Adding a DSL for look and feel, or not?
- Extending the architecture: precooked features
After the launch of the first site, and hopefully also the MDSD Index, this will be followed by some more posts:
- MDWD: revisited with XText and MPS
- MDWD: revisited using WebDSL
This looks like a lot of work, so I'm not going to predict any dates. Just keep an eye on this blog.
Content Management (5)
Well, it’s been a couple of months and I can only conclude that I never got around to actually completing my comparison of CMS systems. I got side tracked a few times by other activities, and in the end I made a very simple choice. I got rid of Joomla on my company site, because it contained too many features for what I need. Instead, I spent one afternoon and one evening creating a very simple web site based on the CodeIgniter framework, with a backend that allows me to update pages and upload content if necessary. All tailor made, and perfect for my needs.
Check out the front-end results on http://www.delphino-consultancy.nl.
Sorry to those expecting a CMS evaluation, I can only conclude all of them were too bloated for my purposes.
Content Management (4)
For some weird reason, I cannot add comments to my own blog at the moment, so I’ll just use a small post to respond to a question posed by Mark Stacey on my initial post about the content management evaluation.
He asked: “what about a free edition of commercial product – like free edt. of Kentico CMS or Sitefinity?”
The answer is short and simple. I am not ignoring commercial products – after all, TypO3 and KnowledgeTree also offer commercial packages with additonal service, and in the case of KnowledgeTree additional functionality. I didn’t come across Kentico and Sitefinity in my initial searches, but maybe I’ll add them in a second batch.
Technorati Tags: content management, document management
Content Management (3)
In relation to content management, here’s a short update.
In order to test drive the product I’m evaluating, I will perform the following set of ‘tests’
- Installation of product on a local web server
- Account creation and role based acess configuration with an administrator, a content contributor and a visitor
- Create a web portal (if supported) for visitors, based on plain HTML or template
- Create a main page
- Create a news page with a few updates
- Create a documentation page, with 2 documents (non-HTML) and 2 version updates of one of them
For all pages created, I will check how they are accessed as contributor and visitor, and I will evaluate how easy each step is to implement from the roles involved.
Content Management (2)
Draft Content Management requirements for Delphino Consultancy:
Web Content Management
- Static web pages
- Support for grouping, tagging and categorisation
- Text
- Images, flash and other standard web content integration
- Full HTML support
- Version management
Support for blog content, including
- RSS support
- Categories
- Ping support
- Built-in WYSIWYG editor support
- Interfacing with ScribeFire and other offline editors
Optional: Wiki and forum support
- With user management (role based access control)
Document management for non-web content
- Support for managing non-web documents (PDF, MS Office, Open Office, binary)
- Support for grouping, tagging and categorisation
- Version control (on demand, so not for all documents)
- E-mail notification service, on subscription
- RSS notification support on document and category levels
Document creation/export
- Support PDF generation from web pages
- Decent layout of exported/generated documents (WYWIWYG, WYSIWYG)
Information services
- Automatic Latest news on front page
- Latest updates newsletter subscription support
- RSS on all content, dividable in categories/information group
General content and structure management
- Multi-language support
- Site level switching of language
- Fallback to default language for pages without translation
- Web site structure and layout
- Full control over look and feel
- Fluid layout support (next to fixed width)
- AJAX support
This list will be revised and restructured during the evaluation of content management systems I’m conducting, but it is the main starting point for the evaluation as presented above.
Content Management
The content management system I use for my company web site is Joomla 1.5. It doesn’t really fulfill my needs at this time, so I figured it was time to start comparing some alternatives.
Right now, I’m using my home system to install five systems next to each other, and see which one does meet my requirements best. Next to these five, a sixth will be installed out of interest, but not for production use, due to some limitation on the part of my hosting pacakage (i.e. it requires a Java environment and I don’t want to spend money on that just now).
The five are:
The sixth one will be Alfresco.
Apart from these six, two options have been discarded based on past experiences on this blog: WordPress and Serendipity.
In a follow blog post, I will introduce my requirements, and over the coming weeks or months the comparison will be completed.