惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
博客园 - 司徒正美
美团技术团队
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Troy Hunt's Blog
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
Cisco Talos Blog
Cisco Talos Blog
T
Tor Project blog
B
Blog
NISL@THU
NISL@THU
月光博客
月光博客
博客园 - 【当耐特】
AWS News Blog
AWS News Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
腾讯CDC
L
Lohrmann on Cybersecurity
The Cloudflare Blog
L
LINUX DO - 最新话题
S
Security @ Cisco Blogs
S
Secure Thoughts
Spread Privacy
Spread Privacy
有赞技术团队
有赞技术团队
The Last Watchdog
The Last Watchdog
Project Zero
Project Zero
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Vercel News
Vercel News
H
Hacker News: Front Page
S
SegmentFault 最新的问题
Schneier on Security
Schneier on Security
aimingoo的专栏
aimingoo的专栏
P
Privacy & Cybersecurity Law Blog
博客园 - 三生石上(FineUI控件)
Forbes - Security
Forbes - Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
InfoQ
T
Tailwind CSS Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
GRAHAM CLULEY
W
WeLiveSecurity
小众软件
小众软件
Recorded Future
Recorded Future
Cyberwarzone
Cyberwarzone
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

博客园 - 乌龙

NBear的学习资源列表 -- NB之三 NBear建议使用方式 -- NB之二 UML的硬伤?UML在系统分析、设计方面的应用理解 软件公司内部协作平台的选型(项目/BUG/需求管理及用户支持) 园内ORM讨论的经典文章及评论 功能规格说明的模版--标在原型上的 dotproject推失败了,mantis用的很好,blog还是有用的。配置管理及人机交互 客户沟通问题 CRM子系统到客户那边做Beta测试了,在此很有深度的感慨一下 开源的魅力 最佳B/S项目管理工具dotProject2.0.1的安装说明 Mantis,bug管理系统安装说明 纪念我的第一部手机N188,同时以HP Deskjet 3938开始打印新生活 又上班了 软件开发过程分析比较:CMM、RUP、XP 重构:很难用,但是还是一定要用,并且一定用得上 经典书籍推荐+简单书评! Duwamish7架构分层分析 2006年1月21日,一个非常有意义的日子
NBear的优缺点粗略分析(3.7版本)-- NB之一
乌龙 · 2007-07-22 · via 博客园 - 乌龙

以下是粗略看看NBear3.7.2版本的感觉,也给出了一点和castle的activeRecord的简单比较。
总的感觉nbear是不错的,它和castle方案在分层设计上基本是一样的,就是ORM的使用上有点不同。和castle方案的比较的感觉是:castle会更简单好上手一点,nbear的学习要长点时间。

一、优点:
1.提供了应用层的一些包装,省了不少事:
a.分布式部署的实现
b.序列化、多语言
c.ajaxhelper/WebUtil等

2.ORM的性能可能会比ActiveRecord好。(activeRecord是在NHibernate外包装了一层,性能又消耗了点。另外不能精确的设定NHibernate的属性和用法,可能也会导致性能上的担忧)

3.支持多种数据库。与activeRecord比,应该可以省略“自己扩展DbHelper”?
a.AR考虑性能问题,个人推荐用法应该是“增删改用AR,查询用自己扩展的Db”。
在NBear里看到里面有gateway.SelectDataReader()/gateway.ExecuteNonQuery()这样的接口,即NBear已经提供了DBHelper,并且还加了一点针对多数据库的包装,可能会比自己封装DBHelper更“跨数据库”一点。(不过估计不能完全避免“写select sql导致在特定数据库用不了”的问题)

4.提供了若干好用的工具,可加快开发
a.从数据库生产EntityDesign类的工具:NBear.Tools.DbToEntityDesign.exe
b.从类图自动更新Entity和EntityImpls.xml(及更新数据表结构)的VS2005插件:SetupNBearVsPlugin.exe
c.从EntityDesign.dll生产entity/EntityImpls.xml(及SQL)的工具:NBear.Tools.EntityDesignToEntity.exe (有插件后就用不上了)

二、缺点:
1.学习成本高,文档写得不够简单易懂。一开始要花一些时间去学习熟悉。(有内部培训可能会好点)
2.更新快,版本向后兼容做得不够。(已计划v4版本了,变动更大)
3.ORM里3.7后的版本估计会搞得太复杂了点,过度包装。像LINQ了,需要学一套不通用的语法,太麻烦。另外性能怎样,能否支持一些较好用的SQL写法,也有待检验。
4.多出了一个EntityDesign层,可以省掉会更好。没有像activerecord那么简单简捷,另外还多了个EntityImpls.xml。(design层感觉是一个为了生成design和EntityImpls.xml的设计,最终没有用上。还不如先设计数据库,再自动生成entity)
5.WebUI和ServiceInterface层都引用了Entity层。这意味着把架构和NBear完全绑到一块了。
(如果不引用Entity,理论上是完全可以替换serviceInterface的实现层的,比如说完全换成用另一个ORM框架来写。)
当然它可能是把Entity当DTO来用了,方便分布式方案里的传对象参数的问题。==》未尝不可吧,这样也挺好用的。
6.最终分层设计会做成”贫血领域模型“,也就是entity实体对象只有数据没有动作。从OO的本意(对象=”数据+动作“的封装)来说,这当然不是一个好的设计。==》目前不能定论,应该也没什么问题的。entity里肯定是不能加方法进去了(分布式DTO的考虑),这意味这service层会写成“事务脚本”类似的效果,设计不好控制不好的话,service类会写得很大很乱。
7.国内开源项目,有不能持续、健康发展的担忧。毕竟国内的开源商业模式不成熟,要工作之余搞开源项目,恐怕支持、升级力度不够,不持久。(不过好在是开源,不行自己改一下扩展一下也可以)