In a windows/.net environment I currently use castle monorails with jquery to provide an administrative interface to an e-commerce application.
This application works nicely, but has no real concept of ui composition. Up to now this has not been a problem, because the ui was targeted to a single user base, and a single domain object. This will change, as we want the application to work for domains deriving from a defined base domain (and extending it).
So if I have an entity with a name and a description string property, most probably I'll have a form with a name and a description input and a hidden id field. Posts go via jquery/ajax.
Now a different customer comes and gets his default application setup. He requires a date and a size field on that entity. I need to think about keeping this easily deployable, so I cannot just hack into the existing solution and extend it that way. What I need to do, is drop in a dll into the bin folder of the client's base installation and be done with it.
Currently I read up a lot about silverlight, prism and caliburn, which seem to get me this functionality - at a price.
What is very easy now - accessing my domain data, services and messaging and making use of that data in the view, will become hidden behind some layer, probably a restful web service type of thing. Additionally, from what I can gather, normally Silverlight application seem to bind to visual-studio generated proxy classes of the entities exposed by these services - a situation not fitting very well in my current scenario.
So I am a bit in between two chairs and in doubt if a migration towards silverlight would not just move the problem area, instead of making it disappear.
Another option would be to generate my views in javascript using a library like YUI o dojo (cannot use ext due to their licensing) and generate all ui there (almost no html markup), define extension points and use some kind of javascript linker to allow me to extend that interface. Data would arrive with subsequent calls to restful services. While this does not seem all that different than going the sl way, due to the dynamic nature of javascript, this could be much easier then bending the strongly typed .net to my will.
Anyone could give me some opinion here to help me make that decision?