Tôi đã cố gắng tìm sự khác biệt giữa kiến trúc MVC và 3 tầng trong ASP.NET. Tôi đã đề cập đến một số câu hỏi trước đây và một số trang trước đó, nhưng có thể tìm thấy câu trả lời rõ ràng.
Đây là aa trang MSDN về thực hiện MVC: http://msdn.microsoft.com/en-us/library/ff647462.aspxSự khác biệt giữa bộ điều khiển MVC và logic nghiệp vụ (3 tầng)
xem xét, tôi ahve mã này:
Độc trang aspx UI và mã cũng
<%@ 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>
Bây giờ, hãy xem xét tôi có các file khác nhau cho
---- Xem và mã-đằng sau 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();
}
}
- Thấy trên msdn page link cho lớp
Controller
, tôi không thể phân biệt sự khác nhau giữa logic kinh doanh (mà có thể đã được tương tự cho một tầng giữa trong kiến trúc 3 tầng) và bộ điều khiển. - Điều 3 và MVC hoàn toàn khác nhau? Có phải ứng dụng ASP.NET trong Visual Studio đã tách tệp như ở dạng MVC không? Nếu đây không phải là khác nhau, cái nào là phong cách ưa thích?
- Khuôn khổ MVC về sau đó nếu .aspx và .aspx.cs đã được spearated?
Điều này hoàn toàn đúng. Tôi cũng nói rằng các khung nhìn chứa logic trình bày trong khi các Bộ điều khiển chứa logic ứng dụng trong tầng trình bày. Hơn nữa, Mô hình thường là một phần của lớp kinh doanh. –
@BalazsTihanyi Trên thực tế chúng tôi đi xa như không làm cho các lớp kinh doanh nhận thức được các mô hình được sử dụng bởi các quan điểm, lớp kinh doanh đang sử dụng một bộ khác nhau của 'mô hình' và kết quả được ánh xạ tới các mô hình trong bộ điều khiển (automapper i ' m nhìn bạn) – ntziolis