??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>
l 逻辑l构分层
微Y针对DotNet提供?/SPAN>4个经典的案例?/SPAN>Duwamish?/SPAN>PetShop?/SPAN>Fitch and Mather ?/SPAN> DotNetFurom.Duwamish?/SPAN>PetShop都给Z完整,可运行的代码.Duwamish是一个外表简?/SPAN>,内部极复杂的E序,相反PetShop比较?/SPAN>,而且是传l的三层应用,比较dy,而且在例子中l出同时支持SQL server?/SPAN>Oracle数据库的功能.所?/SPAN>,选择PetShop3.0的分层作为样?/SPAN>.
l 技术环?/FONT>
环境:Win2k Server + IIS + SQL Server2k
技?/SPAN>:ASP.NET + ADO.NET + C# + 企业U模?/SPAN>
开发工?/SPAN>: VS.NET2003
l 数据讉K{略
a. 只用 SQL 语句,好处是支持多版本数据库时,不用分别l护各版本的存储q程,~点是损׃部分性能.
b. 支持多种数据?/SPAN>,采用工厂模式,q行时根据配|动态绑?/SPAN>
c. 调用DAAB?/SPAN>,目前DAAB版本?/SPAN>3.0,Petshop3.0使用的是1.0版本.
d. 配置合适的q接?/FONT>
l 错误处理
a. 合理的结构化异常处理,q且l出友好的提C?/SPAN>
b. 错误信息保存到日?/FONT>
c. 微Y的企业库提供?/SPAN>EHAB3.0,可以参?/SPAN>
l 事务处理
.NET中的事务处理分ؓ两种:自动事务处理和手动事务处?/SPAN>,自动事务处理调用COM+中的企业服务部g实现异构数据库事务处?/SPAN>,性能不高.手动事务处理分ؓADO.NET上的事务处理和存储过E中的事务处?/SPAN>.一般没涉及异构数据库支?/SPAN>,q且没有用存储过E的?/SPAN>,采用ADO.NET的事务处理就可以?/SPAN>.
l 安全?/FONT>
a. 如果是分布式部v,要考虑|络ƺ骗,如果单机部v׃用考虑
b. 对受限资源采?/SPAN>Form方式q行授权,原理是根?/SPAN>Cookie,如果要求更高,可以采用ZWindows的n份验?/SPAN>,或?/SPAN>Passport的方?/SPAN>.一般网站采用的都是Form方式.
c. 配置文g加密,微Y企业库提供了Configuration Application Block,提供了现成的加密方式,可以参?/SPAN>.也可以自q写对U加密算?/SPAN>.
d. 用户密码l过单向加密存入数据?/SPAN>,Duwamish?/SPAN>SHA1+SALT加密很好,可以参?/SPAN>.
e. 严禁数据库访问采?/SPAN>SA用户,q且q接字符串可以采用信L式访?/SPAN>,不要攑օ用户名和密码
f. 业务权限划分,涉及具体业务.微Y的企业库提供?/SPAN>Security Application Block可以参?/SPAN>.
l 性能
a. 多用Cache,分ؓ面输出~存和数据缓?/SPAN>.
b. CacheAPI中要注意名字唯一?/SPAN>
c. 用Session,一般?/SPAN>InProccd?/SPAN>session效率最?/SPAN>
d. 面上显C|?/SPAN>Sessioncd: True,False,ReadOnly
e. 面和控件的ViewState属?/SPAN>
f. 数据查询使用视图
l ~码风格
a. 保持代码的相似度,提高可度?/SPAN>
b. 遵守命名规范
c. 调用方式模仿PetShop3.0
d. 控g使用规范
e. 工+报表
l 验证
a. 数据验证,比如格式,?/SPAN>code behidel合Validate控g实现
b. 采用客户?/SPAN>JavaScript?/SPAN>,注意安全性和览器支持?/SPAN>
c. 业务验证,比如重复记录,?/SPAN>BLL层验?/SPAN>,q回错误cd,?/SPAN>Validate控g昄l用?/SPAN>
l q发?/FONT>
a. q发性的试工具MACT
b. 涉及事务处理采用ADO.NETcd的手动事务处?/SPAN>
c. 数据库查询时注意锁的{,量不要用游?/SPAN>,Select时可以采?/SPAN>nolock{等
l 全球?/SPAN>,本地化支?/SPAN>
a. E序全球?/SPAN>+数据库全球化
b. E序全球化包括用资源和~码讑֮
c. 数据库字D|?/SPAN>Unicode
功能斚w的考虑待箋
各表的意义如下表格所C?/FONT>
表名 |
用?/SPAN> |
Account |
代表基本客户信息 |
BannerData |
存储q告条信?/SPAN> |
Category |
目录cdQ?/SPAN> Fish, Dogs, Cats {) |
Inventory |
产品库存状?/SPAN> |
Item |
各个产品的细?/SPAN> |
LineItem |
定单l节 |
Orders |
客户下的定单?/SPAN> 定单包括一个或多个行项?/SPAN> |
OrderStatus |
定单状?/SPAN> |
Product |
目录产品Q每个品可有一或多cdQ项目)?/SPAN> 通常cd可能是雄或雌?/SPAN> |
Profile |
客户的用户配|情?/SPAN> |
Signon |
客户d?/SPAN> |
Supplier |
有关供应商信?/SPAN> |
需要注意的是,微YZ体现出分布式异构数据库的事务处理Q故意把OrdersQ?/SPAN>LineItemQ?/SPAN>OrderStatus三张表分dM为另外一个数据库Q名?/SPAN>MSPetShopOrders。其余的表组成的数据库名?/SPAN>MSPetShop。如果实际应用中不涉及异构数据库Q把所有表建在一个数据库中即可?/SPAN>
l 环境Q?/SPAN>
̔ Windows 2000 Server ?/SPAN> Windows XP Server
̔ Internet 信息服务
̔ SQL Server 2000
l 技?/FONT>
̔ ASP.NET
̔ C#
̔ ADO.NET
̔ Web H体
̔ Web 服务
̔ 服务器控?/SPAN>
̔ 用户控g
̔ 自定义控?/FONT>
̔ CSS
̔ 物理工程分层
̔ q行时迁UL据库
̔ 加密配置文g
̔ DAAB1.0?/SPAN>
̔ 大量~存
因ؓPet Shop是模?/SPAN>JPet Store来做的,所以业务流E也是JPet Store的业务流E。同?/SPAN>Pet Shop是一?/SPAN>电子商务应用E序Q可以通过它在U(WebQ购买宠物?/SPAN> 启动应用E序后,可以览和搜索各U类型的宠物Q从狗到爬行动物。典型会话方案如下:
l 主页 ?q是用户W一ơ启动应用程序时加蝲的主c?/SPAN>
l cd查看 ?有五大类Q?/SPAN> 鱹{狗、爬行动物、猫和鸟?/SPAN> 每一c都有几个相关的产品?/SPAN> 如果选择g为类别,可以看到天鱼等{内宏V?/SPAN>
l 产品 ?如果现在选择一个品,应用E序显CZ品的所有类型?/SPAN> 通常产品cd是雄或者雌?/SPAN>
l 产品详情 ?每种产品cdQ分别用不同目表示Q有详细的视图显CZ品说明、品图像、h格和库存数量?/SPAN>
l 购物?/SPAN> ?用户可以通过它操作购物RQ添加、删除和更新行项目)?/SPAN>
l l帐 ?l帐面以只读视图显C物R?/SPAN>
l d重定?/SPAN> ?当用户选择l帐面上的“Continue?/FONT>Ӟ如果q没有登录,重定向到登录页面?/SPAN>
l d验证 ?通过站点的n份验证以后,用户被重定向C用卡和记帐地址表单?/SPAN>
l 定单认 ?昄记帐地址和送货地址?/SPAN>
l 定单提交 ?q是定单处理程的最后一步?/SPAN> 定单现在提交到数据库?/SPAN>
l 查询订单web服务 Q?/SPAN> B2B?/SPAN>web service接口Q提供按照订?/SPAN>ID查询订单信息
l 个性化q告 Q?/SPAN> Ҏ用户信息的定制广告条
l l护资料 Q?/SPAN> 客户登陆后修改自q信息
l 宠物搜烦 Q?/SPAN> 提供一个宠物关键字搜烦
l 帮助 Q?/SPAN> 静态帮助页?/SPAN>
Pet Shop 应用E序的功能性需求如下:
l 应用E序应该使客戯够按cd通过关键字搜索浏览公司目录?/SPAN>
l 应用E序应该为客h供一U通过一个购物R模型p购买多个商品的机制?/SPAN>
l 应用E序应该提供单的安全模型Q这样客户必dq行dQ才允许购买购物车的内容?/SPAN>
l 应用E序旨在支持高容量的企业U电子商务解x案;因此应用E序应该展示以下斚wQ?/SPAN>
̔ 高性能Q通过所支持用户数和用户响应旉q行衡量
̔ 通过增加更多处理器来扩展的能?/SPAN>
̔ 通过增加更多机器l成集的分布式扩展能力
̔ 在大型企业pȝ中,应用E序可能需要访问多个数据库Q因此应用程序应该支持分布式事务?/SPAN>
̔ 应用E序应该考虑灉|的部|策略?/SPAN> 默认时应用程序的设计Ҏ是要部vC台机器上Q一台是应用E序服务器,一台是数据库服务器Q但是应该能够扩展在其他部v模型下工作?/SPAN> 应用E序应该支持多个数据库供应商?/SPAN> q里选择?/SPAN> Microsoft SQL Server ?/SPAN>Oracle
̔ 应用E序应该Ҏl护Q这是通过应用E序中的代码行数来衡量的?/SPAN>
Q?SPAN style="COLOR: red">?/SPAN>Q网上已l有不少关于Pet shop 3.0的分析,MSDN也有Pet Shop的介l,E序下蝲地址是:下蝲 Pet Shop 3.0 Installer.msi . q里的分析参考了MSDN文档Q与MSDN不一致的U属个h观点。)
Pet Shop 3.0的研I文组l情况如下:
Part 1 Pet Shop3.0的业务过E: 主要讲述Pet Shop 3.0的业务需求以及未完成的功能?/SPAN>
Part 2 Pet Shop3.0环境和技术:包括q行环境和关键技?/SPAN>
Part 3 Pet Shop3.0数据库模型:包括Ҏ据表意义的介l?/SPAN>
Part 4 Pet Shop3.0代码l织和体pȝ构:包括目资源l织和分布式体系l构
Part 5 Pet Shop3.0场景q后实现Q分析代码实?/SPAN>
Part 6 Pet Shop3.0优点和缺点评析:ȝPet Shop3.0做的不错的地方和需要改q的地方
Part 7 Pet Shop3.0?/SPAN>Duwamish7.0的比?/SPAN>
Part 8 模仿Pet Shop3.0开?/SPAN>Book Shop的设?/SPAN>