I have a simple goal. I want to be able to work with domain experts and quickly diagram the application area. This should be similar to the class diagram tool already built into Visual Studio.
Once the diagram is built and approved, the ability to code generate should be next. My idea here is to generate the Data Access Layer (DAL) by using NHibernate. This would allow the application to be database agnostic by generating dynamic SQL on the fly. The Business Persistence Layer (BPL) would be generated using CSLA (Composite Scalable Logical Architecture) by Rocky Lhotka. This allows the domain to take advantage of communication layer within CSLA which now utilizes Windows Communication Foundation (WCF). It also allows the N-Level undo and security layer utilizing the Principal and Identity objects built into Visual Studio. These layers working together provide for a rather robust and flexible middle tier(s) of the application.
My next idea for the domain model is to provide a swim lane diagram to document each of the interactions between the user and the application. These interactions would then be generated into Model View Presenters (MVP) so that the application could be wired to the domain. By using the Passive View, as described by Martin Fowler, the view becomes a dumb implementation that should handle just the specific UI logic and not any of the business logic. By doing this, the same presenter could be used between a Windows interface and Web interface, as well as a Mobile interface. All these working together would be able to deliver the same user experience regardless of the UI implementing the interaction.
And finally, the implementation model would be modeled using the Component diagram. This would allow the user to model how the application is implemented on the server(s), how the layers would communicate and where the database is located. This model would then code generate the configuration file(s) needed.
So, as you can see, this is a simple goal, but I plan on documenting the process as it progresses. If you have any comments or questions, feel free to send me a note.