您在 .Net 2.0 开发吗?


一个新的开发模式,基于 c# 2.0 + MSSQL 2005



为什么使用 NicPetShop ?

1、在使用多层开发,是否存在 inner join 查询的痛苦?

2、在使用 orM 开发,是否觉得系统很臃肿,调用方法也不尽人意(简单)?

3、您是否经常为了分页而不断从旧的代码中 COPY 几十行代码,也保证不了分页的易用通用?

4、您的开发模式使用起来简单吗?



NicPetShop 可以解决

1、采用多层开发架构

2、采用 c# 强类型与数据库表映射,并且引入 .net 2.0 的 System.Nullable<T> 支持可空类型

3、能将数据库的关系映射到 c#,让您使用更方便,让你不再为 inner join 查询烦恼

    类似 <%# Eval("userGroupInfo.GroupName") %> 这样的绑定方式
    List<UserInfo> User.GetItemsByUser_group_id(int user_group_id); 这样的快速方法生成

4、高效绑定分页,支持 repeater,datalist,gridview,并且支持设计时(傻瓜式)分页,也可将分页写入代码中,2行以内代码就可以为你制造高性能的多种分页方案

dataListPager1.DataSouce = User.GetItemsByUser_group_id(user_group_id, dataListPager1.Pager);

    dataListPager1.DataBind();



5、语法简洁,功能强大

    A、添加数据后即刻返回当前插入的对象(对应数据库表中新插入的行)
      

UserInfo user = User.Insert(null, "nic", "******");

        //UserInfo user = new UserInfo();

        //user.UserName = "nic";

        //user.PassWord = "******";

        //user = User.Insert(user);



    B、按数据库建立的关系直接访问到主表对象
    

UserInfo user = User.GetItem(1);

        User_groupInfo user_group = user.user_groupInfo;


    C、在页面上绑定项时很轻易的在关系间访问,特别对于无限级类别表的使用(parent_id -> self.id 关系)
    

<ItemTemplate>

            <%# Eval("Id") %>

            <%# Eval("UserName") %>

            <%# Eval("user_groupInfo.GroupName") %>

        </ItemTemplate>



    D、很轻易的得到对应 ID 的所有或自定义获取多少条集合
       

List<UserInfo> users = User.GetItemsByUser_group_id(user_group_id); //所有

        List<UserInfo> users = User.GetItemsByUser_group_id(10, user_group_id); //前 10 条

        List<UserInfo> users = User.GetItemsByUser_group_id(new Limit(10, 20), user_group_id); //第 10 到 20 条



    E、按主键或惟一索引生成相应的方法
  

int rows = User.Delete(id);

        int rows = User.DeleteByUserName(userName);


        UserInfo user = User.GetItem(id);

        UserInfo user = User.GetItemByUserName(userName);


    F、很轻易的得到所有或自定义获取多少条集合
     

List<UserInfo> users = User.GetItems(); //所有

        List<UserInfo> users = User.GetItems(10); //前 10 条

        List<UserInfo> users = User.GetItems(new Limit(10, 20)); //第 10 到 20 条


    H、ConnectionManager 安全管理 SqlConnection,对多线程安全使用
     

SqlConnection conn = ConnectionManager.GetConnection();


    I、自动生成 RepeaterPager.cs,DataListPager.cs,GridViewPager.cs,它们分别继承于 System.Web.UI.WebControl.Repeater,System.Web.UI.WebControl.DataList,System.Web.UI.WebControl.GridView,支持设计时

    J、将自己的 web 开发经验常用开发代码集中到生成的解决方案中
        web.config,web.sitemap 的配置
        App_Code\BasePage.cs 的建立,自动添加 Title,meta-keywords,meta-content,siteMapPath操作
        connection.aspx 查看当前 web 程序使用的 sqlconnection 情况

6、将永久免费给大家使用