-1

这更像是一个设计/最佳实践的问题,而不是其他任何事情。技术解决方案受到赞赏,但我更多地考虑方法论。

我正在构建一个.net 框架。该框架旨在用于可能以不同方式存储数据的各种应用程序(SQL、MySql、Oracle、文件系统等)

该框架的目的是处理特定的业务逻辑和交互。

我希望框架能够保存它的各种对象,但是用户希望以后检索,但我不想将用户绑定到仅使用我使用的存储解决方案(企业 SQL Server)

我应该让使用框架的人弄清楚如何存储数据吗?或者我应该尝试构建某种 SaveTo / LoadFrom 方法,这些方法将根据传入的参数保存到数据库中?

我应该构建一个必须重写的保存方法吗?

我应该为每个数据存储解决方案构建一个额外的命名空间/框架吗?

您认为最佳实践是什么?

4

2 回答 2

2

正如其他人已经指出的那样,在 C# 的这个成熟阶段,如果手头有很多优秀且免费的工具,那么构建复杂的东西并没有多大意义。

您可能应该在互联网上对现有的 ORM 进行一些研究,并检查其中任何一个是否适合您的要求,如果不适合,您可以灵活调整您的要求,以避免不得不从头开始创建一些东西 :)

唯一有效的原因是个人研究目标,但即使在这种情况下,您也应该查看现有框架,以从多年发展中获得最佳实践。

一些开始的链接:

  • ORM定义(维基百科)
  • NHibernate : 用于 .NET 框架的成熟、开源的对象关系映射器
  • 实体框架:微软为新应用推荐的数据访问技术
于 2013-05-16T14:21:38.340 回答
0

这更像是一个设计/最佳实践的问题,而不是其他任何事情。技术解决方案受到赞赏,但我更多地考虑方法论。我正在构建一个.net 框架。该框架旨在用于可能以不同方式存储数据的各种应用程序

第一段中提到的框架、最佳实践和方法。哇!

我假设您正在计划一次相当大的旅程,系好安全带并戴上头盔。:-) 我强烈推荐:

一本关于如何编写框架的好书: 框架指南

如何解决设计和复杂性领域驱动设计
仍然可以说是最佳实践。

如果您选择 EF 作为您的 ORM(我选择了),Julie Lerman 对此主题有出色的指导

编程实体框架:代码优先
编程实体框架:DbContext

如果需要:OO 原则策略和设计模式,例如 设计模式:可重用的面向对象软件的元素 如果您熟悉面向对象设计的 SOLID 原则。然后跳过。并非所有开发人员都是。因此,如果不单独工作,请密切注意这一点。

一旦你进入了深入的框架设计,你会想要使用库来完成许多任务。

几十个例子中只有一个是控制反转工具、日志记录工具和异常处理工具。一个例子是微软企业图书馆

查找 Enterprise Library 6 书籍、
Enterprise Library 6 文档和代码下载

当您介绍各种 UI 技术和方法时,此列表还会继续。假设您已掌握所选的编程语言。你说.net所以我假设C#

系统内外的通信/消息传递如何?休息服务?肥皂 ?使用 WCF 与否... ASP.NET 选项和方法... 在这个领域有很多阅读要做 什么 UI 技术和平台。另一个冰山

安全性非常重要我从这里开始作为一个不安全的解决方案是无用的研究身份和访问控制* l in ASP.NET 4.5 和 * .NET 分布式系统架构和安全性

您还应该考虑您的测试方法。尽早计划。你打算做TDD吗?您将使用什么测试工具。

软件控制 ? SVN 或 TFS 版本控制对任何框架应用程序都很重要。

如果您认真学习,请查看 PluralSight 点播视频网站。这是一项“相对便宜”的订阅服务。我发现它非常有用。

祝你好运

于 2013-05-16T15:24:55.147 回答