ÔÚ·Ö²ãµÄ Web Ó¦ÓóÌÐòÖУ¬±íʾ²ãÓëµ¼º½Âß¼¡¢ÒµÎñÂß¼ºÍÊý¾Ý·ÃÎÊͬÑùÖØÒª¡£ÄúÓ¦¾¡Á¿½«±íʾ²ã£¨Í¨³£Ö¸±íʾÂß¼£©Óë UI ¼¼ÊõºÍƽ̨¶ÀÁ¢¿ªÀ´£¬ËäÈ»Õâ²¢²»ÈÝÒ××öµ½¡£Éè¼ÆÄ£Ê½¿É°ïÖúÄúʵÏÖ´ËÄ¿±ê¡£
ÔÚ±¾ÔµÄרÀ¸ÖУ¬ÎÒ½«½éÉÜһЩ¹¹½¨ ASP.NET ±íʾ²ãËùÓõÄÉè¼ÆÄ£Ê½¡£ÎÒÊ×ÏÈÒª½éÉܵÄÊÇÄ£ÐÍ-ÊÓͼ-¿ØÖÆÆ÷ (MVC) ģʽ£¨ËùÓÐרÃÅÃæÏò UI µÄģʽµÄ¸ùģʽ£©£¬²¢½éÉÜÆäÔÚ ASP.NET MVC Framework ·¶Î§Ö®ÍâµÄ ASP.NET ÊÊÓÃÐÔ¡£
ÉîÈëÁ˽â ASP.NET ʼþ´¦Àí³ÌÐò
ASP.NET ±íʾ²ãÖ÷ÒªÓÉÓë HTTP ÔËÐÐʱ»·¾³ÅäºÏµÄ .aspx Ò³Ãæ×é³É¡£ÓÐʱ£¬µäÐÍ .aspx Ò³Ãæ¿ÉÄÜ»á¸ù¾ÝÌØ¶¨Óû§µÄ²Ù×÷£¨Èç°´Å¥µ¥»÷»òÁбíÑ¡Ôñ£©Ìá³ö HTTP ÇëÇó¡£ÔÚ ASP.NET Web ´°Ìå±à³Ì¹ý³ÌÖУ¬ÕâЩʼþͨ³£ÓÉ·½·¨ºÍʼþ´¦Àí³ÌÐòÒÀ´Î´¦Àí£¬È»ºóÔÚÒ³ÃæµÄ´úÂëÒþ²ØÀàÖбàд¡£´Ó±íÃæ¿´£¬Óû§²Ù×÷ºÍϵͳ·´Ó¦ºÃÏñÊÇÖ±½ÓÁ¬½ÓµÄ£¬ÔÚ×ÀÃæÓ¦ÓóÌÐòÖпÉÄÜÊÇÕâÑù£¬µ«ÔÚ ASP.NET ÖÐÈ´²¢·ÇÈç´Ë¡£
ÔÚ ASP.NET ÖУ¬´ÓÓû§µ¥»÷µ½ÏÔʾ¸üÐÂÒ³ÃæÆÚ¼ä·¢ÉúÁ˺ܶàÊÂÇ飬ÎÞÂÛÄúµ±Ç°ÊÇ·ñÕýÔÚʹÓà AJAX£¬µ«ÔÚÄúʹÓà ASP.NET MVC Framework ¹¹½¨µÄ ASP.NET Ó¦ÓóÌÐòÖУ¬ÐÅÏ¢Á÷¸ü¶Ì¡£
ÈÃÎÒÃÇ¿´Ò»¸ö°´Å¥µ¥»÷ʼþ¡£¿ª·¢ÈËԱͨ¹ýÔÚ Button ¿Ø¼þµÄ Click ʼþ´¦ÀíÆ÷ÖбàдһЩ´úÂëÀ´´¦Àí´Ëʼþ¡£ÕâЩ´úÂë´æÔÚÓÚÒ³ÃæµÄÔ´´úÂëÖУ¬ÈçÏÂËùʾ£º
void Button1_Click(object sender, EventArgs e)
{
// Perform any required action
} |
Äú¿ÉÒÔ½«ËùÓÐÐèÒªÖ´ÐеIJÙ×÷µÄ´úÂë¶¼·ÅÔÚ´Ë´¦£¬Ò²¿ÉÒÔÔÚij¸ö¶ÔÏ󹫿ªµÄ¾²Ì¬·½·¨»òʵÀý·½·¨ÖжÔËùÓÐÕâЩ´úÂë½øÐзÖ×飺
void Button1_Click(object sender, EventArgs e)
{
// Static method bound to the user action
ActionManager.Button1Clicked();
} |
Äú»¹¿ÉÒÔ×éÖ¯¶ÔÓû§ÔÚ¿ØÖÆÆ÷ºÍ²Ù×÷ÖеĻ½øÐÐÏìÓ¦µÄ´úÂ룺
void Button1_Click(object sender, EventArgs e)
{
// Static method bound to the user action
ThisPageController controller = new
ThisPageController();
controller.Button1Clicked();
} |
ÎÒÏÖÔÚ¼ÙÉ裬ÿ¸öÒ³Ãæ¶¼ÓÐÆä×Ô¼ºµÄ¿ØÖÆÆ÷×é¼þ£¬Ã¿¸ö¿ØÖÆÆ÷¶¼°üº¬Ò»ÏµÁÐÔÚÂß¼Éϰ󶨵½¿ÉÄܵÄÓû§²Ù×÷µÄ¹«¹²·½·¨¡£
ÈçºÎʹ¿ØÖÆÆ÷ÖªµÀÒ³ÃæµÄ״̬£¬ÒÔ¼°ÈçºÎÉú³ÉÐÂÊÓͼ£¿Óû§µ¥»÷°´Å¥ÇÒ ASP.NET ÔËÐÐʱ½ÓÊÕµ½ÏàÓ¦µÄ HTTP ÇëÇó²¢¶ÔÆä½øÐд¦Àíºó£¬ÏµÍ³»áÔÚ·þÎñÆ÷Éϵ÷Óà Button1_Click¡£Button1_Click ·½·¨ÓÉ´Ó System.Web.UI.Page ÅÉÉúµÄÀ๫¿ª¡£´ËÀà¿ÉÒÔ·ÃÎÊ UI ¿Ø¼þ¡£
ÏÂÃæ¶Ôʹ¿ØÖÆÆ÷¿ÉÒÔ·ÃÎÊÒ³ÃæÖеÄÈÎÒ»¹«¹²ÔªËصĿØÖÆÆ÷µÄÇ©Ãû×öÁ˼òµ¥µÄ¸ü¸Ä£º
void Button1_Click(object sender, EventArgs e)
{
// Static method bound to the user action
ThisPageController controller = new ThisPageController(this);
controller.Button1Clicked();
} |
¿ØÖÆÆ÷Ç©ÃûÏÖÔÚ¿ÉÒÔ½ÓÊÕ¶Ôµ±Ç° ASP.NET Ò³ÃæµÄÒýÓ㬼´ÊÓͼ¡£¿ØÖÆÆ÷·½·¨Ö´ÐÐÆäÈÎÎñ£¬È»ºó½ö¸üзþÎñÆ÷¿Ø¼þ¡£ASP.NET µÄ±ê×¼Ò³ÃæÉúÃüÖÜÆÚ½«Íê³ÉÆäÓà²Ù×÷²¢Îªä¯ÀÀÆ÷Éú³É HTML¡£
Ò³ÃæÉúÃüÖÜÆÚ
ͼ 1 ÏÔʾÁËÒ³ÃæÉúÃüÖÜÆÚÖеÄÖ÷Òª²½Öè¡£Ö»Òª ASP.NET ÇëÇóµ½´ï Web ·þÎñÆ÷²¢ÕÒµ½¶ÔÆä½øÐд¦ÀíµÄ HTTP ´¦Àí³ÌÐòºó£¬¾Í»áÖ´ÐÐͼÖнéÉܵIJ½Öè¡£Äú¿ÉÒÔ¿´µ½£¬¼òµ¥µÄ°´Å¥µ¥»÷²Ù×÷µÄ´úÂëÖ»ÊÇÕû¸ö ASP.NET »ù´¡½á¹¹µÄһС²¿·Ö¡£ÉÔºóÄú»á¿´µ½£¬Ò³ÃæÉúÃüÖÜÆÚ½öÊÇ ASP.NET ÔËÐÐʱΪÁË´¦Àíÿ¸öÇëÇóËùÖ´ÐеIJÙ×÷µÄÒ»²¿·Ö¡£

ͼ 1 ASP.NET Ò³ÃæÉúÃüÖÜÆÚ
ÔÚÖ´ÐÐ Button1_Click ÖеĴúÂëǰ£¬ASP.NET ÔËÐÐʱ»á´´½¨Ò»¸ö Page ÀàµÄʵÀý£¬ÒÔ±£´æÇëÇóµÄ URL µÄÔ¤ÆÚÐÐΪ¡£´Ë Page Àà°´ÕÕͼ 1 ÖеIJ½Öè´¦ÀíÇëÇ󣬲¢ÔÚÊʵ±µÄʱºòʹÓÃÄúµÄʼþ´¦Àí³ÌÐò¡£
ÔÚ¿ØÖÆÆ÷ÀàÖÐµÄ Button1Clicked ·½·¨ÖУ¬ÄúÓ¦¸ÃÄܹ»ÀûÓÃÔÚ´¿´úÂëÒþ²ØÊ¼þ´¦Àí³ÌÐòÖÐʹÓõÄͬһÓï·¨·ÃÎÊÒ³ÃæÖеÄÈκοؼþ¡£µ«ÒýÓà UI ¿Ø¼þ£¨¼ÙÉèÊÇ TextBox1£©µÄ³ÉÔ±²»ÊÇ Page ÀàÉϵĹ«¹²³ÉÔ±£¬ÄúÈçºÎʹ¿ØÖÆÆ÷¿ÉÒÔ·ÃÎÊËüÃÇ£¿Äú¿ÉÒÔÔÚ´úÂëÒþ²ØÀàÉÏʵÏÖÒ»¸ö×Ô¶¨Òå½Ó¿Ú£¬Ê¹Æä°üº¬ÄúÒªÔÚ¿ØÖÆÆ÷ÖвÙ×÷µÄ UI ¿Ø¼þµÄ¹«¹²ÊôÐÔ¡£ÏÂÃæÊÇÒ»¸öʾÀý£º
public interface IThisPageView
{
TextBox TextBox1Property;
...
}
// In the codebehind class
public TextBox TextBox1Property
{
get {return TextBox1;}
} |
ͼ 2 ÌṩÁËÒ»¸öʾÀý¿ØÖÆÆ÷µÄʾÀý¡£ÔÚ Button1Clicked ÖУ¬Äú¿ÉÒÔ½øÐг£¹æµÄ ASP.NET Web ´°Ìå±à³Ì£¬²¢ÇÒÖ»Ðèͨ¹ý¸üзþÎñÆ÷¿Ø¼þµÄ״̬¼´¿ÉÈ·¶¨ÏÂÒ»ÊÓͼ¡£ÏÖÔÚ£¬Ò³ÃæÂß¼·â×°ÔÚÒ»¸öµ¥¶ÀµÄÀàÖУ¬´ËÀà¿ÉÍÑÀëÒ³Ãæ½øÐпª·¢¡£
ͼ 2 ×÷ÎªÒ³Ãæ¿ØÖÆÆ÷µÄʾÀýÀà
public class ThisPageController
{
protected IThisPageView thePage;
public ThisPageController(IThisPageView page)
{
thePage = page;
}
public void Button1Clicked()
{
// Get the text currently stored in control TextBox1
string text = thePage.TextBox1Property.Text;
// Do something: i.e., turn to upper case
string newText = text.ToUpper();
// Update the text in control TextBox1
_thePage.TextBox1Property.Text = newText;
}
} |
µ«ÊÇ£¬´Ë½â¾ö·½°¸ÈÔÓëÒ³ÃæÖеĿؼþ½ôÃÜñîºÏ¡£ÈÃÎÒÃÇ¿´Ò»ÏÂ¶Ô Model-View-Presenter (MVP) ģʽµÄÓÅ»¯¡£ÎÒ»á¼òµ¥»Ø¹ËһϠMVC ºÍ MVP ģʽµÄ»ù´¡ÖªÊ¶¡£
Ôʼ MVC ģʽ
MVC ģʽµÄ·¢Ã÷Ҫ׷Ëݵ½ 1979 Ä꣬µ±Ê±½«¸Ãģʽ×÷ΪһÖÖÔ¶ÀëÈ«ÄÜ¡¢×ÔÖÎǰ¶ËµÄ·½·¨¡£×ÔÖÎÊÓͼÊÇÒ»¸öÀ࣬¿ÉÏÔʾĿ¼¡¢Î¬»¤ÊÓͼµÄ״̬ÐÅÏ¢£¬²¢ÕûºÏÁËÕû¸öÂß¼¿ÉÒÔʼÖÕ´¦ÀíÈκÎÓû§²Ù×÷¡£
´Ë´úÂë¶ÎΪ×ÔÖÎÊÓͼµì¶¨ÁË»ù´¡£º
void Button1_Click(object sender, EventArgs e)
{
// Perform any required action. All the code you
// need to handle the event goes here. A page
// built in this way is an autonomous view.
// MVC fights autonomous views.
} |
ʹÓÃÕâÑùµÄÕûÌ廯ÊÓͼ£¬Äú¼¸ºõÎÞ·¨¹¹½¨¶ÀÁ¢ÓÚ»ù´¡²ãµÄ¿É²âÊÔ±íʾ²ã¡£Ó¦ÓùØ×¢µã·ÖÀë (SoC) µÄ¸ÅÄî¿É°ïÖúÄú»ñÈ¡ÈÎÒ»×é¼þµÄµÍ¼¶ñîºÏºÍ¸ß¶È¾ÛºÏµÄÕýÈ·×éºÏ£¬ÒòΪËüʹÄú¿ÉÒÔ½«¸÷ÖÖ¹¦Äܱ£ÁôÔÚÆä¸÷×ԵIJãÖУ¬¶ø²»Êǽ«ËüÃÇ»ìºÏµ½Ò»Æð¡£Æä´Î£¬Ó¦Óà SoC£¬¿ÉÒÔ¸üÇáËɵØÊµÏÖµ¼º½¹¤×÷Á÷ÒÔÈ·¶¨½ÓÏÂÀ´ÏÔʾµÄÒ³Ãæ¡£
ͨ¹ýÁª»ú·½Ê½¿ÉÒÔÔĶÁÕâÆª½éÉÜ MVC ·½·¨µÄÔ´´×÷Æ·¡°ÈçºÎʹÓÃÄ£ÐÍ-ÊÓͼ-¿ØÖÆÆ÷¡±¡£Èç¹ûÄúÉÐδÔĶÁ´ËÎÄÕ£¬ÎÒ½¨ÒéÄúÎÞÂÛÊÇ·ñÊìϤ MVC ÔÀí£¬¶¼Òª¿´¿´ÕâÆªÎÄÕ¡£ÏÖÔÚ£¬MVC ±»ÈÏΪÊǹ¹½¨±íʾ²ãµÄÒ»ÖÖģʽ£¬µ«ÊÇËüÆð³õÊÇÓÃÀ´¹¹½¨ÍêÕûÓ¦ÓóÌÐòµÄ£¬´ÓÕâ¸ö½Ç¶È¿ÉÒÔ°ïÖúÄúÀí½â MVC¡£
MVC ģʽµÄ¶¨Òå²¢²»ÑϽ÷£¬Òò´Ëʵʩϸ½ÚʱºÜ¶àµØ·½¶¼ÐèÒª¼Ü¹¹Ê¦×ÔÐÐÕå×á£ÕâÒ²ÐíÊÇΪʲô»á´æÔÚÕâô¶à MVC ±äÌåµÄÔÒò¡£
MVC ½«Ó¦ÓóÌÐò²ð·ÖΪÈý²¿·Ö£ºÄ£ÐÍ¡¢ÊÓͼºÍ¿ØÖÆÆ÷¡£Ä£ÐÍÒýÓÃÓ¦ÓóÌÐòÊý¾Ý£¬¹ÜÀíÓ¦ÓóÌÐòµÄ¹¦Äܲ¢Í¨Öª×´Ì¬ÊÓͼµÄ¸ü¸Ä¡£ÊÓͼ¸ºÔðÒªÏòÓû§ÏÔʾµÄÄÚÈÝ¡£×îºó£¬¿ØÖÆÆ÷½«Óû§²Ù×÷Ó³É䵽ģÐÍÉϵIJÙ×÷£¬È»ºó¸üе±Ç°ÊÓͼ»òÑ¡ÔñÏÂÒ»ÊÓͼ¡£ÕâÈý¸ö²¿·Öͨ³£³ÆÎª MVC µÄÈý²ã¼Ü¹¹¡£Í¼ 3 ÒÔͼÐη½Ê½ÏÔʾÁË×ÔÖÎÊÓͼºÍ MVC Ó¦ÓóÌÐòµÄ±È½Ï½á¹û¡£

ͼ 3 ´Ó×ÔÖÎÊÓͼµ½ MVC
ÔÚ MVC ÖУ¬Óû§ÓëÊÓͼ½»»¥£¬È»ºóÊÓͼ²¶»ñ²Ù×÷£¨Èç°´Å¥µ¥»÷£©²¢½«Æäת·¢¸ø¿ØÖÆÆ÷¡£¿ØÖÆÆ÷È·¶¨ÒªÖ´ÐеIJÙ×÷²¢Í¨¹ýÓëÄ£Ðͽ»»¥À´Ö´ÐиòÙ×÷¡£´ËÄ£ÐÍʵ¼ÊÉϾÍÊÇÒµÎñ²ã¼ÓÉÏһЩ¶îÍâµÄ¹¦ÄÜ¡£ÌرðÊÇ£¬Ä£ÐÍ»á֪ͨÊÓͼ¸üРUI ʱ¿ÉÄÜÐèÒªµÄ¸ü¸Ä¡£
ËäȻģÐͲ»Á˽âÊÓͼµÄÈκÎÏêϸÐÅÏ¢£¬µ«ÊÇÄ£ÐͺÍÊÓͼ֮¼ä´æÔÚ¡°¹Û²ìÕß¡±¹ØÏµ¡£»»¾ä»°Ëµ£¬ÊÓͼ±£Áô¶ÔÄ£Ð͵ÄÒýÓò¢½«Æä×ÔÉí×¢²áµ½Ä£ÐÍÒÔ½ÓÊÕ¸ü¸Ä֪ͨ¡£½ÓÊÕµ½Í¨Öªºó£¬ÊÓͼ½«´ÓÄ£ÐÍÖлñÈ¡ÐÂÊý¾Ý²¢¶Ô UI ½øÐиüС£Í¼ 4 ÑÝʾÁË MVC ½»»¥µÄ˳Ðòͼ¡£Çë×¢Ò⣬ÔÚһЩ MVC ʵÏÖÖУ¬ÓÉ¿ØÖÆÆ÷֪ͨÊÓͼËù×öµÄ¸ü¸Ä¡£

ͼ 4 ±ê×¼ MVC ½»»¥
Model2£ºMVC µÄ Web ±äÌå
Éè¼Æ MVC µÄ³õÖÔÊÇÃæÏò×ÀÃæÓ¦ÓóÌÐò£¬µ«ÊÇÓÉÓÚÆäÉè¼Æ±È½ÏËÉÉ¢£¬Òò´Ë±»ÉÔ¼ÓÐÞ¸ÄÓ¦Óõ½ÁË Web ÉÏ¡£³£ÓÃµÄ MVC ģʽµÄ Web ±äÌåÊÇ Model2¡£Model2 ÊÇÏÖÔÚµÄ ASP.NET MVC Framework ʹÓõÄģʽµÄÔøÓÃÃû¡£
Model2 ģʽͨ¹ýä¯ÀÀÆ÷ÏòÓû§ÏÔʾÊÓͼ¡£Óû§²Ù×÷ÓÉä¯ÀÀÆ÷²¶»ñ£¬È»ºóת»»ÎªÐ嵀 HTTP ÇëÇó¡£Í¨¹ýÕâÖÖ·½Ê½£¬ÇëÇó´Óä¯ÀÀÆ÷´«µ½ Web ·þÎñÆ÷ÖеÄÌØ¶¨×é¼þ£¨³ÆÎªÇ°¶Ë¿ØÖÆÆ÷£©¡£Ç°¶Ë¿ØÖÆÆ÷е÷¶Ô Web Ó¦ÓóÌÐòÌá³öµÄËùÓÐÇëÇó¡£
ÔÚ ASP.NET ÖУ¬´Ëǰ¶Ë¿ØÖÆÆ÷²ÉÓà URL ·ÓÉ HTTP Ä£¿éÕâÖÖÐÎʽ¡£HTTP Ä£¿é²¶»ñÇëÇó£¬È»ºó½«Æä·Óɵ½ÏàÓ¦µÄ¿ØÖÆÆ÷ÒÔÖ´ÐÐÇëÇó²Ù×÷¡£·µ»Ø²Ù×÷·½·¨ºó£¬¿ØÖÆÆ÷½«¶ÔÊÓͼ½øÐÐÅÅÐòÒÔˢв¢ÎªÐ UI ´«µÝÐÂÊý¾Ý¡£ÊÓͼÊä³ö±»Ç°¶Ë¿ØÖÆÆ÷ HTTP Ä£¿é²¶»ñ£¬È»ºó·¢ËÍ»Øä¯ÀÀÆ÷¡£
ͼ 5 ÏÔʾµäÐÍ Model2 ½»»¥µÄ˳Ðòͼ¡£ÄúÓ¦¸Ã×¢Òâµ½´ËͼÖнö°üº¬³£¹æ²½Öè¡£ÀýÈ磬ÔÚ¸ÃģʽµÄ ASP.NET MVC ʵÏÖÖУ¬URL ·ÓÉ×é¼þ³ýʹÓÿØÖÆÆ÷Í⣬»¹Ö´ÐÐÆäËûһЩÈÎÎñ¡£

ͼ 5 ASP.NET MVC Framework ÖÐµÄ Model2 ½»»¥
Ôʼ MVC ºÍ Model2 ÓÐЩ²î±ð¡£Äú¿ÉÒÔ¿´µ½£¬ÊÓͼºÍÄ£ÐÍÖ®¼äûÓÐÈκÎÁªÏµ£¬¶øÔÚÇ°ÃæÌáµ½µÄ MVC ÔʼÉè¼ÆÖÐÁ½Õ߼䴿ÔÚ¡°¹Û²ìÕß¡±¹ØÏµ¡£Óû§²Ù×÷Ò²²»ÊÇÓÉÊÓͼÀ´²¶»ñºÍ´¦Àí¡£¿ØÖÆÆ÷³ÊÏÖÊÓͼ²¢ÏòÆäÏÔʽ´«µÝÏÔʾÊý¾Ý¡£
ÔÚ ASP.NET ÖУ¬µ±Ìá¼° MVC ʱ£¬Ó¦¸ÃÖ¸¶¨Ëù˵µÄÊÇ Model2 »¹ÊÇÊÖ¶¯ÊµÏÖµÄ MVC£¬±¾×¨À¸¿ªÊ¼Ôø¼òÒª½éÉܹý´ËÄÚÈÝ¡££¨Èç¹ûÏ£ÍûÁ˽â¸ü¶àÐÅÏ¢£¬ÇëÔĶÁ¡¶MSDN ÔÓÖ¾¡·ÉϵÄÎÄÕ ASP.NET MVC Framework¡£
ASP.NET MVC Framework ºÍÊÖ¶¯ MVC
ΪÁËʹÿ¸öÒ³Ãæ£¨»òÒ»×éÒ³Ãæ£©¶¼ÓµÓÐÒ»¸ö¿ØÖÆÆ÷À࣬ʹÓà ASP.NET MVC Framework ºÍÊÖ¶¯ÊµÏÖ MVC ģʽÕâÁ½ÖÖ·½·¨ÓÐÊ²Ã´Çø±ðÂð£¿ÔÚ SoC ·½Ã棬ÎÒûÓз¢ÏÖÈκÎÏÔÖø²î±ð¡£ÔÚÒÔÉÏÁ½ÖÖÇé¿öÏ£¬Äú¶¼ÓÐÒ»¸öÍêÈ«¶ÀÁ¢ÓÚÊÓͼºÍ´ú±íÒµÎñ²ã»ò·þÎñ²ãÍø¹ØµÄÄ£Ð͵ĿØÖÆÆ÷Àà¡£
ÔڿɲâÊÔÐÔ·½Ã棬Model2 ģʽҪÓÅÓÚ MVC ģʽµÄÔʼÉè¼Æ£¬ÒòΪǰÕß³öÉ«µØÇ¿ÖÆ·Ö¿ªÁËÊÓͼºÍÄ£ÐÍ£¬ÇÒÊÓͼ·Ç³£¾«¼ò£¬½öÕâÒ»¸ö·½Ãæ¾Í¿ÉÒÔÓÐЧµØ²âÊÔΪ ASP.NET MVC Framework ±àдµÄ´úÂë¡£´ËÍ⣬ÔÚ Model2 ÖÐÓÐÒ»ÖÖ¿ÉÔÚÊÓͼºÍ¿ØÖÆÆ÷Ö®¼ä½¨Á¢µÄ²»ÑϸñµÄÔ¼¶¨¡£ÔÚ ASP.NET MVC Framework ÖУ¬´ËÔ¼¶¨ÓÉ ViewData ÈÝÆ÷¶ÔÏó»òÊÓͼÀàµÄ ViewPage<T> »ùÀà±íʾ£¬ÆäÖкóÕß±íʾЧ¹û¸üºÃ¡£
Óë ASP.NET Web ´°ÌåÏà±È£¬Model2 ʵÏÖÖ´ÐÐÇëÇó²Ù×÷µÄËٶȸü¿ì¡£ÔÚ Model2 ʵÏÖÖУ¬ÄúÖ»ÐèÒªÒ»¸öÓÃÀ´´¦Àí HTTP ÇëÇóºÍµ÷ÓÿØÖÆÆ÷µÄ×é¼þ£¬ÎÞÐ趯̬´´½¨Ò³ÃæÀࣻ²éÕÒ¿ØÖÆÆ÷ÒÀ¾ÝµÄËã·¨Óë Web ´°Ìå·½°¸ÖвéÕÒ HTTP ´¦Àí³ÌÐòÏà±È¼òµ¥µÃ¶à£»Í¬Ñù£¬ÄúÒ²²»ÐèҪʹÓÃÒ³ÃæÉúÃüÖÜÆÚ¡¢ÊÓͼ״̬»ò·þÎñÆ÷¿Ø¼þ¡£ÔÚ Model2 ʵÏÖÖУ¬Èç ASP.NET MVC Framework£¬Äú»áÓµÓÐÒ»¸ö¸üÁé»îµÄÔËÐÐʱ»·¾³¡£½ÓÏÂÀ´ÎÒÃǽ«½øÒ»²½Ì½ÌÖ´ËÄÚÈÝ¡£
ÔÚͨ¹ý Web ´°Ìå±à³ÌÄ£ÐÍʵʩµÄ MVC ·½°¸ÖУ¬ËùÓÐÓû§²Ù×÷¾ùÔ´ÓÚ HTTP ·¢²¼¡£Web ·þÎñÆ÷²¶»ñÕâЩÇëÇó£¬È»ºó½«ÆäÓ³Éäµ½ Page Àà¡£Page ÀàÀú¾ÆäÕû¸öÉúÃüÖÜÆÚ£¬Èçͼ 1 Ëùʾ¡£È»ºó£¬Page ÀàÕÒµ½ÕýÈ·µÄ¿ØÖÆÆ÷²¢µ÷ÓÃÒ»ÖÖ·½·¨¡£Ö´Ðд˷½·¨»áÐÞ¸ÄÄ£ÐÍ¡£ÆäÓàµÄÒ³ÃæÉúÃüÖÜÆÚÉæ¼°µ½Ë¢ÐÂÊÓͼ¡£
ÔÚʹÓà ASP.NET MVC Framework ʵʩµÄ Model2 ·½°¸ÖУ¬Éú³ÉÏÂÒ»¸öÊÓͼµÄ¹ý³Ì¸ü¼òµ¥¡£URL ·ÓÉÄ£¿é½âÎö URL£¬²¢¸ù¾Ý URL È·¶¨ÒªÊ¹ÓõĿØÖÆÆ÷£¬È»ºóÔÚËùÑ¡µÄ¿ØÖÆÆ÷Éϵ÷ÓòÙ×÷£¬¸Ã¿ØÖÆÆ÷ΪÐÂÊÓͼÊÕ¼¯ÐÂÊý¾Ý²¢´«µÝ´ËÐÅÏ¢¡£¸ÃÊÓͼÊÕ¼¯Ëæºó×÷Ϊ¶Ô²¶»ñÇëÇóµÄÏìÓ¦·µ»Øµ½ä¯ÀÀÆ÷µÄ HTML¡£´ËÊÓͼÊDZ»¶¯Ö÷Ì⣬ʵ¼ÊÉϲ»ÐèÒª½øÐвâÊÔ¡£µ«ÊÇ£¬ÄúÐèÒª¶Ô¿ØÖÆÆ÷½øÐÐÖØµã²âÊÔ¡£
Model2 ÊǸÄÉÆÓ¦ÓóÌÐò¿É²âÊÔÐÔµÄÓÅÏÈÑ¡Ôñ¡£µ«ÊÇ£¬Èç¹ûÄúÈÔÐèÒª Web ´°ÌåÔËÐÐʱ»·¾³À´Ö§³Ö»á»°¡¢»º´æ¡¢·þÎñÆ÷¿Ø¼þÉõÖÁÊÓͼ״̬£¨Ëæ MVC ģʽһÆðÌṩ£©£¬¸ÃÔõô°ì£¿ÕâÊÇ·ñÒâζ×ÅÄú²»µÃ²»·ÅÆú SoC ºÍ¿É²âÊÔÐÔ£¿µ±È»²»ÊÇ¡£Äú¿ÉÒÔÑ¡ÔñʹÓÃÎÒÔÚ¿ªÊ¼Ìáµ½µÄ MVC µÄÁíÒ»±äÌå ¡ª MVP ģʽ¡£ËüÊÊÓÃÓÚ Web Ó¦ÓóÌÐò£¬ÇÒ²»ÐèÒªÁÙʱÔËÐÐʱ¡£
MVP ģʽ
MVC µÄÔʼÉè¼ÆÓÐÒ»¸öÖØÒªÈ±ÏÝ£º¸üÐÂÊÓͼµÄ»úÖÆ¡£ÄúÔÚͼ 4 Öп´µ½µÄÐÅÏ¢Á÷ÏÔʾÊÓͼ½«Óû§²Ù×÷´«Ë͵½¿ØÖÆÆ÷£¬¶ø´ÓÄ£ÐͽÓÊÕ¸ü¸Ä֪ͨ¡£½ÓÏÂÀ´£¬ÊÓͼÐèÒªÍêÈ«Á˽âÄ£ÐͲÅÄÜ»ñÈ¡¸üеÄÊý¾ÝÒÔ¼°½øÐÐˢС£MVP ÊÇ MVC µÄ±äÌ壬Äܹ»¸üÇåÎúµØ·ÖÀëÈý²ã¼Ü¹¹ÖеÄÿ¸öÔªËØ¡£Í¼ 6 ÏÔʾÁË MVP Ä£ÐÍÖи÷²¿·ÖÖ®¼äµÄµäÐͽ»»¥¡£

ͼ 6 ÔËÐÐÖÐµÄ MVP ģʽ
ÔÚ MVP ÖУ¬ÊÓͼ½«Óû§ÊäÈëת·¢¸ø±íʾÆ÷£¬È»ºó´Ó±íʾÆ÷½ÓÊÕÐÂÊý¾ÝÒÔ½øÐиüС£·´¹ýÀ´£¬±íʾÆ÷ͨ¹ýÓëÄ£Ðͽ»»¥À´´¦ÀíÇëÇó¡£
ÔÚÔʼ MVC ÖУ¬Ã»ÓÐÈκÎÃ÷È·Ô¼¶¨¹æ¶¨ÊÓͼÐèÒªÄÄЩÊý¾Ý¡£ÔÚ MVC ÖУ¬ÊÓͼ±£Áô¶ÔÄ£Ð͵ÄÒýÓò¢ÔËÐÐÆä×Ô¼ºµÄÂß¼À´Ñ¡ÔñËùÐèÊý¾Ý£¬È»ºó½«ÆäÌí¼Óµ½ UI ÔªËØ¡£ÓÐÁËÕâ¸öÂß¼£¬ÊÓͼ²»ÏñÆäÔÚ½øÐвâÊÔʱÄÇÑù±»¶¯ÁË¡£´ËÍ⣬ÊÓͼÔÚijÖ̶ֳÈÉÏÒÀÀµ»ù´¡ UI ƽ̨¡£
ÔÚ MVP ÖУ¬±íʾÆ÷ʵ¼ÊÉÏÊÇ×îÖÕÓû§ºÍÓ¦ÓóÌÐòÖ®¼äµÄÖн顣±íʾÆ÷¿ÉÒÔ³ÊÏÖÊÓͼ²¢ÓëÄ£Ðͽ»»¥£¬Òò´Ë£¬´ó²¿·Ö±íʾÂ߼λÓÚ±íʾÆ÷ÖС£ÓÉÓÚ±íʾÆ÷Ö»ÊÇÒ»¸öÆÕͨÀ࣬²»°üº¬ÈκΠUI£¬Òò´Ë´Ó±¾ÖÊÉÏÀ´Ëµ£¬ËüÊÇÒ»¸ö¿É²âÊÔÐÔ¸ü¸ßµÄÀà¡£Äú¿ÉÒÔÔÚ 2006 Äê 8 Ô³ö°æµÄ¡¶MSDN ÔÓÖ¾¡·Öеġ°Éè¼ÆÄ£Ê½¡±×¨À¸Öп´µ½ÈçºÎÔÚ ASP.NET ÖÐʵ¼Êʵʩ MVP ģʽ¡£MVP ÓÉ Microsoft Web ¿Í»§¶ËÈí¼þ¹¤³§Ìṩ±¾»úÖ§³Ö£¬ºóÕßÊÇÒ»¸öÓë ASP.NET Ïà¹ØµÄÓ¦ÓóÌÐò¿éµÄ¼¯ºÏ¡£MSDN ÖÐÌṩÁË MVP ¿ìËÙÈëÃÅ¡£
MVP ÊÇÒ»¸öͨÓÃµÄ UI ģʽ£¬Óë Model2 ²»Í¬Ö®´¦ÔÚÓÚËü²¢²»×¨ÓÃÓÚ Web£¬µ« Model2 (ASP.NET MVC Framework) ºÍ MVP »ù±¾ÉÏÊÇÏàͬµÄ¡£ÓÐȤµÄÊÇ£¬ÕâÁ½¸öģʽ×î³õ¶¼²»ÊÇÉè¼ÆÎªÍ¨ÓÃģʽ¡£
´Ó¼¼Êõ²ãÃæÀ´½²£¬Model2 ºÍ MVP Ö®¼äÖ»ÓÐÒ»µã²»Í¬£º¿ØÖÆÆ÷£¨ÔÚ MVP ÖгÆÎª±íʾÆ÷£©ºÍÊÓͼ֮¼äµÄÔ¼¶¨¡£Model2 ÖжÔÔ¼¶¨µÄ¶¨ÒåÇ·ÑϽ÷£¬¶ø MVP Öе͍Òå±È½ÏÕý¹æ¡£
ÔÚ MVP ÖУ¬ÊÓͼʵÏÖÒ»¸ö½çÃæ£¬±íʾÆ÷½öʹÓøýçÃæÉϵijÉÔ±ÓëÊÓͼ½øÐн»»¥¡£Òò´Ë£¬ÀýÈç±íʾÆ÷ʹÓýçÃæÖеķ½·¨ºÍ getter ¶ÁÈ¡ÊÓͼÖеÄÊäÈëÊý¾Ý£¬²¢Ê¹ÓýçÃæÖеķ½·¨ºÍ/»ò setter ÉèÖÃÊÓͼµÄÐÂÖµ¡£ÔÚ Model2 ÖУ¬ÔòʹÓÃÇ¿ÀàÐÍ»¯µÄÈÝÆ÷¡£
ͨ¹ýʹÓà MVP£¬±íʾÂß¼¿ÉÒÔ¶ÀÁ¢ÓÚ UI ƽ̨´æÔÚ£¬ÕâÑùÔÚ²»Í¬µÄƽ̨¼äÖØ¸´Ê¹ÓÃÏàͬµÄ±íʾÆ÷»á¸üÈÝÒס£´ËÍ⣬ÏàͬµÄ±íʾÆ÷¿ÉÒÔ´¦ÀíͬһӦÓóÌÐòÖеIJ»Í¬µÄÊÓͼ£¬Òò´Ë¿ÉÆôÓÃÈí¼þ¼´·þÎñ (SaaS) ·½°¸¡£×îºó£¬ÀûÓà MVP£¬Äú»¹»ñµÃÁËÒ»¸ö×é¼þ£¨±íʾÆ÷£©£¬ÆäÖпÉÄÜ´æ´¢ÁËһЩÂß¼¿ÉÔÚÒ³Ãæ¼äµ¼º½¡£ÊÇÔÚÄÚ²¿ÊµÏÖÂß¼»¹ÊÇʹÓà Windows Workflow Foundation (WF) ×é¼þÈ¡¾öÓÚÄú×Ô¼ºµÄÒâÔ¸¡£
Ò³Ãæ¿ØÖÆÆ÷ģʽ
MVC¡¢ Model2 ºÍ MVP ÊÇ ASP.NET ÔËÐÐʱÉè¼ÆµÄÍⲿģʽ¡£ASP.NET µÄ Web ´°Ìå±à³ÌÄ£ÐÍ»ùÓÚÁíÒ»ÖÖÉè¼ÆÄ£Ê½£¬¼´Ò³Ãæ¿ØÖÆÆ÷ģʽ¡£Ò³Ãæ¿ØÖÆÆ÷ģʽҪÇó´´½¨ºËÐĶÔÏ󣨶¯Ì¬´´½¨µÄ´Ó´úÂëÒþ²ØÀà¼Ì³ÐµÄÀࣩ£¬¸ÃºËÐĶÔÏó¿ÉÒÔ´¦ÀíËùÓÐÖ¸ÏòÌØ¶¨ÍøÒ³µÄ HTTP ÇëÇó£¨Çë²Î¼ûͼ 7£©¡£

ͼ 7 Ò³Ãæ¿ØÖÆÆ÷½á¹¹
Èç¹û×Ô¶¨Òå´Ëģʽ£¬Äú¿ÉÄÜ»áÒòΪÔÚÒ³Ãæ¼äÖØ¸´Ê¹ÓÃÂß¼£¨°üÀ¨µ¼º½Âß¼£©¶øÊÜÒæ¡£Ö»Ðèͨ¹ý´´½¨ Page ÀàµÄ²ã´Î½á¹¹È»ºó½«µ¼º½Âß¼ºÍ±íʾÂß¼ºÏ²¢µ½²ã´Î½á¹¹½Ï¸ßµÄÀàÖУ¬ÒÔʹ¸ÃÂß¼¿É¹©ÅÉÉúÀàʹÓ㬼´¿É×Ô¶¨Òå¸Ãģʽ¡£×Ô¶¨ÒåÒ³Ãæ¿ØÖÆÆ÷ÊÇÒ»¸öÓÐЧµÄ·½Ê½£¬¿ÉÒÔÌá¸ß±íʾÂß¼ºÍµ¼º½Âß¼µÄ¿ÉÖØÓÃÐÔ£¬¶øÎÞÐèÇл»µ½Ò»ÖÖȫеÄģʽ¡£
Ó¦Óà MVP ʵ¼ÊÉÏÒâζ×Åͨ¹ýʵÏÖ Page ÀàÉϵĽӿڲ¢Ê¹ÓÃÒ»¸öµ¥¶ÀµÄ×é¼þ£¨±íʾÆ÷£©´¦ÀíÓû§²Ù×÷£¬ÒÔÆäËû·½Ê½À´Éè¼ÆÒ³ÃæµÄ´úÂëÒþ²ØÀà¡£²»»á¶ÔÔËÐÐʱ»·¾³½øÐÐÈκθü¸Ä£¬ÒòΪÇëÇó½«ÒÔ³£¹æ·½Ê½Â·ÓÉÖÁ´úÂëÒþ²ØÀà¡£
´´½¨ ASP.NET MVC Framework ÏîÄ¿Òâζ×ŶÔÔËÐÐʱ»·¾³½øÐиü¸ÄÒÔÆôÓÃǰ¶Ë¿ØÖÆÆ÷£¨URL ·ÓÉÄ£¿é£©£¬½ø¶ø¸ù¾Ý¿ØÖÆÆ÷ÉϵIJÙ×÷´¦ÀíÇëÇó¡£ÕâÁ½¸öÑ¡Ïî¶¼»á¶ÔÓ¦ÓóÌÐòµÄ¿ª·¢²úÉúÓ°Ïì¡£
µÚÒ»¸öҪȷ¶¨µÄÎÊÌâÊÇÊÇ·ñÐèÒªÊÓͼ״̬ºÍ·þÎñÆ÷¿Ø¼þ¡£ÔÚijЩÇé¿öÏ£¬Äú¿ÉÄܲ»ÏëʹÓÃÕâЩ¿Ø¼þ¡£ÀýÈ磬Èç¹ûûÓзþÎñÆ÷¿Ø¼þ£¬Ê¹Óà CSS ¶Ô UI ½øÐÐÑùʽÉè¼Æ»á¸ü¼òµ¥¡£ÔÚµ±Ç°Çé¿öÏ£¬Ê¹Óðüº¬·þÎñÆ÷¿Ø¼þµÄ AJAX ±ÈʹÓà ASP.NET MVC Framework ·½°¸¸ü¼òµ¥¡£µ«Èç¹ûûÓзḻµÄ·þÎñÆ÷¿Ø¼þ£¬ºÜÄѹ¹½¨°üº¬´óÁ¿Êý¾ÝÊäÈë»ò»ùÓÚ±íµÄ¸´ÔÓÊÓͼµÄÓ¦ÓóÌÐò¡£Òò´Ë£¬Ö÷ÒªÊÇÕÒµ½Ò»¸öƽºâµã¡£¹Ø¼üÎÊÌâÊÇÄúÊÇ·ñÐèÒª·þÎñÆ÷¿Ø¼þºÍÊÓͼ״̬¡£Õâ¸öÎÊÌâûÓÐÃ÷È·µÄ´ð°¸¡£
Èç¹ûÄú¾ö¶¨×îºÃ»¹ÊǼá³ÖʹÓà Web ´°Ì壬µ«ÈÔÏëż¶ûʹÓà SoC£¬Ôò¿ÉÒÔÑ¡ÔñʹÓà MVP¡£MVP ÊÇÒ»¸ö·Ç³£ÖØÒªµÄ UI ģʽ£¬ÔÚÏà¶Ô¼òµ¥µÄÓ¦ÓóÌÐòÖÐʵʩ¸Ãģʽ¿ÉÄÜÓÐЩÀË·Ñ¡£ÁíÒ»·½Ã棬ÔÚÆóÒµ¼¶Ó¦ÓóÌÐòʹÓà MVP Ч¹û·Ç³£ºÃ£¬ÒòΪ´ËʱÄúÕæÕýÐèÒªÔÚ¶à¸öƽ̨֮¼äºÍ SaaS ·½°¸ÖÐÖØ¸´Ê¹Óþ¡¿ÉÄܶàµÄ±íʾÂß¼¡£ |