He estado tratando de encontrar lo diferente entre MVC y la arquitectura de 3 niveles en ASP.NET. Me referí a algunas preguntas anteriores y algunas páginas anteriores, pero podría encontrar una respuesta clara.
Aquí es AA página de MSDN acerca de la implementación MVC: http://msdn.microsoft.com/en-us/library/ff647462.aspxDiferencia entre el controlador MVC y la lógica de negocios (3 niveles)
tener en cuenta, me tienen este código:
sola página aspx interfaz de usuario y el código, así
<%@ 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>
Ahora, tenga en cuenta que tengo diferentes archivos para
---- View y de código subyacente 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();
}
}
- Al ver lo anterior msdn page link para la clase
Controller
, no soy capaz de discernir la diferencia entre la lógica de negocio (que habría sido similar para un nivel medio en una arquitectura de 3 niveles) y el controlador. - ¿Es 3 niveles y MVC algo completamente diferente? ¿La aplicación ASP.NET en Visual Studio ya está separada del archivo como en el formulario MVC? Si no son diferentes, ¿cuál es el estilo preferido?
- ¿De qué se trata el framework MVC si los archivos .aspx y .aspx.cs ya están escritos?
. Esto es completamente cierto. También diría que las Vistas contienen la lógica de presentación mientras que los Controladores contienen la lógica de la aplicación en el nivel de presentación. Además, el Modelo es generalmente parte de la capa de negocios. –
@BalazsTihanyi En realidad llegamos al extremo de no hacer que la capa empresarial conozca los modelos utilizados por las vistas, la capa empresarial usa un conjunto diferente de 'modelos' y los resultados se asignan a los modelos dentro de los controladores (automapper i ' m mirándote) – ntziolis