Microsoft Business Framework - MBF

I saw the other day a presentation and working bytes of MBR. Basically its build in ability, of visual studio, that extends the traditional approach to model driven development toward “model aware application server”.  Using MBR you can define  your business entity regardless of technical dependencies using metadata that serve as layer of abstraction between your code (business entity) and the technology that your code using. As you are using design time visual studio tools (including schemas, designers and tools) MBF generate code for your definitions and provide framework to run your entities at runtime.  

 

First of all it looks amazing! I think that we really should wait for MBR release. Personally I would be more then happy to be a part of that effort and to influence on MBF outcomes.

 

I’m very excited from MBF because as I see it, with little of effort, we (MS community) could have real application server (such as J2EE, JBOSS, etc’). there is anyway a frame work that generate and run business entities (probably a container is hidden there, to host entities). If that framework will adopt some architecture principles that enable containing and providing services for contained entities (such as Interceptor stuck, manage extension, naming services, etc’)  we will have some kind of application server (that serve as level of indirection between business code and the tech. it running on). If someone follow me in the last year, it was one of my major complains about Microsoft in the enterprise field.

  

There are some points that I'd like to mention, hoping that the right people in Microsoft will read then.

  1. Think about adding Enterprise Architecture framework that will be part of MBR. Don’t invent yours, use TOGAF or Zachman frameworks. It’s essential to create application architecture and design, which follows enterprise architecture. It will be nice to see how decision that I made through application architecture match enterprise architecture and which AE rule/IT strategy target I follow. Such mechanism could help a lot to EA governing phase.
  2. As I saw in the demo, MBF is based on Table module pattern of managing domain logic. It will be awesome to see MBF able treating business logic as domain model pattern as well. Usually systems that need such a framework are complicate one and using domain model make more reasonable then table module.
  3. Don’t make such a strong relation between MBF and rich client / SOA systems. If the framework supposes to indirect my code from the technology that my code is using, then I might choose other Architecture pattern for my system rather then rich client. My system goals are to solve one or several of my enterprise needs, therefore my system should follow my enterprise architecture. My enterprise architecture might not use rich client as guide principles for inner enterprise reasons. In the end of the day it doesn’t matter which architecture pattern I choose I’ll have business entities that I want to host.

4 Comments

  • "Usually systems that need such a framework are complicate one and using domain model make more reasonable then table module. "

    And why is that? Because Fowler says so? Pure domain models fragment the BL into the domain classes, which is not correct. The rules have to be outside the entity classes as it can be that you have to apply different rules on the same entity type but different instances (f.e. based on different input).

  • > And why is that? Because Fowler says so?

    :-) No! because practice say so....

    I don’t recommend putting BL into domain classes. I just learn from experience that splitting the problem into classes that represent the model and the logic using OO is easy to build and maintain. I don’t think that BL should go into domain classes. But I do believe that model should be build by OO rules and not just by reflecting table’s structures in the DB (which table module does). BL strategy should be separate to different classes by using OO as well. I think that even Fowler in his book uses separation and splitting of model and logic in the book revenue structure.



    Anyway, I wrote so because I found it very practical and not because Fowler wrote it in his book. Neither Fowler nor Microsoft got any monopoly on knowledge or practice :-)

  • jGnybd Really appreciate you sharing this post. Cool.

  • Major thanks for the blog article.

Comments have been disabled for this content.