菜鸟学PetShop一

原创 2007年10月11日 10:02:00

  category

BLL中声明了一个ICATEGORY对象,
private static readonly ICategory dal = PetShop.DALFactory.DataAccess.CreateCategory();
声明了一个实例,调用的是DALFactory中的CreateCategory()方法。
然后下面用了泛形的方法。
public IList<CategoryInfo> GetCategories() {
            return dal.GetCategories();
        }
将类型转化为CategoryInfo类型的方法。
而dal实际上是哪个类的实例呢,就得看createCategory()
定义如下:
public static PetShop.IDAL.ICategory CreateCategory() {
            string className = path + ".Category";
            return (PetShop.IDAL.ICategory)Assembly.Load(path).CreateInstance(className);
        }
(PetShop.IDAL.ICategory)Assembly.Load(path).CreateInstance(className);这句话据说是利用反射创建了一个实例。
而path是什么呢。找一下web.config就可以了。
private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];
找一下WEBDAL就可以了。
<addkey="WebDAL"value="PetShop.SQLServerDAL"/>
所以path就得出来了,看className的值吧。
className=PetShop.SQLServerDAL.Category
于是 return dal.GetCategories();这句话返回的是className的实例,而方法就是这个类中的方法,并把返回类型转化为<CategoryInfo>类型。细看一下这个类下面的这个方法的定义。
  public IList<CategoryInfo> GetCategories() {
           IList<CategoryInfo> categories = new List<CategoryInfo>();
            //Execute a query to read the categories
using(SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_CATEGORIES, null)) {
                while (rdr.Read()) {
                    CategoryInfo cat = new CategoryInfo(rdr.GetString(0), rdr.GetString(1), rdr.GetString(2));
                    categories.Add(cat);
                }
            } 
            return categories;
        }
这个里面又牵涉到了SqlHelper的内容,
SqlHelper位于Dbutility中用来对数据库进行操作,先看一下SqlHelper.ConnectionStringLocalTransaction的内容是什么,肯定是一个静态的变量public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["SQLConnString1"].ConnectionString;可见又是放在web.config中间了,找找看,只找到这么一句并没有找到连接字符串。<addname="MSPetShop4"connectionStringName="SQLConnString1"pollTime="10000"/>再找找
<add name="SQLConnString1" connectionString="server=.;database=MSPetShop4;user id=mspetshop;password=pass@word1;min pool size=4;max pool size=4;"
   providerName="System.Data.SqlClient" />
找到了,操作是数据库MSPetShop4原来微软还把web.config给加密了,不过也提供了一个解密工具,DecryptWebConfig.bat,于是一切都明了了。SQL_SELECT_CATEGORIES是声明的一个字符串常量,private const string SQL_SELECT_CATEGORIES = "SELECT CategoryId, Name, Descn FROM Category";
一切又来到了return dal.GetCategories();再看看外面如何与BLL联系吧。
在NavigationControl.ascx自定义控件中绑定了category方法如下:
  private void BindCategories() {
            Category category = new Category();
            repCategories.DataSource = category.GetCategories();
            repCategories.DataBind();           
        }
于是总算完了绑定种类到repeater控件上。这里面共牵涉到几个项目如下:
BLL,SQLserverDAL,DButility,Model,IDAL,DALFACTORY

你真的了解分层架构吗?——写给被PetShop"毒害"的朋友们

一叶障目 .NET平台上的分层架构(很多朋友称其为“三层架构”),似乎是一个长盛不衰的话题。经常看到许多朋友对其进行分析、探讨、辩论甚至是抨击。笔者在仔细阅读了大量这方面文章后,认为许多朋友在分层架...
  • wgz_wlky
  • wgz_wlky
  • 2016年04月01日 01:19
  • 402

菜鸟学python-快速入门

两个提示符:主提示符“>>>”和次提示符“...”。 主提示符解释器用来告诉你它在等待你输入下一个语句,次提示符告诉你解释器正在等待你输入当前语句的其他部分。 print 用来输出变量的值。 >>>...
  • iAm333
  • iAm333
  • 2013年12月03日 17:20
  • 1144

基于PetShop的数据可视化网站(一):基本结构

项目需要制作一个数据可视化网站,本人从零基础开始进行学习以及实现,这篇BLOG对所学的内容进行简单的总结。...
  • maoyushiren
  • maoyushiren
  • 2016年02月04日 16:29
  • 191

新手学习freemarker

copy自http://demojava.iteye.com/blog/800204  以下内容全部是网上收集:  FreeMarker的模板文件并不比HTML页面复杂多少,FreeMar...
  • oo191416903
  • oo191416903
  • 2017年03月06日 15:18
  • 407

基于Node的PetShop,RESTful API以及认证

由于宠物店的业务发展需要,我们需要一种更加便捷的方式来管理日益增多的宠物和客户。最好的方法就是开发一个APP,我可以用这个APP来添加、更新和删除宠物。同时,业务要给宠物店的会员用户有限查看某些宠物。...
  • future_challenger
  • future_challenger
  • 2016年07月01日 11:15
  • 2284

PHP菜鸟如何开始学习PHP语言

把我自己学习PHP的经验分享出来,既给想学习PHP的朋友提供一个思路,也算是整理一下自己的思路,好给后续的教程开个头吧~ 学习其实也是有方法的,举个例子:在您上学期间,班里一定有学霸,也有学渣,...
  • coco510
  • coco510
  • 2016年06月01日 14:40
  • 1986

2016最值得学习的项目课程,干货最多

一转眼又到开学季了,今年的就业形势不容乐观。听说很多没有经验的小伙伴求职了几个月都无果,归根结底还是在于没有项目经验。 废话就不多说了,今天就推荐几个精品项目课程给大家,听说每个课程的讲师的来头都不小...
  • btt2013
  • btt2013
  • 2016年09月07日 08:38
  • 1153

Android Settings源码结构分析与自实现

最近的项目一直是按照PRD与高清,修改系统设置,调整布局、间距、颜色,涉及到一些流程的更改与自定义控件,以及对settings源码结构的研究。在项目相对空闲是,做个整理记录。由于项目依赖系统源码环境,...
  • luohaowang320
  • luohaowang320
  • 2014年01月13日 23:12
  • 4829

菜鸟到大神的上位历程,即学即用走向人生巅峰

结合个人经历总结的前端入门方法,总结从零基础到具备前端基本技能的道路、学习方法、资料。由于能力有限,不能保证面面俱到,只是作为入门参考,面向初学者,让初学者少走弯路。     互联网的快速...
  • whywhom
  • whywhom
  • 2016年03月25日 11:22
  • 2246

原创:从零开始,微信小程序新手入门宝典《一》

为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习; 一:微信小程序的特点 张小龙:张小龙全面阐述小程序,推荐通读此文; 小程序是...
  • AAASai_
  • AAASai_
  • 2017年01月06日 12:03
  • 3440
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:菜鸟学PetShop一
举报原因:
原因补充:

(最多只允许输入30个字)