代码之家  ›  专栏  ›  技术社区  ›  3Dave

项目管理:在VS编译过程中实现自定义错误

  •  2
  • 3Dave  · 技术社区  · 16 年前

    再次:如果你投-1票,请留言解释原因。这篇文章不是关于你是否同意这种方法,而是关于如何去做。

    这对于那些认为三到四年的经验可以让你成为高级开发人员的人来说尤其是一个问题,把这当作一个培训和代码评审的问题来处理,成功的机会有限。

    因此,我认为能够在构建过程中添加自定义编译时错误以更严格地执行我们的内部最佳实践和编码标准将是非常好的。

    一些开发人员更喜欢内联SQL或参数化查询,这很好-在他们自己的时间和项目上。

    我想要一种添加编译检查的方法,可以发现,比如说,任何看起来像

    string sql = "insert into some_table (col1,col2) values (@col1, @col2);"
    

    并生成一个错误,或者在某些情况下,生成一个警告,消息如下

    Inline SQL and parametrized queries are not permitted.

    var x = new MyClass();
    

    Variable definitions must be explicitly typed.

    我们可以添加预构建或后构建步骤来运行自定义EXE,但如何返回行和文件指定的错误?另外,我希望在编译每个文件之后运行这个,而不是发布链接。

    正则表达式是执行这种模式匹配的最佳方法,还是我应该发疯,通过一个C#解析器来运行代码,这将允许通过解析树进行节点级验证?

    我很感激你的建议和以前的经历。

    一些受访者指出,可以通过db权限限制用户运行存储过程以外的任何东西。然而,我们正在将一个350k+行的应用程序从ASP 3.0移植到ASP.NET MVC,现有的代码库非常依赖于级联SQL,而新的东西都使用企业库。我想我可以为.NET代码添加一个具有更严格权限的单独的web用户帐户。

    4 回复  |  直到 16 年前
        1
  •  1
  •   to StackOverflow    16 年前

    对于需要存储过程的特定情况—如果您确保应用程序没有对生产数据库执行任何其他操作的权限,那么每个人都将很快排队。

        2
  •  1
  •   Giorgi    16 年前

    为Resharper编写一个插件怎么样?以下是一个教程: Writing plug-ins for ReSharper: Part 1 of Undefined

        3
  •  1
  •   Krumelur    16 年前

    隐式类型( var x = .... )是可以在VisualStudio的项目级别上关闭的功能。

    另一个更棘手。你看过FxCop了吗?FxCop是执行代码标准的工具。

        4
  •  0
  •   Jamie Ide    16 年前