提供现成的.net框架

提供现成的.net框架,.net,.net,好的,我只是从博斯特的大师那里收集一些经验。我仍然是一名学生,也是一名中级教师 现在的问题是,我应该从现在提供的现成产品中选择什么ORM和业务对象框架,如LINQ、Entity framework、CSLA.net、Spring.net、NHibernate、Enterprise Lib,为什么 我应该选择开源还是专有 注意:我正在努力学习一个/多个ORM和Business Objects框架,以备将来的职业之用。如果你还是一个初学者,正在学习.net,那么我建议你自己做所有事情,直到掌握了基本

好的,我只是从博斯特的大师那里收集一些经验。我仍然是一名学生,也是一名中级教师

现在的问题是,我应该从现在提供的现成产品中选择什么ORM和业务对象框架,如LINQ、Entity framework、CSLA.net、Spring.net、NHibernate、Enterprise Lib,为什么

我应该选择开源还是专有


注意:我正在努力学习一个/多个ORM和Business Objects框架,以备将来的职业之用。

如果你还是一个初学者,正在学习.net,那么我建议你自己做所有事情,直到掌握了基本知识。稍后,了解不同的框架,在几个项目中测试它们,以便找出它们各自的优点和缺点。

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

我已经看到LINQ和NHibernate非常好地协同工作,NHibernate提供了数据库的抽象,LINQ被用来表示业务/查询逻辑

如果需要进行依赖性注入,spring.net非常有用


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

只需选择一个并关注它

对于一个职业来说,框架与掌握基础知识的能力没有多大关系。看来你可能有点超前了。首先,您需要学习几乎所有OO语言都使用的基础知识。封装、递归等。基础知识有一些特定于语言的实现,因此只需选择一种,学习基础知识,然后进行扩展。

JMSA

正如您收到的回答中已经指定的,不同的框架针对不同的现实解决方案

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

开源还是专有?就我而言,我更喜欢开源。全世界有如此多的人为这些项目做出了贡献,因此您可能会得到其他任何人所需要的支持,这些人使用与您相同的开源产品。专有产品成本!无论如何,最好的方法是理解框架是如何工作的,以便您可以充分利用它。根据雇主的不同,有些人更喜欢开源软件,而另一些人则更喜欢专有软件

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

以我谦虚的观点,我真的很喜欢微软企业图书馆,它是一个开源框架,适用于您正在从事的任何项目。例如,您要编写的大多数程序都需要数据库连接左右。企业库通过其DAAB数据访问应用程序块提供了一组现成的工具,允许您构建多数据库系统,而无需更改或重新编译代码,只需通过配置即可。IBM、HP和其他一些大公司要求微软维护企业图书馆,我们甚至可能会忽略这些公司的存在。所以,当连接到数据库时,我使用的是Enterrise库。我甚至在此基础上构建了自己的框架,以简化连接数据库的过程,而不必担心语法

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

当我说我更喜欢使用NHibernate和企业库,两者都是开源产品时,我是在自言自语

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

保重-

作为初学者: 我会争取多数票,选择大多数程序员使用的东西 由于你没有推荐人,我会用谷歌搜索并在类似这样的支持论坛中查找

根据我的经验: 异常块,Ms EL OR/M、EF或NHibernate是最常用的 日志记录:使用最多的是MS EL、Log4net 依赖注入、Ms EL Unity和spring.net 缓存MS EL和spring.net最常用 LINQ和lambda是您必须掌握的工具,包括PLINQ 我还将学习单元测试和高级数据绑定以及事件和委托。 MVC最近也越来越受欢迎

根据我的经验,这是大多数新手程序员在现实世界中需要解决的问题:


祝你好运

你应该为什么选择什么框架?如果每个项目都有一个通用的解决方案,那么对其他项目的需求就会很小。你想实现什么?请记住,LINQ不是一个框架,而是.NET的技术子集。我正在为我未来的职业学习一个或多个框架。框架是为了什么?!?!框架是一个通用术语,不同的框架解决特定的问题/用例。您列出的对象关系映射器倾向于ORM框架。@Yoooder,请参阅更新,抱歉+1.学习BCL,并建立一个比不知道如何挥动锤子的绿色开发人员更糟糕的东西,除了绿色开发人员认为千斤顶锤子是钉钉子的更好工具。