Extensibility hooks meet Enterprise Library?

Wow! I hope this forum starts to get a bunch of traffic from the architctecture community.  I really have been looking for something like this to post the really hard architecture questions I'm dealing with at the office.

Most recently that has been surrounding the usage of the enterprise library and how we can embrace and extend it to help achieve high levels of productivity when delivering line of business applications.  The primary goal being to get developers out of the muck of doing instrumentation code, caching code, runtime configuration code, and maybe even persistence code.

So that sets up the scenario,  now to my primary question.  With VS 2005 how extensible are the class diagrams or to be more specific how far can you take them before you have to start digging into the DSL tools and building your own   My holistic view is one that has a designer building new classes and by simply clicking a checkbox they add exception handling based on a list of exception handling policies (ex ASMX End Point class returns SOAP exception).  I could also see tracing code,  caching mechanisms, config, and data access/persistence (this last one being a little more complicated obviously) being something that could be pushed up into the model.

Obviously the only benefit to going down this path is that we could generate code and round trip in the event something changes during construction.  So this is where I'm wondering if this is something that can even be done with the tools in their current state.  Are we truly to a point now where MDA is a reality or is it still more of an eventuality   I'm starting to dig into the DSL tools but there really isn't a ton of stuff out there yet (I realize it's still relatively young so I do not mean to sound critical in any way).

Long term goal is to get to the point where we as Architects at my place of employment are managing how efficient the assembly line is and not constantly helping to facilitate how the parts are being built.  We've tried to do some of this with the enterprise templates, enterprise library 1.0 (with our own extension framework on top) and VS 2003 but to be quite honest it really only gets you about 10% or 20% of the way there.  I'm not asking for all the answers but a meaningful dialogue on this topic would hopefully get me some good things to read / research / try out myself.  I've just been starting to work on these things in my free time (see assembly line reference above) and I would love to see some samples of customized class diagrams based on a fictitious enterprise framework.  Just trying to save myself some time by asking the experts,  if this is completely "out of bounds" then tell me.

Thanks in advance to anyone providing some feedback on this!




Answer this question

Extensibility hooks meet Enterprise Library?

  • Matthew Crockett

    I'd like to inform you all that class designer is extensible though not all the way you want. There is a modeling power toys project at gotdotnet which also has source code that shows extensibility points. Nevertheless, IMHO, you should go through the DSL & GAT way  as mauro and edward suggest.

    Ozgur


  • TommyB83

    Whenever you have a question that is related to the usage (or problems you are encountering) with the DSL Tools I suggest you to post them on the DSL Tools forum.

     < xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    I think you have a better change of getting an answer from people also using the DSL Tools. See you there….

     

    Edward


  • Geoff Dalgas

    I'd like to confirm, so far, Class Designer is not extensible.

    We will see more extensibility of VS designers in future releases, but for now "what you see is what you get", so to speak... :-)
    Which is not little... see Bill Gibson blog about some tech notes on VS designers.

    Although with a few limitations (like the aforementioned round-tripping), I think it would be worthwhile for you to invest on DSL.

    Mixing DSL and GAT requires some proper planning, especially to understand how to integrate DSL code generation proviledged mechanism (T4 templates) within a GAT package generated solution/project template.

    If you can "draw a line" between what DSL and/or GAT would do, you're on the right track. And, because DSL outputs are all about metadata, you can use XML documents as an easy integration technique with GAT recipes.

    HIH

    Mauro



  • rgopalakrishna

    Ok, let me be the first to join you on this conversation. As far as I know, it isn’t possible (at this moment) to change the behaviour of the class designer in any way. Reading your post I think your best option would be to start digging into the DSl Toolkit. I know there isn’t much documentation yet, but there certainly are some useful pieces available to give you a head start. Most of them can be found on the DSL Tools forum. < xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

     

    One of the issues you may find in using the DSL Tools for your ideas is the fact that DSL Tools doesn’t support round tripping out of the box. The good news is that you can implement this yourself when you find the time to really dig into this DSL Toolkit. I (and partner) am using the DSL Tools myself to build a DSL for modelling services and managed to implement round tripping for our solution. So it can be done.

     

    I think you must search a possible solution in a mix of DSL Tools and Guidance Automation Toolkit (GAT). In other words, start building a Software Factory that meets your needs. You can mix the artifacts you are creating by using the DSL Tools and/or GAT with you framework of choise (EntLib ). Probably not an easy road to walk but definitely worth trying. Tools like DSL Tools are in an early state but very good usable (at least for me).

     

    Cheers,

     

    Edward


  • VMartin

    Edward,

    Thanks for taking the time to provide some guidance.  Also thanks for saving me a 1/2 day of research trying to find exensibility hooks in the existing class designers.  I'll start digging into the DSL tools and when I have questions (not if ... when) I'll post them here.  I am truly excited about this endeavor I believe as you do that every effort toward a software factory strategy even if you come up short still will reap huge productivity and supportability benefits.

    Thanks Again!



  • Extensibility hooks meet Enterprise Library?