NBearLite PetShop 4.0示例源码

微软PetShop源码分析与实践 NET Framework 3.5是微软公司推出的一款重要的.NET平台,为开发人员提供了一个全面的、面向对象的编程环境。在本章中,我们将深入探讨.NET Framework 3.5的核心概念,包括它的架构、主要组件以及如何在现代IT应用中利用它来构建强大的解决方案。.NET Framework 3.5内置了大量的类库和工具,支持多种编程语言如C#、VB.NET等,使得开发者可以在统一的开发环境中快速构建不同类型的应用程序,比如桌面应用程序、Web应用程序以及Web服务等。 阅读详情

该示例使用NBearLite v1.0.1.2,基于.Net PetShop 4.0的源码修改。使用NBearLite重写了等价功能的BLL、Profile、Membership模块的数据访问部分,去除了DALFacrory、IDAL等工程(因为基于NBearLite可以透明的在多种数据库源间进行无缝切换,无需修改代码),去除了Order的基于MSMQ的异步处理部分。本示例演示了使用NBearLite作为数据访问组件进行开发的常用方法。Web工程的Web.config中默认关闭了CaceDependency,并设置了Sqlite为默认数据库。

该示例支持所有NBearLite支持的数据库,包括SqlServer、Oracle、MsAccess、Sqlite、MySql和PostgreSql(示例源码中只包含了SqlServer、MsAccess和Sqlite的数据库脚本或数据库文件,如果你要在其它数据库运行,需要自己从现有的SqlServer或MsAccess数据库导出)。

下载

您可以从http://nbear.org下载最新的版本及源码。

如何安装

解压缩即可。如果您希望使用SqlServer数据库,请运行DatabaseScripts目录中的InstallDatabases.bat。

如何切换数据库源

切换数据库只需要注释掉当前的ConnectionStrings,并且取消注释您希望使用的数据库的ConnectionStrings。


使用中如发现有任何问题请在这里跟帖或给我留言,谢谢!

PetShop最新源代码合集(5.04、3版本合集) 关键是系统架构和代码学习两方面,对初学和提高有很大帮助 petshop5.0比较大,代码已经解压出来 4.0和3.0没有解压出来,自行安装解压(需要SqlServer数据做连接或者在安装到数据库连接时直接拷贝出来) petshop5.0 基于.NET Framework 3.5 ------------ 使用LINQ to SQL改进数据访问层 PetShop.Model.DataContext.MSPetShop4DataContext 继承System.Data.Linq.DataContext PetShop.Model.ProductInfo与PetShop.Model.CategoryInfo实体类分别映射数据库PetShop.Model.ProductInfo其中的Category属性存在一对一的关系 PetShop.Model.CategoryInfo中的Products属性存在一对多的关系 使用WCF来提供RSS, web/FeedService.svc目录下 PetShop.SyndicationFeeds 并在UI层上做一些改进,如使用ASP.NET AJAX,ListView控件等。 在PetShop 5.0中引入了异步处理机制。 插入订单的策略可以分为同步和异步,两者的插入策略明显不同,但对于调用者而言,插入订单的接口是完全一样的,所以PetShop 5.0中设计了IBLLStrategy模块。 虽然在IBLLStrategy模块中,仅仅是简单的IOrderStategy,但同时也给出了一个范例和信息,那就是在业务逻辑的处理中,如果存在业务操作的多样化,或者是今后可能的变化,均应利用抽象的原理。或者使用接口,或者使用抽象类,从而脱离对具体业务的依赖。 不过在PetShop中,由于业务逻辑相对简单,这种思想体现得不够明显。 也正因为此,PetShop将核心的业务逻辑都放到了一个模块BLL中,并没有将具体的实现和抽象严格的按照模块分开。所以表示层和业务逻辑层之间的调用关系,其耦合度相对较高: PetShop4.0源代码 .NET Pet Shop4 应用程序的设计说明了构建企业 n 层 .NET 2.0 应用程序的最佳做法,这种应用程序可能需要支持各种数据库平台和部署方案。 .NET Pet Shop 4 项目的目标是: 工作效率:减少了 .NET Pet Shop 3 的代码数量 - 我们减少了近 25% 的代码。 利用 ASP.NET 2.0 的新功能 - 我们利用母版页、成员身份和配置文件,并设计出一个新的、吸引人的用户界面。 企业体系结构:构建一个灵活的最佳做法应用程序 - 我们实现了设计模式,以及表示层、业务层和数据层的分离。 立即下载

相关推荐

PetShop 5.0 源代码

简介 基于.NET Framework 3.5的Petshop,使用LINQ to SQL改进数据访问层,使用WCF来提供RSS,并在UI层上做一些改进,如使用ASP.NET AJAX,ListView控件等。

PetShop3.0源码和设计模式与体系结构

学习.NET三层架构入门读物 培养标准设计思想 Microsoft .NET Pet Shop 3.0 是 Microsoft 基准应用程序系列中最新的一个。 该基准用于对这个 .NET Web 应用程序本身与 Middleware 公司开发的等价 J2EE 应用程序(已经进行了修改和全面优化)的性能和可伸缩性进行比较。

PetShop 源码

PetShop 源码使用 VS 2012 打开 微软经典宠物商城项目

PetShop5.0

基于.NET Framework 3.5的Petshop petshop5.0下载官网下载地址 Petshop5.0官网下载 点击这里直接下载Petshop5.0如果官网下载较慢,请点击这里本地下载 点击这里下载Petshop5.0详解文档 简介 基于.NET Framework 3.5的Petshop, 使用LINQ t...

weixin_34393428的博客 375

PetShop全版本(2.0-5.0)

个人收集整理,MSDN官网资源,从PetShop2.0,PetShop3.0,PetShop4.0PetShop5.0 涵盖ASP.NET 1.1 ,2.0,3.5,特此献上,以飨网友! (24条消息) PetShop全版本(2.0-5.0)-C#文档类资源-CSDN下载

fangyuan621的专栏 269

【课程设计/毕业设计】python宠物商城管理系统源码+开发文档

一直想做一款宠物商店管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套管理系统。学习过程中遇到问题可以咨询留言。系统分为后台和前台两部分。宠物管理:管理系统可以录入、修改和查询宠物的基本信息,如宠物名称、价格、备注等。类型管理:系统可以管理宠物的类型信息,包括类型的名称等。标签管理:管理标签录入、修改和查询标签的信息。评论管理:管理和浏览整个网站的评论信息。订单管理:管理和浏览整个网站的订单信息。

疯狂屌丝程序员 1980

山塞一个PetShop ——源代码下载、安装、配置及体验

源代码:13033480群共享 PetShop是一个范例,微软用它来展示.Net企业系统开发的能力。业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来。这种争论不可避免带有浓厚的商业色彩,对于我们开发人员而言,没有必要过多关注。然而PetShop随着版本的不断更新,至现在基于.Net 2.0PetShop4.0为止,整个设计逐渐变得成熟而优雅,而且...

weixin_34198881的博客 211

petshop源码

petshop

PetShop4.0宠物商店+系统架构设计+中文注释源码+PDF中文详解

一、Model主要功能: 1、 将每一个“业务实体”抽象成“(瘦数据)类”,可以很好地“划分”各个“对象”,操作更加清晰 2、 用于在应用程序各层之间传递数据,被用做传输数据的“容器” 3、 这就是所谓的“建模”过程! 4、 Model各个类(Model文件夹中的各个文件)划分或者说编制的原则,更趋向于模拟整个系统中的业务实体 二、实现细节: 1、 PetShop中Model的规划与数据库表的关系: (1) AccountInfo类——Account表 (2) AddressInfo类——无直接对应关系(对应Account表中一部分字段) (3) CartItemInfo类——无直接对应关系 (4) CreditCardInfo类——无直接对应关系 (5) ItemInfo类——Item表 (6) LineItemInfo类——无直接对应关系 (7) OrderInfo类——Orders表 (8) ProductInfo类——Product表 2、 为每一个Model中的类都标记了[Serializable],说明这些类可以被传行化,但是不能被继承! 3、 AccountInfo.cs文件:用户在网站注册的信息,及喜好选择情况 4、 使用构造函数可以初始化私有字段;使用属性可以读取私有字段(但使用属性不能设置私有字段的值) 5、 其中包含一个AddressInfo类的私有变量,和一个AddressInfo类的属性 6、 命名空间为PetShop.Model 7、 AddressInfo.cs文件:用户真实的个人姓名、住址和电话号码等信息 8、 与AccountInfo不同的是,AddressInfo类允许使用属性设置私有变量的值 9、 CartItemInfo.cs文件:描述购物车中每一种所选商品的信息的类 10、 该“类”对象的某些信息(如这里的Subtotal属性)可能并不是此类的“自然信息”,而需要经过简单计算而得到!这些简单但必要的信息也要在类的设计中体现出来! 11、 CreditCardInfo.cs文件:表示特定一张信用卡的信息 12、 ItemInfo.cs文件:一个Item指的是category"product"item,如猫"波斯猫"成年男波斯猫(或成年女波斯猫)。这个文件表示一个Item的所有信息 13、 productDesc字段的作用? 14、 LineItemInfo.cs文件:注意与CartItemInfo类的区别!LineItemInfo是用来描述用户最终确认的订单当中的某一种类的产品的信息的类 15、 同样包括了Subtotal属性 16、 OrderInfo.cs文件:用于显示用户某一个订单具体信息的类,在此一个订单当中,可能包括多个商品种类,即包括多个LineItemInfo对象(实际上在OrderInfo类中也确实存在LineItemInfo类型对象的一个数组!) 17、 ProductInfo.cs文件:包括一个特定Product的信息,如波斯猫 三、启发: 1、 来自Directory项目结束后的启发,以后做设计的时候,要将每个实体抽象为一个类,在整个系统中进行操作。 2、 在任意一个类当中,可能不只包括此实体类的自然信息,也可以包括一些对其他地方数据调用有用的属性信息,如根据数量和单价计算出来的总价属性,或者标志此实体的直属上级实体的属性 四、问题: 1、 忽然发现在MSDN上有文章,关于数据实体的:浏览 2、 抽象这些业务实体模型为瘦数据类的原则是什么?什么样的业务实体可以被抽象,或者说进行抽象后更有意义? 3、 ItemInfo类中,productDesc字段的作用? 一、IDAL主要功能: 1、 这完全是“工厂模式”的一部分实现而已 2、 这是一组接口类,其中包括了每个要公开的数据访问方法。为每个数据库产品单独编写的DAL(数据访问层)都要实现这组接口所定义的方法 3、 也就是规定了在DAL中编写的“对用户账号进行操作的类”所必须执行的方法! 4、 IDAL要达到的目的是:实现业务逻辑(BLL)与数据库访问(DAL)的完全分离!!! 5、 IDAL各个类(IDAL文件夹中的各个文件)划分或者说编制的原则,更趋向于“将对数据库的不同操作进行归类”,考虑的主要方面是数据库操作!!!例如,有对用户账号进行的一系列数据库操作,则将这一系列操作统一放置于IAccount接口(将来实现后的Account类)文件当中 二、实现细节: 1、 IAccount.cs文件:为针对不同数据库产品编写的“操作用户账号的类”所必须实现的一系列方法定义契约 2、 IInventory.cs文件:定义“操作库存量的类”所必须实现的一系列方法;或者说将操作库存量的一系列(所有)方法做一个汇总 3、 IItem.cs文件:定义“操作某一Item的类”所必须实现的一系列方法。(Item在Model中定义了,是指具体某一类别的Product,如男猫或女猫) 4、 对于其中的GetItemsByProduct()方法,返回的是一个ArrayList的接口类型(IList)的对象(见问题部分!) 5、 IOrder.cs文件:定义了一组DAL层中“操作用户订单的类”必须执行的方法。其中包括“添加一张新订单”的方法Insert()和根据一个已有的订单号取得此订单详细信息的方法GetOrder(),此方法返回的是一个OrderInfo对象。(Model中的OrderInfo类模型定义了用户的某一张Order中相关的信息,如发货地点,总价,信用卡号码等等) 6、 IProduct.cs文件:定义类一组在DAL层中编写的“对Product进行操作的类” 7、 IProfile.cs文件:定义一组在DAL层编写的“对用户Profile进行操作的类” 三、启发: 1、 这样就可以让在BLL层只针对IDAL层定义的接口进行编程(使用IDAL接口定义的这些方法)就可以了!!!无论在底层使用了什么厂家的数据库产品,有区别的只是针对此数据库产品编写的DAL层(相同的方法,如SignIn()方法,对于不同的数据库产品,可能有不同的实现方式!),而不会影响到上层的BLL层已经编写好的内容! 2、 从这里可以看到软件架构师和程序员工作上的区别!架构师要负责的是搭建系统的层次结构,定义接口;而程序员要负责的是针对接口的具体代码实现过程! 3、 这个IDAL接口的使用,主要是为了保证在底层数据库实现,甚至数据库产品发生变化的时候,不需要对上层BLL层的业务逻辑进行大量的修改!BLL层针对IDAL接口编程即可!!! 4、 IDAL文件夹中定义的所有的接口中的所有的方法,包括了整个程序要对数据库进行操作的所有方法 5、 由于PetShop只是一个演示程序,所以若对数据库操作的某一类别(如对Account进行操作)中定义的“操作类”不够用(如除了接口中定义的几个方法外还需要其他Account操作),还可以在接口中追加其他的方法,用以约束DAL层的实现类(如Account类)必须执行这些新增加的方法! 四、问题: 1、 定义这组接口后,如何保证为每个单独的数据库产品编写的DAL都执行这组接口所定义的方法?(答案:编写DAL的时候必须刻意保证,否则就失去了定义IDAL层分割BLL和DAL层的意义!!!) 2、 既然在实现GetItemsByProduct()方法的时候,也是要把返回的所有Item对象添加到一个ArrayList当中去,但为什么GetItemsByProduct()方法返回的不是一个ArrayList对象,而是一个IList接口的对象呢?仅仅是基类引用的方法吗?这里的基类引用有什么用呢?是否是由于为了不限制使用的数组形式?执行IList则可以使用ArrayList,也可以使用其他形式的数组??? 3、 IProduct.cs文件中为何要将查询条件参数定义为一个string类型的数组?

PetShop5.0最新最全版本包括全部源代码

PetShop是一个范例,微软用它来展示.Net企业系统开发的能力。业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来。这种争论不可避免带有浓厚的商业色彩,对于我们开发人员而言,没有必要过多关注。然而PetShop随着版本的不断更新,至现在基于.Net2.0PetShop5.0为止,整个设计逐渐变得成熟而优雅,却又很多可以借鉴之处。PetShop是一个小型的项目,系统架构与代码都比较简单,却也凸现了许多颇有价值的设计与开发理念。本系列试图对PetShop作一个全方位的解剖。 另外,PetShop非常适合初学者,从里面的案例可以学到最有价值的东西。

java petshop 源代码_范例-项目-.NET-PetShop-4.0-架构设计与技术分析:PetShop 4.0架构与技术分析(1)...

1.项目概述与架构分析日前微软推出了基于.NET Framework 2.0开发的Petshop 4。新的Petshop4实现了与Petshop 3相同甚至更多的特性,由于采用了Master Pages,Membership,以及Profile,SqlCacheDependency,但是代码量却减少了四分之一。同时,在事务、数据缓存、安全方面使用了.NET 2.0附带的特性,构建了一个灵活的最佳...

weixin_39866881的博客 356

基于petshop4开发学习全站源码

一、发布目的基于分享,测试,讨论二、版权此源码其中片断采用了网上收集其他人精品源码,无破解程序,均为网上公布公开源码,具体名字在此不列举了(抱歉),如无意中侵犯您版权请与我联系。三、严禁用于商业用途四、程序应用技术点1.petshop4结构,无缓存功能2.SQL 20053.AJAX1.04..NET2.0基本特性5.简单权限管理6.海量存储过程7.代码生成片断(.writeln生成文件:这里本人

johncools的博客 1362

PetShop 开源项目教程

PetShop 开源项目教程 项目介绍 PetShop 是一个模拟宠物商店管理的开源项目,旨在提供一个简单易用的宠物商店管理解决方案。该项目使用现代化的技术栈,包括但不限于 HTML, CSS, JavaScript 和 Node.js。通过 PetShop,开发者可以快速搭建一个功能齐全的宠物商店网站,并进行进一步的定制和扩展。 项目快速启动 环境准备 在开始之前,请确保您的开发环境已经安装了以...

gitblog_00139的博客 1091
上一篇: 基于CodeGenerator的Emit代码生成辅助类源码及演示
下一篇: 一种高性能Hierarchical RBAC实现方案
teddyma
博客等级 码龄25年 5粉丝 187原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值