刚刚写完了用silverlight+wcf完成的Folder项目,其实刚开始的时候是先用c#用三层架构先做的,现在我就讲解一下我用三层架构做的Folder项目。
对于大部分.net程序员来讲,三层架构应该不陌生了,但是我之前并未在这里的博客记录过,所以我还是有必要再写一次,所谓三层架构分别是DAL(数据)层、BLL(逻辑)层和UI(界面)层,但是注意,三层架构虽然说是三层,但通常都会再加一层model层作为数据实体层,这样就更加能把三层分离开来了,具体关系如下图
UI层是不会直接对数据库进行操作的,而是通过逻辑层调用数据层,界面层再调用逻辑层来完成的,所以BLL层引用DAL层但不引用UI层,UI层引用BLL层但不引用DAL层,而对于DAL、BLL和UI这三层,都是需要引用Model实体层的,但是通常情况下BLL层并不使用实体所以大部分情况下都不会引用Model层,解释到这里,我觉得我们应该可以很清晰的理解三层架构的框架了,那接下来我就直接讲解我的folder项目了。
1、下图是我的项目的文件图
FolderBLL:逻辑层,引用数据层;
FolderDAL:数据层,直接操作数据库;
FolderEntity:实体层,数据库的字段属性;
Web:UI层,整个程序的界面。
2、这个是vs的解决方案截图
3、UI层
这个只是一个aspx文件,简单的HTML代码我就不详细讲解了,代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FolderDefault.aspx.cs" Inherits="HuaweiSoftware.Folder.Web.FolderDefault" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<style type="text/css">
html, body
{
height:100%;
width:100%;
}
</style>
</head>
<body style="margin:0 auto;text-align:center">
<form id="form1" runat="server">
<div style="width:100%;height:100%; margin:0 auto;position:fixed">
<div style="width:100%;height:1%">
<div style="float:left;margin-left: 0px;width:80%;height:100%;margin-top:3px;margin-left:3px">
<asp:TextBox ID="txtFilePath" runat="server" Width="100%" BorderColor="#7B7B7B" BorderWidth="1px"></asp:TextBox>
</div>
<div style="width:19%;height:100%;float:right;text-align:left">
<asp:Button ID="btnSave" runat="server" Text="保存" οnclick="btnSave_Click" />
<asp:Button ID="btnLoad" runat="server" Text="加载" οnclick="btnLoad_Click" />
</div>
</div>
<br />
<div style="float:left;width:100%;height:95%;position:absolute;margin-top:3px">
<div style="float:left;width:25%;height:100%;margin:3px" >
<asp:TreeView ID="fileNameTree" runat="server" Height="100%" BorderStyle="Solid"
Width="100%" BorderWidth="1px" Font-Size="Large" style="overflow:scroll"
ImageSet="WindowsHelp"
onselectednodechanged="fileNameTree_SelectedNodeChanged" ExpandDepth="0"
ForeColor="Black" BorderColor="#7B7B7B">
<HoverNodeStyle BackColor="#3399FF" ForeColor="White" />
<LeafNodeStyle NodeSpacing="5px" />
<NodeSt