Я пытаюсь найти разницу между MVC и трехуровневой архитектурой в ASP.NET. Я упомянул некоторые предыдущие предыдущие вопросы и некоторые страницы, но мог найти ясный ответ.
Вот аа MSDN страница о реализации MVC: http://msdn.microsoft.com/en-us/library/ff647462.aspxРазница между MVC-контроллером и бизнес-логикой (3 уровня)
Рассмотрим, я ahve этот код:
Одна страница 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>
Теперь рассмотрим меня есть различные файлы для
---- Просмотр и Code-за 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-уровневое и MVC совершенно другим? Является ли приложение ASP.NET в Visual Studio уже разделенным файлом, как в форме MVC? Если они не отличаются, какой из них является предпочтительным?
- Что такое структура MVC, если уже есть .aspx и .aspx.cs?
Это совершенно верно. Я бы также сказал, что представления содержат логику представления, в то время как контроллеры содержат логику приложения в уровне представления. Кроме того, Модель, как правило, является частью бизнес-уровня. –
@BalazsTihanyi На самом деле мы зашли так далеко, что не сделали бизнес-уровень осведомленным о моделях, используемых представлениями, бизнес-уровень использует другой набор «моделей», и результаты сопоставляются с моделями внутри контроллеров (automapper i ' я смотрю на тебя) – ntziolis