Pergunta

Morning all, I'm trying to work out what is best for me to do in a 'mostly' greenfield piece of work I'm doing.
The 'mostly' part comes around because I've inherited 2 systems that do a very similar task following a merger of companies.
It's really important that those existing systems aren't put at risk as they run the field force activity for the company and outage = bottom line.
So I elected to use Azure Service Bus to keep the 2 underlying Db in sync, and that seems ok to date.
I'm using the published changes from those legacy Db to also populate/sync a new Db instance. The new instance is intended to be the consolidation of the old world into a brave new one and I'm working really hard to establish a domain model that represents the company business. It's slow but education is working and the value in same is being seen.
The 'new system' will also have a new UI, and we decided on MVC to implement it in. I have 2 guys in India who will build that MVC application, the rest will happen here in London.

So here's the rub, I'd like my domain model to be read by the UI via a web-service. My motivation is to decouple and protect that model from other parts of the system. The will use the web-service to load data at start-up, publishing any changes they make to the bus.

Do I just have the Indian guys take the returned data and maintain their own local view-model or what? What should the plumbing look like? There are like to be maybe 80 UI instances working during the day.

The domain model is already proving to be clearly different to the expected view that appear on the screens.

I'd really appreciate some pointers here as I have a rare opportunity to 'do it right' .... :-) Regards Steve

Foi útil?

Solução

1) Keep internal company traffic hidden. 2) Expose REST/SOAP/anything suitable here, to the MVC app. 3) That MVC app may be server side, client side, mobile, whtever. But it only consume "public" API. 4) Build middle man serivce that will handle requests from MVC app, and be able to talk to other parts of corporate infra.

That way, You and team in india have total freedom in designing for Your needs. MVC app can be run from Internet (and not behind some vpn, or something similar). Team in india do not know a single thing about internals of other systems (and You need not know about internals of MVC). Etc.

As a bonus You will have ready architecture for adding different clients (like mobile apps) in the future.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top