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

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
Spread Privacy
Spread Privacy
IT之家
IT之家
F
Fortinet All Blogs
GbyAI
GbyAI
T
Threat Research - Cisco Blogs
月光博客
月光博客
WordPress大学
WordPress大学
V
Vulnerabilities – Threatpost
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
MyScale Blog
MyScale Blog
小众软件
小众软件
AI
AI
云风的 BLOG
云风的 BLOG
Jina AI
Jina AI
博客园 - 【当耐特】
T
Tailwind CSS Blog
Recorded Future
Recorded Future
Simon Willison's Weblog
Simon Willison's Weblog
I
Intezer
Schneier on Security
Schneier on Security
Engineering at Meta
Engineering at Meta
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
T
The Exploit Database - CXSecurity.com
大猫的无限游戏
大猫的无限游戏
PCI Perspectives
PCI Perspectives
K
Kaspersky official blog
U
Unit 42
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Webroot Blog
Webroot Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
N
News and Events Feed by Topic
MongoDB | Blog
MongoDB | Blog
C
CERT Recently Published Vulnerability Notes
Security Latest
Security Latest
爱范儿
爱范儿
L
LangChain Blog
V
Visual Studio Blog
W
WeLiveSecurity
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
C
Cisco Blogs
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - 绿叶

Suspicions about the new platform dynamic sorting expression builder How to create your own api with ACL in Magento 台服信长之野望全后台辅助外挂 SEO Elite ver 4.0 R93 Patcher Remove 5 seconds constraint in Garena(GGC) - 绿叶 Robot development framework in Mush Client (Lua) 巧用Marshal.GetDelegateForFunctionPointer--C#如何调用按键精灵插件dll Using .Net, Flex, and Red5 to create a flash web application 做了个C#的Hotkey简单封装,希望对大家有帮助 功夫世界外挂发布测试 我的第一个全后台CALL外挂-功夫世界外挂 通过修改Mutex来达到大航海OL多开 如何利用WPE对大航海Online进行港内瞬移,瞬时生产和快速进港 MonoRail PetShop Source Code Released MS PetShop3 -> MonoRail PetShop 完成移植 对 "闭包-closure" 的一些见解 圈内Castle文章索引 利用Castle Framework发email是如此easy
移植MSPetShop3到Castle MonoRail -Model与DAL层的移植(AR)
绿叶 · 2006-05-14 · via 博客园 - 绿叶

Posted on 2006-05-14 17:39  绿叶  阅读(4119)  评论()    收藏  举报

【简介】
        我本来很早就想移植这个例子了,只是一直因为各种原因滞后了开发时间。虽然Castle主页上面有PetStore的项目,但一直都是空的,SVN上也没有消息。通过这个例子,希望能更深入Castle的设计思想,用这强大的框架为什么做更多的事情。我刚刚完成Model与Dal层的移植,下面共享给大家。

【前提】
        1。VS.NET 2003,没在VS05上测试过
        2。NUnit 2.2.7
        3。Castle相关的DLL我已经提供,如果你安装了Castle工具包,可能会出现版本不匹配的问题。
        4。安装PetShop3,确保PetShop3可以在你机器上正常运行。
        5。将MSPetShopOrders中的表移到MSPetShop中,原因在下面。

【移植】
        1。Model层改用Castle.ActiveRecord实现,我原本选择直接Nhibernate,但是AR是Castle的头条项目,顺便也体验下,或许能发现少许实际应用方面的问题。
        2。DAL层使用ActiveRecordFacility和TransactionFacility。
        3。TestCase中是用IOC的,这意味着在以后的BLL层和WEB层都使用IOC,这么强大的东西为什么不使用呢?是吧,呵呵。

【问题】
        1。多数据库配置问题,因为我用ActiveRecordFacility,我配置多数据库时候不成功,搞了很久所以放弃了。由于这个原因,我把PetShop中的其中一个数据库MSPetShopOrders中的表(3个表)都移动到MSPetShop这个数据库中,以后我再做修正,因为我现在不知道是什么问题导致配置失败的。
        2。IProduct.GetProductsBySearch我尚未实现。
        3。关于优化,目前我没有做任何DAL层的优化操作,你可以给我提提意见。

【实现】
        1。因为作为移植,所以我没有更改到PetShop3中的所有数据表字段、关系和结构,或者以后在重构或者优化中会再做处理。
        2。我保留了原的Model,因为这样做在做BLL层和WEB层中处理的时候,我无需做大修改。这样处理后,PO和VO就分离了,原的Model是VO,ActiveRecord中的Model是PO。
        3。保留所有IDAL接口,同样是为了适应BLL层的移植。

【抢鲜下载】
        1。目前提供下载的有三个项目包:PetShopDAL、PetShopDAL.Test和PetShopModel:https://files.cnblogs.com/wj/PetShop_Model_DAL.rar
        2。NUnit和数据库结构图