请教分层问题

jcins 2009-03-16 11:10:33
想了解大家的公司在做.net大型网站的时候是怎么做的.
比如做前台部分的,做的同时他要测试读出数据,数据库可以让他连到局域网里的一台服务器,网站里的DLL文件就不能远程了吧,要是放在本地的话那网站所有文件不就都在他手里了吗.有没有什么办法能够让做前台页面的手里尽可能少的拥有DLL文件?可能我问的不是太专业.不知道大家能不能理解...
或者大家推荐我一些分层工作的一些细节的文章.谢谢了~~~
...全文
144 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
datahandler2 2009-03-16
  • 打赏
  • 举报
回复
大型网站一般都是采用三层架构或N层架构进行开发。数据库的配置一般都是在web.config中记录。你可以加密web.config的节点内容来防止别其他人看到机密的数据库信息。
嘴哥臭鼬 2009-03-16
  • 打赏
  • 举报
回复
一般都是三层
zzxap 2009-03-16
  • 打赏
  • 举报
回复
下载微软的petshop4.0来研究一下就知道了

1.分析功能设计数据库
2.搭建三层框架
1).表示层 UI
2).业务逻辑层 BLL
3).数据访问层 DAL
4).实体类库 Models
3.代码顺序
1).根据数据库将数据库中的每张表封装成对应的实体类
2).在UI中添加应用程序配置文件,将数据库连接字符串写在配置文件中
3).在DAL中写DBHelper类
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace ...DAL
{
class DBHelper
{
static string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
public static string ConnectionString
{
get { return DBHelper.connectionString; }
}
public static int ExecteQuery(string cmdText,CommandType cmdType,params SqlParameter[] parameters)
{
using (SqlConnection conn=new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = cmdText;
cmd.CommandType = cmdType;
cmd.Connection = conn;
PrepareCommand(cmd, parameters);
try
{
conn.Open();
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
}
}
public static SqlDataReader ExecuteReader(string cmdText,CommandType cmdType, SqlConnection conn, params SqlParameter[] parameters)
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = cmdText;
cmd.CommandType = cmdType;
cmd.Connection = conn;
PrepareCommand(cmd, parameters);
try
{
return cmd.ExecuteReader();
}
catch (Exception ex)
{
throw ex;
}
}
public static object ExecuteScalar(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
{
using (SqlConnection conn=new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(cmdText, conn);
cmd.CommandType = cmdType;
PrepareCommand(cmd, parameters);
try
{
conn.Open();
return cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw ex;
}
}
}
public static DataTable GetDataTable(string cmdText, CommandType cmdType, params SqlParameter[] parameters)
{
using (SqlConnection conn=new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(cmdText, conn);
cmd.CommandType = cmdType;
PrepareCommand(cmd, parameters);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
try
{
da.Fill(dt);
return dt;
}
catch (Exception ex)
{
throw ex;
}
}
}
private static void PrepareCommand(SqlCommand cmd, params SqlParameter[] parameters)
{
if (parameters != null)
{
foreach (SqlParameter p in parameters)
{
cmd.Parameters.Add(p);
}
}
}
}
}
4).在DAL中对应每个实体类创建相应的数据访问类,使用DBHelper中的方法实现数据访问
5).在BLL中对应每个实体类创建相应的业务逻辑类,调用DAL中对应类的方法实现业务逻辑
6).在UI中调用BLL中的方法实现具体操作
「已注销」 2009-03-16
  • 打赏
  • 举报
回复
可以参考petshop源码
pgameli 2009-03-16
  • 打赏
  • 举报
回复
数据库可以远程连接啊
更改一下连库串就可以了,跟类库没关系
一般来说为了方便管理,有的用的是工厂模式
三层架构参考http://www.cnblogs.com/gaoweipeng/archive/2009/01/18/1377855.html
设计模式参考:http://terrylee.cnblogs.com/archive/2006/06/01/334911.html
  • 打赏
  • 举报
回复
mvc 案例实现了接口层和数据访问工厂 支持Access数据库和MsSqlServer2000
  • 打赏
  • 举报
回复
叫前台人员通过 ie访问你指定的一台机器登陆程序进行测试
那样的话 他只能看见界面了其它的什么文件都看不到
hx_huang 2009-03-16
  • 打赏
  • 举报
回复
回帖是一种美德!每天回帖即可获得 10 分可用分!
jcins 2009-03-16
  • 打赏
  • 举报
回复
三层开发完了,在调试的时候是怎么弄呢?交给公司核心人员做?然后哪块出了问题再让相关层的开发人员修改?

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧