I'm completely new to all this so I find myself asking if I'm barking up the wrong tree or not.
My questions are mostly theoretical right now but I'll try and give you a real world example to see if I'm on the right page with this stuff.
Imagine you were going to create a word processor to rival Word.
My suggestion would be to create a shell with 2 regions (for now) the document region and a toolbar region.
You could then create module (called editor) with a view which was basically a rich textbox which got loaded into the document region.
Would you then also have modules which contained services like:
- Spell Checking
- Grammar Checking
I realise that the rich textbox comes with a spell checker, but imagine you wanted to use a different (more specialised) spell checker, or even write your own.
I think the approach described above is correct as it allows you to develop the spell checker module or auto-text module in a way that is loosely coupled from the editor module.
If you wanted to change the way the spell checker worked you could - as long as you didn't break the contract with the editor module (presumably there is an interface in the mix somewhere).
Am I on the right track with this? Is this what CAL is for? or am I in danger of over-engineering the solution.
Some of the quickstarts seem to me to be more useful if you're creating a dashboard view of different legacy systems, like trying to create a thick client mashup.
What I'm looking to do is write a brand new application from scratch in a way that is designed for change, easy to maintain, etc. etc.
Thanks in advance for any help or advice.