Developing an XML-based system


Introduction

In the last months, I’ve been assigned to a project at a large government organisation. The project involves several new concepts that make it interesting to work on. An example of this is the storing and evaluating of business rules in a rule engine, keeping it apart from the rest of the system. This separation of concerns increases maintainability and eases troubleshooting.
Some other new things (for this organisation) are the XML message formats and the system being service-oriented.

The project is of high importance, because it will eventually be used by a large part of the Dutch population.

Prototyping with Microsoft tools

Initially, a prototype was developed with Visual Studio; a web application using technologies like WCF, XAML and InfoPath.

XAML is a declarative language, it allows to quickly specify a user interface using standard and custom components. It’s easy to use and doesn’t take a lot of time to get used to. You can use a .NET code-behind language (like C# or VB.net) to add extra behaviour, although a lot can be done in XAML itself. It has extensive binding capabilities, that can be used to interconnect components, but also to connect components to external sources, like web services and databases.
Being a relatively new technology, there are some things that don’t work correctly yet (e.g., previewing and running a XAML page with a complex layout can yield different results).

InfoPath is a tool to design and run forms with, easy to use because it’s WYSIWYG and has the typical Microsoft Office look and feel. Some things could be improved, like automatically connecting a field to a data source (based on its name) and specifying more conditional layouts (showing or hiding a row, based on the value of another).

Proof-of-concepts with edgeConnect

We use a product called edgeConnect to reimplement and finalise the prototype as a proof-of-concept. It will be used by employees and citizens for about half a year, critique will be gathered and used to improve and/or redesign the system.

edgeConnect is software to create form-based web applications, that interact with underlying services. It is the functional equivalent of the XAML + InfoPath combination used in the prototype.

It’s created by edge IPK, a medium-sized UK company. The fun thing is that they regularly send one of their employees to support us. Also, we have a lot of email contact with them about suggestions, improvements and (sometimes :-) ) bugs. They respond quickly and are open to our suggestions, which makes it nice to communicate.
The product isn’t really intuitive, so we had a few days of training prior to the start of the development of the web applications.

It has some nice features, like the ability to generate a lot of a project by importing an XSD file (which is what we use to specify our data model). It is built with Java and is easily extensible with custom classes, which we are using for things specific to our project.

Integration issues

edgeConnect is completely XML based, so it’s a great fit with our XML services.
That being said, the integration part had a lot more bumps on the road than initially estimated. This was due to multiple reasons, like the continuous modification of the XSD’s (making them a moving target), the release management not being regulated (meaning different components were based on different versions of XSD’s and other specifications) and lack of good communication between the teams.

As time progressed, these things were taken care of and now things run a lot more smoothly. One of the proof-of-concepts recently went into production, the other one will follow soon!

, , , , , ,

  1. #1 door Alexander Bielowski om 21 januari 2011

    Dear author,
    I am in a similar project, using edge connect. We are planning to mock-up screens in another tool and generate XAML from there. Is there a possibility to import XAML into edge connect?
    If you used such an import, I would be interrested about your experiences.
    Greetings from Holland!

  2. #2 door Robert Zwerus om 24 januari 2011

    Alexander Bielowski :
    Is there a possibility to import XAML into edge connect?

    Hey Alexander,

    We didn’t convert the XAML project into an edgeConnect project, so I’ve got no experience with automatic conversion. They’re both XML-based, but I’m not sure whether any conversion tools exist. I could hook you up with some people at edge IPK, in my experience they’re really helpful in codeveloping custom solutions. Let me know at robert.zwerus@luminis.eu.

  3. #3 door Dharmesh Mistry om 9 februari 2011

    Currently there are no plans generate XAML from edgeConnect, or indeed to import XAML into edgeConnect. This is primarily based on no demand from our client base, but also Gartner’s view on where XAML is going (or not).

    However I would be happy to discuss what you are trying to achieve and whether we might be able to help you?

    Note we have proven we can generate/import MXML to generate Flash apps.

(wordt niet gepubliceerd)
  1. Nog geen trackbacks.