Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
Visual studio 对数据使用VisualStudioDesigner组件的优缺点是什么_Visual Studio - Fatal编程技术网

Visual studio 对数据使用VisualStudioDesigner组件的优缺点是什么

Visual studio 对数据使用VisualStudioDesigner组件的优缺点是什么,visual-studio,Visual Studio,我在工作中继承了一些程序,其中原始作者使用了Microsoft Visual Studio的数据组件(其中数据集、数据适配器等)在设计环境中创建(从工具箱或使用向导)。这将生成一些半定制(专门用于数据)类,并将SQL代码放入设计器生成的类中 我不习惯这样做(我总是喜欢明确地拥有一个数据集,或者创建自己的专用类来保存数据并隐藏底层数据层的复杂性) 是否有人对讨论使用VisualStudio数据组件的利弊有很好的见解或链接 (顺便说一句,原作者的评论也不是很透彻,出于我的口味,他写了太多不容易解释的

我在工作中继承了一些程序,其中原始作者使用了Microsoft Visual Studio的数据组件(其中数据集、数据适配器等)在设计环境中创建(从工具箱或使用向导)。这将生成一些半定制(专门用于数据)类,并将SQL代码放入设计器生成的类中

我不习惯这样做(我总是喜欢明确地拥有一个数据集,或者创建自己的专用类来保存数据并隐藏底层数据层的复杂性)

是否有人对讨论使用VisualStudio数据组件的利弊有很好的见解或链接

(顺便说一句,原作者的评论也不是很透彻,出于我的口味,他写了太多不容易解释的“聪明”代码,所以我不认为他比我更懂。)

我想另一种提问方式是:使用数据设计器组件是否会产生“遵循最佳实践”且可维护的代码,等等?对我来说似乎不是这样,但我正在寻找专家的意见

[编辑:添加更多上下文以澄清意图]


如果我关于使用最适合原型的设计器组件的看法是正确的(而且看起来是正确的),那么我将不得不与最初的开发人员和我的经理进行一些艰难的对话。所以我想在我的问题中增加更多关于“讨论利弊的链接”的强调。。。我正在寻找一些实质性的东西来支持我的观点,即这种开发/代码风格不适合生产使用。。。谢谢。

VS数据组件的目的是快速开发应用程序。从这个角度来看,你可以看到它的优点和缺点:

优点:快速开发,不需要太多编码和知识。适用于将来不会更改的小型应用程序

缺点:打破层应用程序设计逻辑(此处添加此类设计的所有优点),将所有优点合并到一个文件中。 因此,几乎不可能动态替换数据源。使大型应用程序支持更加复杂。DI,TDD-使用它可以获得某种神秘的东西

实际上这是一个非常广泛的问题。 我建议阅读更多关于N层应用程序开发和测试驱动开发的内容


希望此帮助一般来说,可视组件适用于一次性应用、POC和spike应用,即原型制作。这有几个原因;他们很快就聚在一起了,但要维持下去简直就是一场噩梦。我不确定您的应用程序的大小,但如果是我,我会争辩说,在当前的形式下,拥有成本将随着时间的推移而增加,因此将更多地采用DDD风格的开发。将数据层装箱,并将其替换为良好的实体ORM;NHibernate(首选)或实体框架4(更容易进入)。放下“聪明的代码”,开始使用。可能很难让他们看到光明,但一旦它开始变得便宜,他们就会因此而爱你;)

如果您想进一步了解这方面的内容,请参阅以下内容:

  • 是一个可以运行开放式课程和大量播客的培训设施,您可以观看
  • 对于开发人员和管理人员来说,一本好书是,它介绍了良好的项目实践。实用书架上的任何东西都是如此
  • 无论如何,DDD
  • 是一个适合所有东西的好地方
  • stackoverflow.com,这个地方太棒了

  • 我个人认为你肯定走上了正确的道路,但我认为这实际上取决于你已经拥有了什么以及对产品未来的计划

    我看到过生产代码,它使用的和您所说的一样,工作正常,并且易于维护。 像Telerik这样的大公司的模块数量甚至大幅下降,这些模块属于您所讨论的同一类开发

    我认为,对你的雇主来说,真正重要的因素是:你能用什么方法以最快、最有效的方式完成工作。不过,我想说的是,一般来说,开箱即用的“拖放”工具对于长期的企业级应用程序不是很好

    以下是Charles Petzold的一篇文章,可能会为您提供更多“专家”凭证信息


    我甚至不会说designer DB组件适合POC或原型设计。IMHO说,这些组件在VisualStudio中主要是作为框架的销售宣传,因此Microsoft可以说“哇,看看用.NET创建数据驱动的应用程序有多容易!”这些组件在几年前就应该被删除了


    但是,不要将设计器组件与ADO.NET(即数据表、数据集、数据读取器、数据适配器等)本身混淆。由于您继承的应用程序是围绕designer组件构建的,这意味着它从根本上也是围绕ADO.NET组件构建的。您可以(也应该)去掉设计器组件,但也不一定要去掉ADO.NET

    谢谢,这是很好的建议,我已经相信了。当我对开发人员说,“看,伙计们,这需要改变…”时,您是否碰巧有任何参考资料可以帮助我?我同意VisualDB组件不应在“真正”的应用程序中使用。但是,用ORM替换这些组件要比用仍然使用ADO.NET数据集/数据表的数据类替换visual DB组件复杂得多。这里的区别可能是几周的工作,而不是几个小时。它仍然不像我希望的那样具有权威性(就使用设计器组件的优缺点而言,有很多好的信息,谢谢),但我感谢所有的反馈和链接。事实上