Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Microsoft Visual Studio SDK DSL工具-有认真的使用者吗?_.net_Visual Studio_Dsl_Dsl Tools_Visual Studio Sdk - Fatal编程技术网

.net Microsoft Visual Studio SDK DSL工具-有认真的使用者吗?

.net Microsoft Visual Studio SDK DSL工具-有认真的使用者吗?,.net,visual-studio,dsl,dsl-tools,visual-studio-sdk,.net,Visual Studio,Dsl,Dsl Tools,Visual Studio Sdk,我们正在考虑使用MicrosoftDSL工具包来创建一些抽象设计器。我已经做了一些POC,但想得到一些相同的意见 有人在这里分享他们使用Microsoft DSL Toolkit和T4的经验吗?此外,任何指向开源DSL项目的指针都会有所帮助——例如,Microsoft Service Factory建模版严重依赖DSL工具包 由于奥斯陆/Quadrant需要一段时间才能发布,我认为我们唯一的选择就是依赖微软的DSL设计器。() 此外,以下是我已经掌握的有关DSL的一些信息: 1- 2-我们已经对

我们正在考虑使用MicrosoftDSL工具包来创建一些抽象设计器。我已经做了一些POC,但想得到一些相同的意见

有人在这里分享他们使用Microsoft DSL Toolkit和T4的经验吗?此外,任何指向开源DSL项目的指针都会有所帮助——例如,Microsoft Service Factory建模版严重依赖DSL工具包

由于奥斯陆/Quadrant需要一段时间才能发布,我认为我们唯一的选择就是依赖微软的DSL设计器。()

此外,以下是我已经掌握的有关DSL的一些信息:

1-


2-

我们已经对DSL做了大量的工作,并且有许多DSL供内部和基于客户的顾问使用,尽管并不是我对DSL做了大部分工作。一旦你完成了建模(这不是一个小壮举),我会说这些都是很棒的工具

不幸的是,我不能向您指出任何开源项目,我要补充的是,在启动和运行一个非琐碎的DSL方面的投资是相当大的,然而,如果您正确地实现了这些项目,那么生产力的提升将是令人印象深刻的

编辑-经过几年的经验,我做了以下观察:

  • VS DSL具有糟糕的视觉性能大型图表,您需要折叠模型元素(隐藏/显示)
  • 带有许多互连线的大型图表很难导航(布局很难)
  • 大型模型在代码生成等方面表现良好,主要用于反序列化(如预期的那样)
  • 由于guid的数量很大,因此很难进行模型比较
  • 良好的开发人员体验需要在开箱即用的属性对话框上进行大量开发
  • 模型可以加密以保护IP,这使得以后比较非常困难(但对所有加密文件都是如此)

  • 我绝对是个认真的接受者。Ivé最近制作了一个dsl来为orderingsystem建模OrderProcess。我们使用一个windowsservice,它连接到不同的Web服务,基于特定行的ProcessStatus,然后根据结果更改状态(下一步,错误,拒绝)。手动编辑db表非常耗时,所以我为sql代码编写了一种语言和生成器

    我必须检查是否允许我发布项目中的任何代码,但我发布了DB结构,这样您就可以理解为什么手动编辑很困难。我必须为aprox输入数据。10个OrderProcess,包含5-20个步骤,每个步骤都包含操作和所有内容(ProcessActionId是对Web服务的引用)


    除上述内容外,对象角色建模工具还基于DSL工具构建。这是一个非常复杂的示例,演示了如何使用XML转换进行模型转换和代码生成。

    我已经介绍了visual studio DSL工具包的使用。最终,我发现这些工具还远远不够。 在我看来,需要一个GUI,而不需要任何能够轻松描述底层文本语法的能力是不够的。我需要能够在没有GUI的情况下轻松使用DSL

    Oslo似乎朝着一个非常奇怪的方向发展,将DSL的所有元数据存储在sqldb中。这对我来说似乎无关紧要,而且肯定会减慢速度,特别是如果您想要快速集成IDE的话。诚然,我没有深入研究它,所以它可能比我对它的印象要好


    另外,我最近使用实现了一个DSL。你可以找到我的帖子,作为对关于它的一个问题的回答

    我试图了解这一切是如何运作的。用户是否需要拥有Visual Studio许可证才能使用您的DSL?若要创建DSL包,请下载并安装Visual Studio SDK。DSL包与任何其他VS包一样,您需要一个包加载密钥来部署。所有VisualStudioUML工具都是使用公共建模和可视化SDK构建的……这是一个非常严肃的话题,听起来很酷。事实上,我们也做过类似的事情,主要是为了生成点击原型和dto对象。当然,你可以简单地使用ORM来生成所有存储库保存代码。@Darien:这个问题是专门关于DSL工具包的。啊,你说得对,我没有参与关于开源项目的问题。Post body Delted实际上,我将对其进行编辑,以反映我对MS所拥有工具的更多看法。@Darien:SQL Server DB只是Oslo的目标之一。您还可以获得AST或“MSchema”。DB(SQLServerExpress==free)对于模型及其实例应该在同一位置对多个涉众可用的情况非常方便。示例:应用程序和服务的配置。OP询问了关于开源的问题。NORMA的来源在这里:有197个域类,这是一项重要的工作。
    CREATE TABLE [dbo].[OrderProcessStep](
        [OrderProcessCode] [int] NOT NULL,
        [PreviousProcessStatusCode] [int] NOT NULL,
        [NextProcessStatusCode] [int] NULL,
        [DenialProcessStatusCode] [int] NULL,
        [ErrorProcessStatusCode] [int] NULL,
        [ProcessActionId] [int] NULL,
        [StepComment] [varchar](500) NOT NULL,
        [SecondsToNext] [int] NULL,
        [SecondsToError] [int] NULL,
        [SecondsToDenial] [int] NULL,
     CONSTRAINT [PK_OrderProcess] PRIMARY KEY CLUSTERED 
    (
        [OrderProcessCode] ASC,
        [PreviousProcessStatusCode] ASC
    )