के बीच अंतर मैं एएसपी.नेट में एमवीसी और 3-स्तरीय वास्तुकला के बीच अलग-अलग खोजने की कोशिश कर रहा हूं। मैंने कुछ पिछले कुछ प्रश्नों और कुछ पृष्ठों को संदर्भित किया है, लेकिन एक स्पष्ट उत्तर मिल सकता है। http://msdn.microsoft.com/en-us/library/ff647462.aspxएमवीसी नियंत्रक और व्यापार तर्क (3 स्तर)
पर विचार करें, मैं इस कोड ahve:
एकल पृष्ठ aspx यूआई और कोड के रूप में अच्छी तरह से
<%@ 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>
अब, पर विचार मैं के लिए अलग अलग फ़ाइलों
यहाँ आ MSDN MVC कार्यान्वयन के बारे में पेज है
---- देखें और कोड-पीछे 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();
}
}
Controller
वर्ग के लिए ऊपर msdn page link देखकर, मैं व्यापार तर्क के बीच का अंतर (उस के लिए समान हो गया होता विचार करने के लिए सक्षम नहीं हूँ एक 3 स्तरीय वास्तुकला में एक मध्यम स्तर) और नियंत्रक।- 3-स्तरीय और एमवीसी पूरी तरह से अलग बात है? क्या विजुअल स्टूडियो में एएसपी.NET एप्लिकेशन पहले ही एमवीसी फॉर्म में फाइल को अलग कर चुका है? यदि ये अलग नहीं हैं, तो कौन सी पसंदीदा शैली है?
- तब के बारे में एमवीसी ढांचा क्या है यदि .aspx और .aspx.cs पहले से ही भाले गए हैं?
के विचार पसंद नहीं हैं। यह पूरी तरह से सच है। मैं यह भी कहूंगा कि दृश्यों में प्रेजेंटेशन तर्क होता है जबकि नियंत्रकों में प्रस्तुति स्तर में अनुप्रयोग तर्क होता है। इसके अलावा, मॉडल आम तौर पर व्यापार परत का हिस्सा है। –
@ बालाज़्स तिहानी वास्तव में हम विचारों द्वारा उपयोग किए जाने वाले मॉडलों के बारे में व्यवसाय स्तर को जागरूक नहीं करते हैं, व्यापार परत 'मॉडल' के एक अलग सेट का उपयोग कर रही है और परिणाम नियंत्रकों के भीतर मॉडल में मैप किए जाते हैं (automapper i ' मैं आपको देख रहा हूँ) – ntziolis