2013-09-23 63 views
0

我打算创建一个面向公众的网站,每个用户都有一个简介页面,他们可以定期维护/更新。在此页面上,用户可以上传一些照片并更新他们的个人信息。 我有三层结构。创建数据层设计

我需要输入来创建我的数据层。我已阅读了许多帖子,但我不确定要采用哪种特定方法来完成。我已阅读关于实体框架,微软企业库,核心ado.net等。许多博客都表示,最好使用普通ado.net来获得更好的性能。

您能否指出哪些方法可以成为我寻求更快处理和性能的案例的最佳方法。就技术而言,我正在寻找使用WCF和No MVC的asp.net,c#,数据调用。

此外,在普通ado.net的情况下,有任何准备使用库,我可以使用和开始使用。

感谢

回答

0

我不会与平面ADO.NET去,如果你正在寻找的全貌,我会认为这是一个微型优化 - 通过使用缓存,智能数据结构,你会取得远远超过通过使用普通的ado.net。 实体框架增加了一些成本,有一点毫无疑问,在这里显示(尽管它可能是过时的):

http://www.servicestack.net/benchmarks/

你可以使用一些微ORM框架,即在基准提及,但通常微来的是自己的成本,例如我见过的大多数微观框架都存在连接问题(他们允许他们使用纯sql,但没有用于输入c#的工具)。 例如,Stackoverflow具有人员配置文件,并且使用的是微型ORM Dapper,而且他们的性能非常好,因为如果我没有记错的话,约95%的请求是从Reddis缓存中提供的,而不是数据库。

如果您的公开个人资料将是全文可搜索的,并且您将拥有数百万个可能是关系数据库不是正确的选择。

+0

我看着dapper.net,它看起来不错。所以目前我的结构像表示层,业务层,数据层。那么对于dapper.net,我所有的Db类对象都将位于Business层?由dapper提供的类将在数据层?我也想在使用WCF API进行数据库调用。你能告诉我如何使用这个从UI到业务到数据层的呼叫。 – user1563677

+0

尚未使用Dapper,但通常数据实体类属于数据层,则业务层和表示层可能拥有自己的DTO以在层之间传输数据。关于WCF - 除非特别需要SOAP,否则现在我会避免它,有WebApi和ServiceStack - 我认为它们是更加轻量级的WCF版本,在移动世界中它们也更方便。总体而言,我会建议思考更简单,否则你的范围增长太快,可能会读一些Ayende的帖子,他讨厌复杂的东西:http://ayende.com/blog/19457 – Giedrius