小弟在研究petshop过程中遇到了几个问题,不解。希望在研究中的人,或者了解其中原理的人能给些答复,大家相互学习学习,在下先此谢过~
以下主要是在web这个项目中的一些问题,若遇其他问题以后补充。1、 看看ProductsControl.ascx.cs这个第一行就来了个 this.CachePolicy.Dependency = DependencyFacade.GetProductDependency();这里的this.CachePolicy.Dependency在MSDN里的是解析为:“组合 ASP.NET 应用程序的 Cache 对象中存储的项和 CacheDependency 对象的数组之间的多个依赖项。无法继承此类。”,页面的代码为<%@ OutputCache Duration="100000" VaryByParam="page;categoryId" %>,那么问题是这个缓存控件ID分别为page及categoryId,这两个ID在这页面中找不到,那这两个分别代表什么?这个DependencyFacade.GetProductDependency()这个读出来的值好像也不是读值productsList所绑定的数据,那么productsList的数据是从哪里读取来绑定的?2、 使用Items.aspx,ItemsControl.ascx是他加截的用户控件,打开ItemsControl.ascx.cs可以发现没有用Page_Load(),那么它第一次是怎么去加载数据的? 3、 ShoppingCart.aspx页面中使用的是Page_PreInit去加载。为什么不用Page_Load?ShoppingCartControl.ascx的用户控件使用的是Page_PreRender而也为什么不用Page_Load?4、用户页面SingIn.aspx只用了一个Login控件。也没有SingIn.aspx.cs去写如何验证的代码,这里是用到什么方法去做这个验证的工作的?注册用户是怎么去注册的?他们都没有逻辑代码,只是用个简单的控件,就可以不经逻辑代码而直接写入数据库,都是只是配置一下配置文件就可以完成了。那如果不是与之相对应的数据库那不就要重写逻辑代码了?暂时研究到这个页面,之后的还没研究,但问题太多,想先解决前面的这些再往下研究,希望能得到解答.
希望答者能以相关编号进行回答,分不够会再加
以下主要是在web这个项目中的一些问题,若遇其他问题以后补充。1、 看看ProductsControl.ascx.cs这个第一行就来了个 this.CachePolicy.Dependency = DependencyFacade.GetProductDependency();这里的this.CachePolicy.Dependency在MSDN里的是解析为:“组合 ASP.NET 应用程序的 Cache 对象中存储的项和 CacheDependency 对象的数组之间的多个依赖项。无法继承此类。”,页面的代码为<%@ OutputCache Duration="100000" VaryByParam="page;categoryId" %>,那么问题是这个缓存控件ID分别为page及categoryId,这两个ID在这页面中找不到,那这两个分别代表什么?这个DependencyFacade.GetProductDependency()这个读出来的值好像也不是读值productsList所绑定的数据,那么productsList的数据是从哪里读取来绑定的?2、 使用Items.aspx,ItemsControl.ascx是他加截的用户控件,打开ItemsControl.ascx.cs可以发现没有用Page_Load(),那么它第一次是怎么去加载数据的? 3、 ShoppingCart.aspx页面中使用的是Page_PreInit去加载。为什么不用Page_Load?ShoppingCartControl.ascx的用户控件使用的是Page_PreRender而也为什么不用Page_Load?4、用户页面SingIn.aspx只用了一个Login控件。也没有SingIn.aspx.cs去写如何验证的代码,这里是用到什么方法去做这个验证的工作的?注册用户是怎么去注册的?他们都没有逻辑代码,只是用个简单的控件,就可以不经逻辑代码而直接写入数据库,都是只是配置一下配置文件就可以完成了。那如果不是与之相对应的数据库那不就要重写逻辑代码了?暂时研究到这个页面,之后的还没研究,但问题太多,想先解决前面的这些再往下研究,希望能得到解答.
希望答者能以相关编号进行回答,分不够会再加
解决方案 »
- 请问怎样将内容连续写入文本里?
- 超郁闷的MySql数据库上传图片后不能显示问题?代码如下。。。。
- aspx页面中拉入一个TreeView控件,它的SelectedNodeChanged事件响应有问题
- ★★★★★ .Net(C#)一些基本类型的求解 ★★★★★
- 紧急求助,报错了
- 运行asp.net三层架构的源代码出下面错误?
- 写日志出错,请问怎回事?附有代码
- ASP转到.NET技术去,适合什么方面呢?
- 为什么直接打开aspx页面出错,而“在新窗口中打开”正常???
- 如何实现:点击datagrid的行,把行的内容显示到datagrid之外的label中?
- 30分求gridview 中checkbox 取值问题
- OleDbParameter参数问题
如果做过需要动态更新缓存就知道缓存的依赖项有什么作用。简单的讲就是当缓存依赖项改变则缓存更新。
第二:
不是所有的页面都需要Page_Load事件的,信息的加载只是很小一部分用Page_Load.虽然我们大部分程序写在Page_Load里面。Cs这个类的属性,变量会加载的。另外使用这个控件的其他地方也可以控制其属性。
第三:
看页面的生命周期你就知道了,各个事件的激发是有顺序的,Page_Load只是其中的一个环节,Page_Load不是万能的,什么事件都放在里面就可以了。
第四:
PetShop4代码充斥者大量的设计模式,用普通的面向过程的方法去看的确头疼,去熟悉一下几种面向对象的设计模式特别是工厂方法,你就能理解了。
membership,具体用法查资料http://www.cnblogs.com/smallfa/archive/2008/03/10/1098990.html,
其它你说的那几个页面都没有印象了,时间太长了
1.VaryByParam表示GET或 POST 名称/值对的字符串。如果不使用该属性,可是设置为none。
Page;categoryId
意思就是 页面和categoryId 更新时候 缓存就更新啊
2.控件 可以建立属性 在 调用页面去更改 因为可能 每次空间属性不同 如果在Page_Load里面 耦合不就大了
3.Page_Preinit 是动态加载控件 加载视图 回发数据的东西 这里我就不详细说了 你可以去看看 页面事件
4.他都使用了Login 为什么还要去验证 Login 就是把TextBox 封装好 用Membership 管理他的啊
Login 提供的属性 可以设置验证 就不必要用验证控件 使用Membership 就是为了方便用户 提供统一的登录系统
封装好了所有功能
1、ProductsControl.ascx这里面的ID名为categoryId的控件,只有<a href='Items.aspx?productId=<%# Eval("Id") %>&categoryId=<%# Eval("categoryId") %>'>像这个的参数名,难道这里也能去做缓存?
2、这个现在有点看得明白是因为自定义了一个productsList控件,这个控件是继承了DataList去做页面加载的~~
3、这几个页面的生命周期写习惯了的都一般只用个Page_Load,但在petshop写得很灵活,我查了一下,发现很少人会去写这个生命周期的文章,只不过都是点一点,大多只是指明一个时间加载的前后关系,但很少写出他的好处作用,所以为也是我搞得不太明白的地方~
4、总感觉这个login控件用得太死了,如果是换了数据库,或者想添加字段那么这一个会很不方便,如果将membership的字段名称改一下以便与其他数据相结合,那么我要怎么去做这个验证?所以就不知道他是怎么去做这个验证了~
2.
3.事件 的话 我最近正在写一个 完美的教学博文 不久就发布到cnblogs 呵呵
4.将membership的字段名称改一下===
那就要重新 Membership 他是继承自 MembershipBase 之类的东东 然后要重新
你看petshop里面的 ORacle 好麻烦
我这次做项目 也在考虑 是不是要重写 后来想了下还是用profile 去加其他属性吧
不过如果时间可以
你可以完全开发自己的web服务器登录控件
如果你打算重新 去下个 providerToolkit.msi后面忘记了 MS的provider 类
有点看得明白了。
1、不过都比较模糊~各个知识点理解得不太多,就像缓存这里你说可以是数组,数据库,页面,控件id等等,那么这里应该就是指定了page页面,那么他为什么还要指定了一个categoryId?页面不是都包括了全部了?他这里为什么不直接用个none就行了?
4、如果像你这么说那么login基本上就是使用mssql时才有点用,如果在access或者其他数据库,那还不如自己写个登录控件,那么login基本上就可以废了~不实用啊~写得也太麻烦!