T4 vs CodeDom vs Oslo [已关闭]

2024-01-03

在我正在从事的应用程序脚手架项目中,我试图决定是否使用Oslo http://msdn.microsoft.com/en-us/oslo/default.aspx, T4 http://www.olegsych.com/2007/12/text-template-transformation-toolkit/ or CodeDom http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx用于生成代码。我们的目标是将依赖关系保持在最低限度,并根据用户故事驱动领域驱动设计的代码生成。第一步是根据用户故事创建测试,但我们希望领域专家能够在各种不同的媒体(例如自定义应用程序、Word 等)中编写他们的故事,并且仍然根据用户故事生成测试故事。

到目前为止我所知道的:

  1. CodeDom 需要 .NET,但只能输出 .NET 类文件(例如 .cs、.vb)。难度相当高。
  2. T4 需要 CodeDom 和 VS Standard+。难度级别相当合理,尤其是T4工具箱 http://www.codeplex.com/t4toolbox.
  3. 奥斯陆很新。我不知道依赖关系,但我想您必须至少使用 .NET 3.5。我也不确定代码生成能力或添加新语法的复杂性。然而,领域专家可能可以非常轻松地在 Intellipad 中编写用户故事。也不确定将 Word 中的故事转换为 MGrammar 是否容易。

您对上述工具的想法、经验等是什么?我们希望坚持使用微软或开源工具。


选择 T4 - 轻松决定。

  • Oslo 太新了,工具也太原始,只能作为一种仅用于评估的技术
  • 如果您需要在运行时生成 CPR 类,并且愿意牺牲对生成输出的轻松修改,那么 CodeDOM 非常强大。
  • T4(带有 T4 工具包)是一种易于使用的通用代码生成工具。到目前为止,我遇到的唯一困难是构建时集成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

T4 vs CodeDom vs Oslo [已关闭] 的相关文章

  • Resharper 中的警告“未使用纯方法的返回值”

    我有一个关于我正在工作的 c 项目中从 Visual Studio 中的 Resharper 收到的警告的快速问题 警告是 不使用纯方法的返回值 发生这种情况的方法如下 private static bool FilePathHasInva
  • 为什么在此实例中 System.MidpointRounding.AwayFromZero 不进行舍入?

    在 NET 中 为什么System Math Round 1 035 2 MidpointRounding AwayFromZero 产量 1 03 而不是 1 04 我觉得我的问题的答案就在标有 来电者须知 的部分中http msdn m
  • 如何延长SQL查询的超时时间

    这不是连接超时 因为与数据库的连接正常 问题是我调用的存储过程花费的时间超过 30 秒 并导致超时 该函数的代码如下所示 SqlDatabase db new SqlDatabase connectionManager SqlConnect
  • 将 X509 证书存储在数据库中

    为了访问网络服务 我需要一个证书 我生成了我的证书 openssl genrsa 1024 gt private key openssl req new x509 nodes sha1 days 1100 key private key g
  • 根据另一个列表的内容对列表进行排序

    我有一个包含整数列表的列表和另一个包含同时包含整数和字符串的类的列表 我想做的是按字母顺序对列表进行排序 将第一个列表中存在的条目放在前面 这是我的代码和预期输出 using System using System Collections
  • .NET 进程分配的内存何时释放回 Windows

    设置 NET 在启动时以及在收集后尝试满足分配请求时 分段为每一代的堆 0 1 2 LOH 分配内存 以获得连续的内存块 为每个堆分配的内存可能会随着应用程序 预热 而趋于平稳 但第 2 代和大型对象堆可能除外 在垃圾收集期间 每个堆 0
  • Java 中有类似 .NET 的 NotImplementedException 的东西吗?

    有没有类似 NET 的东西NotImplementedException在Java中 康芒斯朗 http commons apache org proper commons lang javadocs api 2 6 org apache
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d
  • C# 暴露给 COM - 接口继承

    假设我有一个实现 IBaseClass 的类 BaseClass 然后我有一个继承IBaseClass的接口IClass 然后我有一个名为 class 的类 它实现了 IClass 例如 ComVisible true InterfaceT
  • WCF 中的 Web 服务发现:Ws-Discovery 还是 UDDI?

    我知道 UDDI 和 Ws Discovery 熟知搜索服务与广播的位置 之间的区别 但我的问题是 在 WCF 中发现 Web 服务的最简单方法是什么 最简单的意思是 WCF 中已经实现了哪些内容并且现在可以使用 我还没有在 WCF 中看到
  • 我可以将 XAML/WPF 窗口复制到第二个窗口中,例如画中画电视吗?

    我有一个带有两个 XAML WPF 窗口 派生自 NavigationWindow 的应用程序 每个窗口都包含一个父 UserControl 其中放置了所有子控件 在其中一个窗口中 我想以画中画电视的方式显示第二个窗口的内容 实际上只是父
  • 以编程方式创建类似 Visio 的图表 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要以编程方式创建类似于 Visio 的图表作为绘图 大多数情况下 我们将创建与此类似的网络布局图o
  • 创建序列的幂集

    我正在尝试创建一个程序 作为创建序列 字符串或数字的可能组合的基础 这是某种加密 解密程序 我正在使用 Visual Studio 2013 和 C 我想做的是从序列中生成幂集 但我有点困惑并且无法继续进行 这是代码 public stat
  • 将 ASP.NET Intranet 应用程序与 Outlook 日历集成的技术

    我不能再忽视用户的叫喊声了 他们想要一个任务调度系统 而在某些时候我必须交付 我正在考虑制作自己的系统 并不难 但是用户将拥有两个并行的任务管理系统 因为他们已经使用 Outlook 来完成相同的事情 在 Outlook 日历 任务集成方面
  • C# WPF 中的内存泄漏

    在处理所有使用过的对象后 我需要减少 c WPF 中的内存泄漏 但我无法通过使用以下代码片段完全减少内存消耗 这是我的代码 string str Uri uri private void Button Click object sender
  • 强制发送带有请求的根 CA

    我们有第三方 API 提供商提供 SOAP API 他们提供了3个证书 客户证书 中级证书 根证书 所有证书均在本地安装 他们提供了带有密码的 pfx 证书 我们已经在 SOAP UI 工具中上传了这个 pfx 并运行了一个请求 它起作用了
  • Spring.Net可以起到PostSharp的作用吗?

    几个月前 我发现了 PostSharp 有一段时间 它非常棒 但随后法律部门回复说他们不喜欢旧版本的许可证 然后部门告诉我2 0的价格高得令人无法接受 对于我们需要的座位数量 我非常失望 但并不沮丧 我想 这不可能是唯一的这样的框架 我一直
  • 使用反应式扩展对事件进行单元测试

    我在用着 NET 的反应式扩展 Rx http msdn microsoft com en us devlabs ee794896 aspx将事件公开为IObservable
  • 如何让“dnu”命令在 OS X 上运行?

    刚刚下载并安装视觉工作室代码 https code visualstudio com 在 OS X 10 10 3 上 我已经设法部分遵循ASP NET 5 安装说明 https code visualstudio com docs ASP
  • 在 C# 中解析 JS Date.toIsoString

    我需要将 JS 日期存储为 ISO 8601 日期 我目前正在从格式为 2019 06 22T00 00 00 000Z 的表单中获取日期 正如 JS 的 toIsoString 方法所期望的那样 当这个日期传递到我的 API 控制器时 我

随机推荐

  • 如何在 Flutter 中将数据从 showmodalbottomsheet 传递到上一页

    我如何传递数据showmodalbottomsheet到上一页 下面是示例代码 我尝试过的是 当我单击它时 有一个按钮显示 modalbottomsheet 当我单击 完成 按钮时 它应该通过1值到上一页 我还添加了setState on
  • Twitter Bootstrap:减少编译时间

    我正在使用 Twitter Bootstrap 编写一个简单的应用程序 在我的主 HTML 文件中 有以下几行 所以每次刷新页面时 都会生成整个 css 每次大约需要 15 秒 所以等待页面加载是一件痛苦的事情 我尝试使用 SimpLESS
  • Omniauth-facebook 登录不起作用

    我克隆了Facebook 集成示例 https github com AnnieLee blog facebook 这个 repo 可以了解omniauth facebook 是如何工作的 我从我的 Facebook 应用程序设置了自己的
  • ios 模拟器在 xcode 6 中出现并带有 UDID

    当我从 xcode 6 选择模拟器时 我会得到多个选择模拟器的选项 但模拟器带有 UDID 请看下面的图片并请帮帮我 提前致谢 killall Xcode Kills all running Xcode processes sudo kil
  • 如何用Python编写下载进度指示器?

    我正在编写一个小应用程序来通过 http 下载文件 例如 所描述的here https stackoverflow com questions 22676 how do i download a file over http using p
  • Cucumber-jvm @after 与 Appium 驱动程序

    我在用着cucumber jvm 并努力在全球范围内实施 After应该执行的方法只有一次所有场景执行完成后 这 After方法应该退出appium驱动程序 现在 After钩子在之后执行each运行场景 这意味着每次都应该从头开始创建驱动
  • jQuery 上的 trigger('click') 和 click() 有什么区别

    我正在寻找这两者之间的性能差异 我在 SSE 中找不到关于这个主题的好的答案 一些例子会有很大帮助 如果你查看 jQuery 代码 你会发现所有click does 是执行trigger click jQuery each blur foc
  • 使用 scala 和 GAE 玩框架

    有谁知道如何让 Play 框架的 scala 版本在 Google App Engine 中运行 此时我只是尝试让默认应用程序运行 我正在使用带有 gae 1 4 和 scala 0 9 1 模块的 Play 1 2 2 我创建了一个默认应
  • 如何在特征值中转置张量

    我试图获得两个张量的矩阵乘积 其中一个张量应该在相乘之前转置 At B 到目前为止我发现的是没有任何转置和两个矩阵转置的矩阵乘积 我正在寻找一种方法 可以直接收缩两个张量并转置其中一个张量 或者在收缩一个张量之前转置一个张量 我发现 转置效
  • 使用 C# 通过数据库中存储的文件路径在 Crystal Reports 10 中显示图像

    我有一个 C Windows 应用程序 它将员工数据存储到 MYSQL 数据库中 包括他们的图片文件路径 192 168 13 6 IDPictures Unknown jpg 有人可以帮助我如何通过从数据库读取文件路径来显示 Crysta
  • php preg_replace 匹配字符串但仅替换其中的一部分

    我有这样的文字 Retailer ul Amazon foloseste metode severe pentru a si descuraja etc angajatii din depozite sa nu mai fure din p
  • 使用 SELECT 结果作为其他 SELECT 中的 COLUMN 名称

    是否可以使用选择的结果作为字符串与其他选择中列名中的另一个字符串连接 Example SELECT brand FROM articles a WHERE a id 12345678 结果 BRAND A 我现在想要连接 PRICE to
  • 如何使用 LoadImage 和 StretchDIBits 绘制 PNG 图像?

    这与问题有关如何使用 Win32 GDI 加载 PNG 图像 如果可能 不要使用 GDI https stackoverflow com questions 4567875 how would i load a png image usin
  • 从 PyQt GUI 类外部访问 GUI 元素 text( )

    Ui MainWindow 是由设计器和 pyuic 生成的 py 文件 我想将 PyQt GUI 元素文本值传递到另一个文件并执行一些基本操作并返回结果 父文件 from PyQt4 import QtCore QtGui try fro
  • 将 SQL 查询替换为 LINQ 查询

    我有SQL检查今天的查询 根据表中存储 3 个字母字符的字段进行检查 如下所示 如果今天是星期二我需要归还记录 我有这样的 SQL 查询 SELECT TOP 1 EndTime StartTime OrderDay FROM dbo Se
  • .NET 4.6 之前的 Buffer.MemoryCopy 的替代方案

    我正在尝试将一些 NET 4 6 代码降级到 NET 4 5 这是我目前正在使用的代码块 fixed byte destination dataBytes Buffer MemoryCopy data destination dataLen
  • 为什么 JavaMail Transport.send() 是静态方法?

    我正在修改我没有编写的使用 JavaMail 的代码 并且在理解为什么 JavaMail API 是这样设计的方面遇到了一些困难 我有一种感觉 如果我理解的话 我可以做得更好 We call transport session getTra
  • Java使用String.format进行十进制格式化?

    我需要将十进制值格式化为字符串 其中我始终显示至少 2 位小数 最多 4 位小数 例如 34 49596 would be 34 4959 49 3 would be 49 30 可以使用 String format 命令来完成此操作吗 或
  • 如何在 yocto 中打补丁?

    我正在尝试使用 yocto poky warrior 和 meta tegra Warriors l4t r32 2 层为 jetson nano 构建图像 我一直在关注这个线程 https stackoverflow com questi
  • T4 vs CodeDom vs Oslo [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi