Chris Donnan : Programming – Brooklyn Style
software, trading, family, fun
Posted .net, User Interfaces, c#, programming on Thursday, May 11th, 2006.
I have been speaking with one of the gents over at SpringFramework.net. I am considering starting a project that would be in the same space as the Microsoft CAB – as a sub-project or sister project for SpringFramework.net . In short – CAB is fine – but I am not the biggest fan. I have spent the past several years working on so called ’smart client’ applications, ‘rich client’ applications, etc.
.Net applications are on the desktop. In most places on wall st – there are .net desktop apps with backends written in Java – this is how it is. That said, many applications still lack the fundamental framework or basic structure for abstracting constant features. They also lack the general seperation of concerns/ tiers that enable applications to scale out.
In no particular order – some important elements to an effective DAF (desktop application framework)
-Binding model objects to view elements
-Grid binding specifically with distinct ‘gridy’ features
-Client side data cache
-Plug in model
-Logging
-Object Factory/ service locator
-Common ways to work with menus
-Seperate persistence tier
-Add in mechanisms for views
-UI extention points
-Resource repository
-Workspace abstraction
-Model/View/ (presenter, controller, some variation of one of these many)
-Testability
I will continue to blog on this project as I am considering features to shoot for and some basic constructs.
RANDOM THOUGHTS…
- I also need to consider what external dependencies I will have – spring code, spring aop, log4net, rhino mocks and nunit to auto-generate tests.
- I would like to mimic some of how rails does code generation – like create a view – you get a controller, some tests, some mocks, etc.
- In chatting with Mark from Spring.net team – enhancing the Event Broker to make it more complete would be key. The Event Broker is one CAB element that I DO like. We need to consider the intra-app event broker and it’s recommended usages.
- consider Db4o for client side cache – and potential mapping to DB for real persistence.
- Build in UI testability in addition to testability for other tiers.
- Establish extention point APIs/ configurability (menu XML schema and interfaces that you have exposed).
- Need to provide concept similar to Perspectives in Eclipse for organizing view elements
- Context menu factory based on selected elements
- Static is evil – avoid it and still be convenient
- Focus on simplicity for developers
- Must be able to add and see a view in seconds without doing tons of work.
- Need repository repository
- Use UI application context
- Use Presenter Command notion
- Use Business Facades to hide business domain services. Commands orchestrate these
- Menu configuration
- Name, place in heirarchy, which menu, keyboard shortcut, Command referenced
Plenty more rambling to come as I am chattering about basic thoughts and trying to formulate my real goals.
-Chris
3 Responses to “SpringFramework.net DAF – Desktop Application Framework”
Comment on this post below
You must be logged in to post a comment.
You can leave a response, or trackback from your own site.








Hi Chris,
I do feel that Microsoft CAB has a few shortcomings, the most glaring one I believe was the use of WorkItem as a “dump bin”.
I have extensive experiences in Springframework in Java in the past, and I have recently switched job that would require me to work with .Net fulltime.
I’m interested at your idea of developing the DAF on top of SpringFramework.net.
Have you used the SpringFramework.net extensively at your work place? Is it scalable?
If you’re planning to start this project, I would definitely be interested since my choice now is either to wrap CAB or come up with my own desktop framework.
Please give me a shout. my email is lsusatyo@yahoo.com
Thanks
Thanks for the interest. Yes – I have used Spring.net in 2 major investment banking clients. I can say for sure that it is being used by other ‘industrial strength’ clients, other investment banks and other major companies still. It absolutely works and scales fine.
CAB’s main advantage is that it will be widely used ASAP. Hopefuly I will be able to get out of the gate sooner than later with the spring DAF.
-Chris
Hi Chris,
Do you have an “early” release edition available? If you do, I would like to incorporate it into my work, if you don’t mind
Thanks
ps: for some reason i think the resetting password of this blog is not working properly, i tried to reset my password, but didn’t get any email.