可用的现成.net框架

时间:2009-09-03 15:27:08

标签: .net

好的,我只是在this帖子中收集了大师的一些经验。我还是学生和中级。

现在的问题是,我应该从现有的现成产品(如LINQ,实体框架,CSLA.net,Spring.net,NHibernate,Enterprise Lib)中选择什么样的ORM和Business Objects框架?为什么?< / p>

我应该选择开源还是专有?

注意:我正在尝试为将来的职业生涯学习一个或多个ORM和Business Objects Framework。

5 个答案:

答案 0 :(得分:6)

如果您还是初学者并且正在学习.net,那么我建议您自己完成所有工作,直到掌握了基础知识为止。稍后了解不同的框架,在几个项目中测试它们,这样你就可以找到每个框架的优缺点。

答案 1 :(得分:2)

我想这在很大程度上取决于使用这些技术和框架的目的是什么。

我已经看到LINQ和NHibernate非常合作,NHibernate提供了数据库的抽象,LINQ用于表示业务/查询逻辑。

如果您需要进行依赖注射,spring.net非常有用。

如果您刚刚开始使用.Net,我建议首先掌握它的基本库,并了解如何在没有其他外部框架的情况下与数据库或数据存储区进行交互。

答案 2 :(得分:2)

选择一个并专注于它......

对于职业生涯而言,框架与获取基本面的能力无关。看起来你可能会领先一步。首先,您需要学习几乎每种OO语言都使用的基础知识。像封装,递归等等。基础知识有一些语言特定的实现,所以只需选择一个,学习基础知识,然后扩展。

答案 3 :(得分:2)

JMSA,

正如您收到的回答中已经指出的那样,不同的框架可以解决不同的现实解决方案。

因此,我理解你的好奇心。正如Johnny D.所说,Linq不是一个框架,而是一个.net子集技术。即使您没有使用您提到的任何其他框架,也可以使用它。

OpenSource还是专有?就我而言,我更喜欢OpenSource。有这么多人为全球的这些项目做出贡献,您可能会得到其他人使用相同OpenSource产品所需的支持。专有产品成本!无论如何,最好的方法是了解框架的工作原理,以便您可以充分利用它。根据您的雇主,有些人更喜欢OpenSource,而有些人更喜欢专有。

选择什么框架?这对你说你的技能来说是一个很好的问题。

从我的角度来看,我非常喜欢Microsoft Enterprise Library,它是一个OpenSource框架,适用于您正在处理的任何项目。例如,您要编写的大多数程序都需要数据库连接。企业库通过其DAAB(​​数据访问应用程序块)提供了一套开箱即用的工具,使您可以构建多数据库系统,而无需更改或重新编译代码,只需通过配置即可。企业图书馆已被要求微软维护,如IBM,惠普和其他一些我们甚至可能忽略存在的大公司。所以,当谈到连接数据库时,我正在使用Enterrise Library。我甚至基于它构建了自己的框架,甚至可以简化连接数据库的过程,而不必担心语法。

对于NHibernate,正如您所提到的,这是一个集成框架,可帮助您将逻辑对象映射到数据库中的关系数据表。像Entity Framework这样的框架也是如此。据我所知,除了Entity Framework之外,它仅适用于SQL Server。如果您正在为Oracle数据库开发系统,那么实体框架将不会为您提供所需的工具,除非我忽略了对更大范围的数据库引擎的进一步支持。 NHibernate的优势在于它与世界上任何数据库引擎都兼容。我甚至知道NHibernate允许仅在面向对象的编程中编写代码,并且当需要持久保存对象时,NHibernate可以为您正确的数据库引擎创建自己的数据库模式,而无需编写DSL(数据结构语言)语句!

当我说我更喜欢使用NHibernate和Enterprise Library这两种OpenSource产品时,我会自言自语。

希望这会有所帮助,让你有点兴奋。但首先,掌握面向对象编程的基础知识,否则你将很难学会使用这些工具。

小心! : - )

答案 4 :(得分:0)

作为初学者:

我会选择大多数投票并选择大多数程序员使用的内容 由于你没有参考资料,我会选择Googling并查看像这样的支持论坛。

根据我的经验:

  • 例外区块,EL女士
  • OR / M,EF或NHibernate是最常用的
  • 记录:MS EL,Log4net最常用
  • 依赖注入,EL Unity女士和spring.net
  • 缓存MS EL和spring.net最常用的
  • LINQ和lambda是你必须掌握的工具,包括PLINQ

我还会学习单元测试和高级DataBinding以及事件和代理。 MVC现在也越来越受欢迎

根据我的经验,大多数新手程序员需要在现实世界中破解它:)

祝你好运