在网上经常能看到三层架构,但是里面讲的内容往往是概念性的。
业务层,数据层,逻辑层。都是讲这些东西,但具体是怎么样的呢?
怎么样才算是业务,又怎么样才算是逻辑层,还有一个数据层。都是怎么样的呢?
.aspx/.cs这样分开就算是三层架构了?应该没这么简单吧。不知道有多少人已经搞懂这个问题了?知道的请说一下。

解决方案 »

  1.   

    一、要有数据层(DAL) 二、有逻辑层(BLL)     这两个要能复用 [就是在A项目可以用,B项目也可以用]
      

  2.   

    PetShop项目比较经典,可以看下,
      

  3.   

    .aspx和.cs都属于MVC中的V,他们一起被称为“页面”一般来说业务逻辑是一层,单独建立一个项目,实现业务逻辑数据库访问是一层,也是单独的一个项目,做数据库映射用
      

  4.   

    PetShop4.0还有什么数据工厂层
    初看的话会太难了
    看PetShop3.0好了啊
    看看就知道了
    分层好处太多的啊
    楼主这个值得学习的啊
      

  5.   

    三层架构不=petship4的东西.aspx和.cs 也不是三层架构里面的东西 那个是代码分离.
    三层架构是把 数据链接,逻辑处理和页面表示分开来处理,当然很多逻辑也可能放在数据库中的存储过程来处理.我认为三层架构应该没什么固定的模式,一个概念而已.建议这个初学者如果这个概念都不懂,看petshop4你也看不懂 还是从基础的来,找些例子来看看,自己编写一个玩玩,就知道了
      

  6.   

    给你个列子
    Modelnamespace Logindemo.Model
    {
    /// download from www.51aspx.com(51aspx.com)    /// <summary>
        /// 用户实体
        /// </summary>
        public class Logininfo
        {
            private string _loginUser;
            private string _loginPass;        /// <summary>
            /// 获取或设置用户名
            /// </summary>
            public string LoginUser
            {
                set { _loginUser = value; }
                get { return _loginUser; }
            }
            /// <summary>
            /// 获取或设置用户密码
            /// </summary>
            public string LoginPass
            {
                set { _loginPass = value; }
                get { return _loginPass; }
            }
        }
    }IDALnamespace Logindemo.IDAL
    {
    /// download from www.51aspx.com(51aspx.com)    /// <summary>
        /// 登陆用户接口
        /// </summary>
        public interface ILogin
        {
            /// <summary>
            /// 用户登陆
            /// </summary>
            /// <param name="Log">登陆的Logininfo类型</param>
            /// <returns></returns>
            int Logining(Logininfo Log);
        }
    }DALFactory  //此类用于实现抽象工厂模式去创建从配置文件指定的数据访问层的实例
        public sealed class DataAccess
        {
            private static readonly string path = System.Configuration.ConfigurationManager.AppSettings["WebDAL"];        //实现 CreateLogin 方法,用于创建Login类实例
            public static Logindemo.IDAL.ILogin CreateLogin()
            {
                string classname = path + ".Login";
                return (Logindemo.IDAL.ILogin)Assembly.Load(path).CreateInstance(classname);
            }
        }BLLpublic class Login
        {
           //利用反射生成实例
            private static readonly ILogin denglu = Logindemo.DALFactory.DataAccess.CreateLogin();
            //登陆
            public int denglula(Logininfo log)
            {
               return denglu.Logining(log);
            }
            
        }
        DALpublic class Login:ILogin 
        {
            private const string SQL_SELECT_USER = "SELECT LoginUser,LoginPassWord from LoginUser WHERE LoginUser=@LoginUser and LoginPassWord=@LoginPassWord";
            private const string LOGIN_USER="@LoginUser";
            private const string LOGIN_PASS = "@LoginPassWord";
            /// <summary>
            /// 用户登陆
            /// </summary>
            /// <param name="Log">登陆的Logininfo类型</param>
            /// <returns></returns>
            public int Logining(Logininfo Log) //重写ILogin的Logining接口
            {
                SqlParameter[] loginParameter = GetLoginParameters();
                int loginState;
                loginParameter[0].Value = Log.LoginUser;
                loginParameter[1].Value = Log.LoginPass;            using (SqlDataReader sdr = SqlHelper.ExecuteReader(SqlHelper.Con, CommandType.Text, SQL_SELECT_USER, loginParameter))
                {
                    if (sdr.Read())
                    {
                        loginState = 1;
                    }
                    else
                    {
                        loginState = 0;
                    }
                    sdr.Dispose();
                } 
                return loginState;
            }
      

  7.   

    PetShop 4.0项目比较经典
    而且有相关的详解教程
    自己也在研究中,共同探讨!
      

  8.   

    理解下为什么要分层,分层的意义,也就自然知道三层是什么东西了,如果仅仅是分出什么逻辑DAL的话,有什么意义在?重用?模块化就好了,而且更好。
      

  9.   

    看了一下PetShop4.0这个系统的后台怎么进入啊?
      

  10.   

    简言之:
    实际应用(业务层,每一种业务是一步一步来做的)->具体由程序来实现(逻辑层,如用.net来编程,一个逻辑粗浅地可分为若干程序模块)->用数据库作为数据承载(数据层,诸如使用mysql、sqlserver、oracle等数据库中的任一种)。用程序或用数据库开发(procedure、trigger、function等)来实现逻辑层均可以,因为采用数据库的效率高些,因而应优先考虑。
      

  11.   

    3层系统是个逻辑上的概念,你把网页展示部分,逻辑处理部分,数据库访问部分分开,就是所谓的3层了。其中每一层又可以独立扩展,比如ui层,你也可以扩展成负责展示界面的,负责解析xml的,负责跟逻辑层通信的。所以所谓的层,不过是根据业务逻辑来进行规划分类而已。
    理论上是分层越细,执行效率越低。但是扩展性会得到一定的提高。当然如果你有钱,可以把每个层都放在不同的服务器集群中。这样效率会高点。
      

  12.   

     
    petshop4.0(系统架构设计) 详解   对三层架构讲得还不错的  
    我也在学习 三层架构 
     你可以 看看