27

看到我们可能会在下一个版本中获得此功能,您认为您可以做哪些事情或者您想使用此功能做哪些事情?

就个人而言,在代码生成过程中(比如在 MSBuild 任务中),我有时希望我可以了解项目中的代码,从而可以选择生成更好的(更多代码)。

例如,如果我有一个分部类,它的分部方法带有某种类型的参数,那么在代码生成时,我可以使用该信息来生成更好的代码。

换句话说,我在编写代码时发布了我的“意图”,我可以使用代码生成器来完成繁重的工作。

partial void InitCommandForStoredProc(ref DbCommand command, string storedProcName);

给定部分方法中的此信息,我可以生成正确的代码。

那么你们都希望能够将编译器作为服务做什么呢?

4

5 回答 5

58

为了给出(一个)实际答案,LINQPad 的 IntelliSense 将从 CaaS 中受益匪浅。它将允许自动完成功能同时适用于 C# 和 VB(假设 CaaS 也适用于 VB)。它还将使编写很酷的新重构工具变得容易。

给我们 CaaS,我会让 LINQPad 成为你可以用它做什么的展示品 :)

这个特性太好了,不能等到 C# 6 / VB 12

于 2011-04-08T12:55:38.290 回答
19

看到我们可能会在下一个版本中获得此功能

我们尚未宣布任何与“编译器即服务”战略相关的功能或产品的计划或交付车辆。CaaS 是我们希望在未来如何构建编译器架构的长期前瞻性战略。这不是语言特性,而是构建工具的策略。在最近的 PDC 上,Anders 做了一些演示,展示了使用这些工具可以做的事情,但他具体没有说明什么时候会发布类似的东西。你不应该期待它很快。我们宣布将在下一个版本中发布的唯一功能是 C# 5 的异步等待功能,我们也没有宣布该功能的时间表。

您认为您可以做哪些事情或者您想使用此功能做哪些事情?

尽管我个人对这个问题的答案非常感兴趣,但我注意到它不是 StackOverflow 问题的好候选者。它是模糊的、推测的和主观的,而不是关于特定的技术编码问题。

感谢您提供您的场景;它们对我有用。

更新:2011 年 10 月

我们刚刚发布了“编译器即服务”项目的预览版,也就是“Roslyn”。

我们还没有发布船舶车辆;它将发布 Visual Studio 11。

于 2010-11-19T14:53:47.673 回答
7

我认为这将使面向方面的框架所做的编织过程更加强大。现在,他们几乎都使用了一些 hacky 技术,这些技术对你的实现提出了要求,比如从 ContextBoundObject 继承,或者让你的所有方法都是虚拟的。拥有 CaaS 将使 AOP 框架成为 .NET 中的一等公民,我认为这将是一个巨大的好处。

于 2011-05-05T19:33:26.650 回答
3

我怀疑元编程将通过 CaaS 实现巨大飞跃。我想像 Lisp 宏这样的东西将可以模拟。我也期待有可能为内部 DSL 操作语法,或者模仿其他语言的语法,例如,我喜欢 Python 用于列表和元组的语法。我对 CaaS 的了解还不够,无法说出这一切是否可能,但我可以想象出来。

于 2011-08-22T17:09:04.920 回答
3

在 .NET Rocks! 的第 541 集中,Anders 表示 C# 5 的主题将是编译器即服务。

Anders Hejlsberg:我可以告诉你,我们正在做的事情之一就是这个主题,每个版本都有一个主题。

理查德坎贝尔:对。

Anders Hejlsberg:在 4.0 中,您可以说主题是 Dynamic,而在 3.0 中则是 LINQ。5.0 的主题是服务中的编译器,这就是我们正在考虑的方式

http://www.dotnetrocks.com/text/0541/index12.html

自 2010 年 4 月播出此播客以来,2010 PDC 上的进一步公告表明主题将不再是编译器即服务,而是异步编程。没有公告说明为什么需要改变主题。

于 2010-11-24T10:22:36.520 回答