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 [已关闭] 的相关文章

  • Silverlight 4 PLINQ

    我有一个非常简单的问题 是否可以将 PLINQ 与 Silverlight 4 一起使用 因为它似乎不存在于最常引用的程序集中 它不受支持 但您可以在这里投票 http dotnet uservoice com forums 4325 si
  • 使用 Crypto++ 和 .NET 的 CFB 模式下的 TripleDES

    我正在尝试使用 TripleDES 使用 C 应用程序获得相同的结果 该应用程序具有Crypto https www cryptopp com 和 NET应用程序使用三重DESCryptoServiceProvider https msdn
  • 如何在C#中剪切、编辑和合并OGG文件?

    我有一个 ogg vorbis 文件 我必须用它执行两个操作 将文件的一部分从一个位置剪切到另一个位置 将另一个文件与现有文件合并 如何在 C 中执行这两个操作 你可以使用 libzplay 来做到这一点http libzplay sour
  • 接口的隐式和显式实现

    在进行升级时 我碰巧遇到了这样的代码 interface ICustomization IMMColumnsDefinition GetColumnsDefinition class Customization ICustomization
  • 是否曾经建议使用 ECB 密码模式?

    判断从这篇关于密码模式的维基百科文章 http en wikipedia org wiki Block cipher modes of operation以及我听说过的有关 ECB 的其他事情 这是一个很大的禁忌 并且可能会泄露有关您的加密
  • 主动解决方案平台 VS 项目平台 VS 目标平台

    我希望我的应用程序是针对 x64 构建的 因为我使用的是 x64 dll 在配置管理器中 我已将 活动解决方案平台 设置为 x64 但是在项目列表中平台设置为 x86 项目属性中的 平台目标 也设置为 x86 我完全困惑有三个地方可以设置目
  • 如何将当前应用程序域的程序集动态加载到c#项目中?

    我正在尝试加载第三方assemblies 动态地到项目并使用reflection创建其类型的实例 I used Assembly LoadFrom Assembly1 dll Assembly LoadFrom Assembly2 dll
  • 多选DataGridView没有CTRL键没有闪烁?

    我在表单 Form1 vb 上有一个 DataGridView 控件 需要允许用户在不使用 CTRL 键的情况下多选行 没有可用的键盘 他们使用触摸屏 我已启用 mutliselect 属性 并在 Form 类中包含以下代码 我的 Data
  • LINQ to Entities 无法识别“Int32 IndexOf(System.String, System.StringComparison)”方法

    我已经使用 Entityframework 执行了 linq 查询 如下所示 GroupMaster getGroup null getGroup DataContext Groups FirstOrDefault item gt keyw
  • 从 .NET 文本中提取关键字

    我需要计算每个关键字在字符串中重复出现的次数 并按最高次数排序 NET 代码中用于此目的的最快算法是什么 编辑 下面的代码将唯一标记与计数分组 string target src Split new char var results tar
  • 将集合项复制到 .NET 中的另一个集合

    在 NET VB 中 如何获取一个集合中的所有项目 并将它们添加到第二个集合中 而不丢失第二个集合中预先存在的项目 我正在寻找比这更有效的东西 For Each item As Host In hostCollection1 hostCol
  • 如果我使用带有表单身份验证的 WCF,php 或 java 客户端将如何进行身份验证?

    我有一个通用的概念验证 WCF 服务 它使用表单身份验证来保护访问 当我的客户端是 NET 时 一切都很好 vb 代码如下 Dim client As SupplierServiceClient New SupplierServiceCli
  • 如何在VS2010中获取T4来迭代类的属性

    我使用的是 Visual Studio 2010 并且安装了有形的 T4EditorPlusModellingTools 我只是在玩T4 以前从未接触过它 我想做的是查看项目中的一个类 并写出每个属性 谁能给我关于如何构建 tt 文件的绝对
  • 如何更改 Settings.settings 值的值

    我有一个简单的控制台应用程序 每天运行 由 Windows 任务计划程序调用 并且取决于每次应用程序运行时递增的值 为了保留这个值 我选择使用 Settings Settings 文件 因此 我有一个名为 RunNumber 和 Scope
  • 如何让CQRS适应项目? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我发现了一个新术语 名叫CQRS 命令查询职责分离 http martinfowler com bliki CQRS html其中指出 概念模型
  • 在不可变类型的构造函数中生成HashCode

    我对不可变类型的 HashCode 有一些疑问 我可以在构造函数中 预 生成不可变类型的 HashCode 还是有任何理由不这样做 当调用 GetHashCode 方法时 我是否应该再次生成哈希码 这是一个示例类 public class
  • Activator.CreateInstance 缺少方法异常

    我在 C dll 中有一个类 其中包含以下类 public class RequiredTask Base BaseObject public string Name get set public string Description ge
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 将 System.Windows.Forms.Keys 序列转换为 Char

    有没有办法转换由 Keys 枚举表示的击键序列 即System Windows Forms Keys 在一个字符中 例如 Keys Oem4进而Keys A产生 char 它一定存在于 WinAPI 中的某个地方 因为当我在文本框中按下按键
  • 如何在.NET Core上直接调用F#编译器?

    UPD 我想直接从 NET Core SDK 调用 F 编译器 即 fsc 我了解 dotnet build co 但当我只需要编译一个简单的问题时 即 fsc file fs 就足够的情况下 我不想涉及它们 我尝试在 NET Core S

随机推荐

  • 如何在 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