Synergising Whitehorse, DSL's, GAT, Enterprise templates etc

Hi, This is my first post in this architecture forum. Theres some really good stuff floating around in the posts. Nice community. Hope I can contribute something useful.

Anyway, heres something i've been thinking about since i attended TechEd Amsterdam last year. Beat Schwegler showed us a GAT package named Melted Cheese which created a 6 or 7 layer web service (one for the data, one for business, one for the service facade, one for an enterprise services facade and so on). It looked really good. I then started thinking that it would be nice to have that integrated with the App Designer. Right now if you create a web service, its just a single project, but if you like the multi layered approach, you cant do it with the current toolset. The same applies to a web application, or for that matter any large scale distributed solution.

I havent used Enterprise Templates but I've seen demos where people set up templates for multi-project solutions and you could set policies on what can and cannot be included in the projects. But you cant 'tag' an App designer entity and say "use my super <xyz> template"  and go and generate all these projects.

Even with a simple 'project template', you can setup naming conventions, boiler plate code and so on, but im not sure how far you can go with the AD surface.

I think it would be a good idea to have a synergised application design environment where you could extend the App Designer so that each element represents an entire package or template. You could then create a multi solution system adhering to established and custom standards.

I'd also like to see some surfaces for designing layered applications where the business layer DLL is a separate entity. I read today on Bill Gibsons Technote that the reason class libraries are not a separate entity is because they are part of an application and the surfaces now are trying to create 'units of deployment'. I appreciate that but what if we could have a 'zoom feature' on the AD where we expanded the 'application' into its multiple layers and generated code from there We could continue to use the AD for the 'unit of deployment'

There are some other thoughts in my blog posts on

(1) Whitehorse Extensibility -Into App Centre, MS Build and beyond

(2) Extensibility..(part 2) - The Class Designer and DB Design

I'd like to know what the rest of this community thinks.

Regards,

benjy



Answer this question

Synergising Whitehorse, DSL's, GAT, Enterprise templates etc

  • WebMetro

    Hi Bill,

    Thanks so much for replying so promptly.

    I hadnt seen the super template option earlier (but then again im just getting into the AD now). I will definitely look into this. I agree with the technote and do think that the drill-in feature with a separate diagram would be very useful indeed.

    I will compile some of my other thoughts and send them to you and /or post them here to see what the others think.

    Rgds

    benjy


  • historie

    Similar question here. How can I make DSL work with Class Designer and Distributed Designer on the model level in terms of model integration

  • Philippe Lacoude

    HI Benjy,

    You can associate a 'super' template with an application on the Application Designer. See the Implementation>Template property on a Web or Windows application. You need to be careful to ensure your template creates projects consistent with the application type you're using. You can use GAT technology to extend the function of the template to create 'internal structure' within the application.

    You also refer to wanting a 'zoom feature' to drill-down from an application. Indeed this is discussed in the tech note you reference....

    "...The solution is to not think of class libraries and other resources as peers but as parts of an application. Instead of seeing class libraries connected alongside applications, class libraries and other resources should be visualized by drilling in to the application to view the implementation of the application. In the same manner that a system diagram depicts the delegation of system endpoints to member endpoints, the drill-in view of an application would depict the delegation of its endpoints to endpoints on its resources—projects, class libraries, DLLs, and so on.

    A drill-in view could be provided in-place or in a separate designer/diagram. Imagine double-clicking an application on the application diagram or system diagram to open a drill-down view. In the common case, you would see the root resource (the root project) and a nested hierarchy of dependent resources (class libraries/DLLs etc.) contained within an outer application shape. Each endpoint on the outer application shape would be delegated to an endpoint either on the root project or one of its dependent resources. ..."

    While we can make no promises about when this will happen we are serious about enabling this design view.

    Generally, we are very interested in gathering requirements for extensibility and would really like to understand your scenarios in this area. If you would like to describe them here or to contact us offline that would be great.

    Cheers, Bill


  • Synergising Whitehorse, DSL's, GAT, Enterprise templates etc