在网上经常能看到三层架构,但是里面讲的内容往往是概念性的。
业务层,数据层,逻辑层。都是讲这些东西,但具体是怎么样的呢?
怎么样才算是业务,又怎么样才算是逻辑层,还有一个数据层。都是怎么样的呢?
.aspx/.cs这样分开就算是三层架构了?应该没这么简单吧。不知道有多少人已经搞懂这个问题了?知道的请说一下。
业务层,数据层,逻辑层。都是讲这些东西,但具体是怎么样的呢?
怎么样才算是业务,又怎么样才算是逻辑层,还有一个数据层。都是怎么样的呢?
.aspx/.cs这样分开就算是三层架构了?应该没这么简单吧。不知道有多少人已经搞懂这个问题了?知道的请说一下。
初看的话会太难了
看PetShop3.0好了啊
看看就知道了
分层好处太多的啊
楼主这个值得学习的啊
三层架构是把 数据链接,逻辑处理和页面表示分开来处理,当然很多逻辑也可能放在数据库中的存储过程来处理.我认为三层架构应该没什么固定的模式,一个概念而已.建议这个初学者如果这个概念都不懂,看petshop4你也看不懂 还是从基础的来,找些例子来看看,自己编写一个玩玩,就知道了
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;
}
而且有相关的详解教程
自己也在研究中,共同探讨!
实际应用(业务层,每一种业务是一步一步来做的)->具体由程序来实现(逻辑层,如用.net来编程,一个逻辑粗浅地可分为若干程序模块)->用数据库作为数据承载(数据层,诸如使用mysql、sqlserver、oracle等数据库中的任一种)。用程序或用数据库开发(procedure、trigger、function等)来实现逻辑层均可以,因为采用数据库的效率高些,因而应优先考虑。
理论上是分层越细,执行效率越低。但是扩展性会得到一定的提高。当然如果你有钱,可以把每个层都放在不同的服务器集群中。这样效率会高点。
petshop4.0(系统架构设计) 详解 对三层架构讲得还不错的
我也在学习 三层架构
你可以 看看