• TimeTracker研究


    TimeTracker是微软一个比较简单的案例,这几天决定重新学一下asp.net,就从这些官方的案例开始入手研究。

    数据库:

    TimeTracker 是个简单的案例,主要的关系以及数据表如下图:

    image

    这里membership的关系表只显示了一张users表,因为这张表和这个系统关系比较紧密。

    数据表不是很复杂,这里就不详细说了。

    DAL:

    TimeTracker虽然是个很小的案例,但是分层却一点也不含糊,照样有数据层,逻辑层,表现层,其中DAL里面有三个类:DataAccessHelpsers类,DataAccess类,SQLDataAccessLayer类,DataAccess是个抽象类,包含了该项目要实现的所有的数据操作类的抽象方法,SQLDataAccessLayer是继承与DataAccess类的在SqlServer上的具体实现,DataAccessHelper类是个工厂,在Web.config里面有个具体实现类的配置:

    <add key="aspnet_staterKits_TimeTracker_DataAccessLayerType" value="ASPNET.StarterKit.DataAccessLayer.SQLDataAccess"/>

    DataAccessHelper根据aspnet_staterKits_TimeTracker_DataAccessLayerType的值,生成具体的数据操作方法,其实这已经有点类似于petshop里面的provider模式了,只是这里实现的更简单了而已。

    插一句,关于web.config文件,这个项目其实也挺值得学习的,比如:

    <location path="login.aspx">
            <system.web>
                <authorization>
                    <allow users="?" />
                </authorization>
            </system.web>
        </location>

    这一段是定义login.aspx页面运行所有人访问。

    <pages maintainScrollPositionOnPostBack="True" /> 这里定义了页面在postback以后滚动条滚动到之前的位置,这个特别有用,记得在以前要实现这个功能好像是挺花力气的。

    BLL:

    BLL里面的类直接把DomainModel和相关的逻辑都放在一起了,比如Category类,除了定义Category的字段,属性,还有它的实体方法和静态方法。这里的方法调用了数据层的时候用一下类似的方法:

    DataAccess DALLayer = DataAccessHelper.GetDataAccess();
       return (DALLayer.GetAllCategories());

    体现了设计原则里面的依赖抽象而不依赖具体实现的原则。

    TimerTracker:

    这个文件夹里就是具体的表现层了。

    Global文件在程序开始的时候就判断角色系统,如果没有系统需要的角色就直接创建了角色。

    关于用户的创建修改检索登陆就不说了,看一下教程,说的非常详细。

    母版页里面放了一个Menu控件,之前没想到Menu控件能实现菜单这么好看,下次做菜单的时候看一下这个实现好了,不用自己写菜单代码了。

    其他的页面代码里面主要就是数据控件 GridView,DataList,Repeater以及ObjectDataSource控件以及验证控件的使用了。另外,那个日历页面觉得好像做的不是很好,如果要在实际项目里面需要这个功能的话强烈推荐my97这个控件。

  • 相关阅读:
    JS・TextArea 字符串长度限制
    JavaScript面试题目集锦
    IE内存泄露分析
    JS动态添加样式和脚本
    取消锚(<a/>)点击后页面跳转的几种方法
    JS代码片段整理
    IE缓存问题的解决方法
    字符串与数字 转换
    如何安装和配置Cassandra
    字类和超类的转化问题
  • 原文地址:https://www.cnblogs.com/asdio/p/1406467.html
Copyright © 2020-2023  润新知