代码之家  ›  专栏  ›  技术社区  ›  MattSlay

数据访问层新手

  •  0
  • MattSlay  · 技术社区  · 15 年前

    这里是新来的.NET数据应用程序,来自VisualFoxPro的背景。

    我正在计划一个ASP.NET和/或Silverlight用户界面,也许我们的局域网上也有一些WPF客户端的东西,所以我想设计一个能够支持所有这些前端的数据访问层。

    我的数据将在SQL Server中。我已经进行了将数据从FoxPro推送到SQL Server 2005的测试。进展顺利。这给了我一个可以使用的SQL Server数据存储。

    现在,下面是我迄今为止使用的数据工具,试图熟悉.NET数据访问:

    1. 我使用linq-to-sql,并使用l2s中的类型化对象和集合生成了一个测试表单,然后填充一些wpf列表视图和其他UI控件。很酷。Linq很酷!WPF很酷。请参见以下表格的屏幕截图: http://twitpic.com/26w26/full

    2. 我玩过我猜你会称之为经典ADO.NET数据集的游戏。伙计,数据集似乎是很多工作… Sql连接 一个Sql命令 数据集 引诱者

    …最糟糕的是,我必须在引号内键入SQL代码,而IDE绝对没有帮助,以防止我输入错误,或编写错误的SQL代码,而且我必须每次都知道数据表中的列名称。有很大的错误空间!查询参数,糟糕。

    所以,让我问一下…….NET开发人员社区是否真正使用sqlcmds、数据集和数据表来读取和写入数据?这就是它的工作原理吗?

    我知道所有关于手术室的战斗,还有英孚。

    看起来您可以将ASP.NET/Silverlight/WPF/和WinForms中的任何UI控件连接到对象集合(via或/m)或数据集/数据表,对吗?在这两者之间总是一个选择吗?

    所以,现在是我做决定的时候了,但我不知道该怎么选择。它们似乎都能工作,但DARN数据集的事情对我来说似乎很可怕,但不知何故,它似乎也被广泛使用。

    4 回复  |  直到 15 年前
        1
  •  1
  •   user69889    15 年前

    我使用经典的ADO.NET已经很多年了,你只要习惯它就行了。对于较大的应用程序,您可以在创建一次数据层时投入一些时间,然后将其与许多其他业务对象一起重新使用。

    其他几种选择:

    1. 强类型数据集。您可以创建一个强类型的数据集,它允许您拖放数据库对象,并为您生成大量管道代码。

    2 Linq to SQL设计器,它还允许您将对象拖放到设计器中,并生成用于连接和操作数据的DBML文件。

    我最近加入了Linq的潮流,当把数据当作对象处理时,它确实简化了你的生活。

    祝你好运!

        2
  •  2
  •   Chris Brandsma    15 年前

    首先,获得数据到Silverlight的唯一方法是通过WCF Web服务。Silverlight中不允许直接访问数据库(毕竟您正在浏览器中运行)

    第二:(我要为此发号施令)数据集是邪恶的。魔鬼的直接繁殖。不惜一切代价避免,除非有人拿着枪指着你的头。问题之一是性能:没有。第二个问题是数据消耗:1K会自动变为3K。对于桌面应用程序来说不是一个大问题,但是对于Web应用程序来说是一个大问题。

    第三:了解创建域对象的含义。从那里你可以使用EF或NHibernate。我更喜欢NHibernate,但是有一个学习曲线。一旦你有了一个好的域对象,你就可以把它传递给你列出的任何客户机。

        3
  •  0
  •   Daniel Pratt    15 年前

    ADO.NET“Classic”(数据集/数据表API)没有任何问题,至少有一次,我决定使用它而不是ORM。也就是说,事实上ado.net“经典”更经常被使用,这在很大程度上是历史的产物。在很长一段时间内,这是唯一可行的选择,特别是如果你想坚持只使用微软的解决方案。

        4
  •  0
  •   Denis Troller    15 年前

    使用数据集的人实际上使用IDE创建强类型数据集。

    使用它,您可以使用类似于SQL Management Studio的查询生成器的可视化查询生成器。这将生成用于加载/保存等的函数以及参数。

    您在任何地方都可以看到数据集,这主要是因为它是目前唯一可用的解决方案,除了在任何地方手工编码SQL之外。

    现在,ORM非常流行,它们确实提供了一个非常好的抽象层。