【发布时间】:2012-04-02 17:18:18
【问题描述】:
我一直试图找出 MVC 和 ASP.NET 中的 3 层架构之间的区别。我参考了一些以前的一些以前的问题和一些页面,但可以找到一个明确的答案。
这是一个关于 MVC 实现的 msdn 页面:http://msdn.microsoft.com/en-us/library/ff647462.aspx
考虑一下,我有这个代码:
单页 aspx UI 和代码也是如此
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html>
<head>
<title>start</title>
<script language="c#" runat="server">
void Page_Load(object sender, System.EventArgs e)
{
String selectCmd = "select * from Recording";
SqlConnection myConnection =
new SqlConnection(
"server=(local);database=recordings;Trusted_Connection=yes");
SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd,
myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Recording");
recordingSelect.DataSource = ds;
recordingSelect.DataTextField = "title";
recordingSelect.DataValueField = "id";
recordingSelect.DataBind();
}
</script>
</head>
<body>
<asp:dropdownlist id="recordingSelect" runat="server" />
<asp:button runat="server" text="Submit" OnClick="SubmitBtn_Click" />
</form>
</body>
</html>
现在,考虑我有不同的文件用于
---- View 和 Code-behind spearated ----
.aspx
<%@ Page language="c#" Codebehind="Solution.aspx.cs"
AutoEventWireup="false" Inherits="Solution" %>
<html>
<asp:dropdownlist id="recordingSelect" runat="server" />
</form>
</body>
</html>
.aspx.cs
using System;
using System.Data;
using System.Data.SqlClient;
public class Solution : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
String selectCmd = "select * from Recording";
SqlConnection myConnection =
new SqlConnection(
"server=(local);database=recordings;Trusted_Connection=yes");
SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Recording");
recordingSelect.DataSource = ds;
recordingSelect.DataTextField = "title";
recordingSelect.DataValueField = "id";
recordingSelect.DataBind();
}
}
- 看到上面 msdn page link 的
Controller类,我无法辨别业务逻辑(对于 3 层架构中的中间层来说是相似的)和控制器之间的区别。
- 3 层和 MVC 是完全不同的东西吗? Visual Studio 中的 ASP.NET 应用程序是否已经像 MVC 形式那样分离文件?如果这些没有什么不同,哪一种是首选风格?
- 如果 .aspx 和 .aspx.cs 已经分开,那么 MVC 框架是什么?
【问题讨论】:
标签: c# asp.net-mvc 3-tier