Attention: We are retiring the ASP.NET Community Blogs. Learn more >

Software Factories and Domain Specific Languages

I believe that we can produce models that can be 'executed'. I also believe that UML is not the way to go to achieve it.

There is an article in the Microsoft Architecture Center about 'Software Factories and DSLs' which I find quite interesting:

Software Factory is a product line that configures extensible development tools like Visual Studio Enterprise with packaged content like DSLs, patterns, frameworks and guidance, based on recipes for building specific kinds of applications. For example, we might set up a Software Factory for thin client Customer Relationship Management (CRM) applications using the Microsoft .NET Framework, C#, the Microsoft Business Framework (MBF), Microsoft SQL Server Yukon and the Microsoft Host Integration Server (HIS). Equipped with this factory, we could rapidly punch out an endless variety of CRM applications, each containing unique features based on the unique requirements of specific customers. Better yet, we could use this factory to create an ecosystem, by making it available to third parties, who could extend it to rapidly build CRM applications incorporating their value-added extensions.

The idea of having a set of diagrams an metadata-based models that are very focused on the domain problem and the technologies that will be used to implement it is very good. As far as I know it's a unique approach in the industry. I've been hearing about DSLs from Microsoft for a long time but it's the first time I see an example of it that makes me understand what they are trying to achieve, and I like it.

 

1 Comment

  • I agree 100%. UML is merely a blueprint of structure and process. We need a better way of building application and I don't believe UML is that way. It may play a part.



    Since writing code generators and templates most of my programming life starting with Clarion and then my own in VB and C# and now Dekarit. I have always viewed code as merely another data structure that can be manipulated based on metadata.



    The process of using metadata to produce code that performs CRUD type applications is fairly mature or at least understood. What is needed is a robust way of generating the variations. Some sort of Meta data overlay that controls the CRUD Generation.



    In Deklarit for example, if one could separate BO, DP and Attribute properties from the into multiple different domain specific Meta data stuctures you could then develop several apps that use the same CRUD infrastucture but have different captions and other business rules. This separate structure could override the CRUD structure and add a BO, DP or attribute or change a datatype.



    The developer would choose the CRUD metatadata structure. Then he could choose from several "Overlay" structures to produce many different variations of the same basic app.



    How 'bout it? Deklarit 3.2?









Comments have been disabled for this content.