فروم برنامه نویسی را در گوگل محبوب کنید :
نمایش نتایج: از 1 به 3 از 3
  1. #1
    Administrator
    تاریخ عضویت
    Sep 2010
    محل سکونت
    تهران
    نوشته ها
    230
    تشکر کردن
    24
    تشکر شده 140 بار در 77 پست

    MVC یا Model View Controller چیست ؟

    ASP.Net MVC چیست؟
    MVC یک روش مدرن و به روز برای معماری نرم افزار است. در این نوشته قصد دارم در حد دانش خودم درباره الگوی معماری نرم افزار به روش MVC توضیح بدهم و در ادامه اشاره ای به ASP.NET MVC خواهم داشت. طراحان نرم افزار هنگام معماری سیستم های نرم افزاری الگوهای مختلفی را برای پیاده سازی ساختار نرم افزار در پیش می گیرند. یکی از این الگوهای معماری نرم افزار MVC یا Model View Controller نام دارد. MVC نرم افزار را به سه قسمت Model و View و Controller تقسیم می کند. که هر کدام از این سه قسمت وظیفه خاصی را در چرخه حیات نرم افزار بازی می کنند.





    اگر به برنامه نویسی علاقمند هستید لطفا تا پایان این نوشته همراه من باشید.





    • Model
      مفاهیم استفاده شده در نرم افزار تحت عنوان Model ها ایجاد می شوند. در MVC هریک از Class های ما یک Model هستند. Model در Logic برنامه هیچ نقشی ندارد. ارتباط با پایگاه داده هم در Model صورت می گیرد و Model ها پل ارتباطی بین نرم افزار و پایگاه داده نیز هستند.
    • View
      View رابط کاربری نرم افزار است و می توان گفت فرم های نرم افزار و تمام چیزهایی که کاربر با آنها در ارتباط است تحت عنوان View در نرم افزار قرار می گیرد. View نیز هیچ نقشی در Logic نرم افزار ندارد و تنها پل ارتباطی بین کاربر و سایر بخش های نرم افزار است. تاکید می کنم که View هیچ تصمیم گیری انجام نمی دهد و فقط نمای بیرونی نرم افزار است.
    • Controller
      Controller ها قلب تپنده نرم افزارهای MVC هستند. تمام تصمیم گیری ها و Logic نرم افزار در Controller قرار می گیرد و Controller پل ارتباطی Model و View است. در واقع با بیانی ساده می توان گفت Controller تصمیم می گیرد که چه داده ای از کدام Model دریافت شود و جهت نمایش به کدام View ارسال شود.

    حالا این سوال به وجود می آید که چرا چنین ساختاری می تواند خوب باشد. چه کمکی به تیم طراحی و توسعه نرم افزار می کند؟ در پاسخ به این سوال می توان به چند دلیل زیر اشاره کرد:
    1. MVC توسعه نرم افزار را تبدیل به گلابی یا هولو می کند.
    2. MVC پروسه Unit testing را بسیار راحت می کند.
    3. MVC کار گروهی همزمان را برای تیم طراح و برنامه نویس آسان می کند.
    4. MVC با جدا سازی Logic از View و قرار دادن آن در Controller خوانایی کدها را بسیار بالا می برد.
    5. و مهم تر از همه اینکه MVC به شکل شگفت انگیزی حجم کد نویسی را کاهش می دهد.

    MVC در هر زبان برنامه نویسی قابل پیاده سازیست. حتی در جاوا اسکریپت. اما در حال حاضر از این روش بیشتر برای زبان های سمت سرور مثل PHP و ASP.Net استفاده می شود و در کل MVC یک روش بسیار کارا برای تیم های بزرگ تر است. هرچه تیم بزرگتری داشته باشید مزایای این الگو برای شما بیشتر ملموس خواهد بود. همچنین به تجربه می گویم MVC برای پیاده سازی پروژه های کوچک توصیه نمیشود و من استفاده از این روش در پروژه های کوچک را به استفاده از پتک برای کشتن پشه تشبیه می کنم.

    شروع ASP.Net و این سوال که ASP.Net Web Forms چیست؟

    ASP.Net با تولد خود یک روش متفاوت برای طراحی صفحات وب را ارائه کرد. یک Framework متفاوت با روش های استفاده شده در سایر زبان های سمت سرور. آن روزها اسم خاصی نداشت اما امروز به آن روش Web Forms میگوییم.
    ASP.Net Webforms بر خلاف ASP، PHP و … که معمول آنها کد نویسی میان کد های Markup است یک سری Component ارائه کرده و برنامه نویس برای ایجاد یک صفحه وب با کامپوننت ها کار می کند نه تگ های HTML. کار با داده ها هم بسیار آسان شده. همه چیز Data bind می شود. در واقع ما در Web Forms با Http Request و Http Response کمتر سرو کار داریم. و تمام اتکای ما به همان کامپوننت ها یا کنترل های سمت سرور ASP.Net Webforms است.
    این روش چند ضعف دارد:

    • اولین ضعف این روش این است که دست برنامه نویس و طراح در ایجاد رابط های کاربری ابدائی کاملا بسته است و برنامه نویس ناگزیر است با Interface از پیش تعیین شده .Net کار کند.


    • دومین ضعف ASP.Net Webforms یک موجودی است به نام Viewstate. از روی اسمش معلوم است که کار Viewstate چیست. کارش نگهداری آخرین state کاربر هنگام Post Back شدن صفحه است. همان طور که گفتم کنترل Request ها و Response ها از دست برنامه نویس خارج شده و خود ASP.Net Webforms نیز ارتباط بین صفحات ارسالی از سوی سرور را با Viewstate برقرار میکند. متاسفانه Viewstate که معمولا حجم بالایی دارد هر بار هنگام Response همراه محتوای صفحه به سمت کاربر ارسال می شود و هنگام ارسال Request بعدی به سمت سرور ارسال می شود. و این صفحات را بسیار سنگین تر می کند. البته می شود حجم Viewstate را با چند کار ساده کنترل کرد که برنامه نویس ها به علت تنبلی زیاد و یا عدم اطلاع از این تکنیک ها مرتب درگیر این مشکل هستند.
    • در برنامه های ساخته شده با Web Forms خبری از Pretty URLs نیست که بسیار مورد توجه و علاقه موتور جستجو ها است و این موضوع سال ها من رو حرص داده

    اما از مزیت های ASP.Net Web Forms:

    • Web Forms در واقع سرعت کد نویسی صفحات را خیلی زیاد می کنند. و واقعا بدرد آدم های کم حواس و تنبل می خورند. چون تقریبا همه کارهای سخت خودکار انجام می شود و برنامه نویس فقط به Logic برنامه اش فکر می کند.
    • در Web Forms یک سری Event برای هر کامپوننت و کنترل سمت سرور وجود دارد که برنامه نویسی صفحات وب را شبیه برنامه نویسی Desktop Application می کند که خیلی ساده تر از وب است.
    • Web Forms یک سری کامپوننت برای ارتباط با DB دارد که تا حد زیادی برنامه نویس را از شر دستورات SQL خلاص می کند.

    به اوج رسیدن قدرت ASP.Net با ورود ASP.Net MVC

    با ابداع روش MVC و ظهور Framework های مختلف بر پایه MVC تحت زبان های PHP و Java برنامه نویسان ASP.Net هم می خواستند از این روش در برنامه های خود استفاده کنند.
    اما Web Forms ساختار خودش را داشت و نمی شد MVC را با تمام خصوصیاتش در Web Forms پیاده سازی کرد. بنابر این مایکروسافت ASP.Net MVC را معرفی کرد. یعنی مایکروسافت به کتابخانه بزرگ .NET یک Namsespace جدید به نام System.web.mvc را اضافه کرد و کلاس هایی با نام Controller و View و Viewdata بوجود آورد.
    همچنین برای پیروی از قانون کلیدی MVC که “جدا سازی Logic از Data Validation” است در namespace به نام dataannotations روشی را برای Validation در Model ها ایجاد کرد که این روش برنامه نویس را از شر چک کردن تک تک فیلدهای فرم ها برای صحیح بودن داده های ورودی خلاص می کند.

    یک نمونه مثال ولی به زبان PHP :
    View:
    کد PHP:
    <form method="post">
        <?php echo (isset($message) ? $message ''); ?>
        Username: <input type="text" name="username" value="" />
        Password: <input type="password" name="password" value="" />
        <input type="submit" name="action" value="login" />
    </form>
    Model:
    کد PHP:
    Class myModel {
        public function 
    __construct() {
            
    $this->conn mysql_connect('localhost''root''');
            
    mysql_select_db('myDB');
        }
        
        public function 
    getRow($sql) {
            
    $query mysql_query($sql);
            return 
    mysql_fetch_assoc($query);
        }
        
        public function 
    escape($str) {
            return 
    mysql_real_escape_string($str);
        }


    Controller:
    کد PHP:
    include './model/myModel.php';
    $myModel = new myModel;

    if(isset(
    $_POST['action'])) {
        
        if(
    $_POST['action'] == 'login') {
            
    $username $myModel->escape($_POST['username']);
            
    $password $myModel->escape($_POST['password']);
            
    $password MD5($password);
            
            
    $response $myModel->getRow("
                SELECT * FROM users 
                WHERE
                    `username`='
    $username'
                    AND `password`='
    $password'
            "
    );
            
            if(
    $response == false) {
                
    $message 'Invalid Username or Password';
                
    $view './view/login-form.php';
                return include 
    $view;
            } else {
                
    // do something
            
    }
        }
        
        
        if(
    $_POST['action'] == 'something') {
            
    // do something
        
    }


    ویژگی های ASP.NET MVC
    - جداسازی وظایف برنامه کاربردی (منطق ورودی، منطق کاری و منطق واسط کاربری) و امکان تست کردن برنامه و طراحی و توسعه آزمون محور به صورت پیش فرض. تمام ارتباطات اصلی در MVC بر مبنای واسط است و می توان آن ها را با اشیای ساختگی Mick تست کرد. می توانید ک. نترلگرها را بدون اینکه آنها را در ASP.NET اجرا کنید، تست کنید و این باعث افزایش سرعت و انعطاف تست برنامه می شود. می توانید از هر فریم ورک تست که با فریم ورک Net. منطبق است برای این کار استفاده کنید.
    - فریم ورکی توسعه پذیر و قابل اتصال. اجزای اصلی ASP.NET MVC به گونه ای طراحی شده اندکه به راحتی جایگزین یا سفارشی شوند. می توانید به سادگی پیاده سازی های خودتان را جایگزین موتور نمایشگر، سیاست های آدرس، سریالی کردن پارامترهای متدهای عملیات یا سایر اجزا کنید. همچنین ASP.NET MVC از فریم ورک های تزریق وابستگی و وارونگی کنترل پشتیبانی می کند. به شما امکان می دهد به جای این که اشیا را توسط کلاس ها بسازید، آنها را از جایی بیرون از کد مثل فایل های تنظیمات بگیرید و این مسئله تست برنامه را ساده تر می کند.
    - نگاشت های قوی آدرس ها که امکان ساخت برنامه هایی با آدرس های با معنی و جستجو شدنی (قابل جستجو توسط موتورهای جستجوگر) را می دهدو نیازی نیست که آدرس ها پسوند فایل داشته باشند، آنها به گونه ای طراحی شده اند که از الگوهای نامگذاری قابل فهم برای موتورهای جستجوSEO و آدرس های انتقال وضعیت قابل نمایش REST پیروی کنند.
    - پشتیبانی برای استفاده از نشانه گذاری در صفحات ASP.NET(فایل های aspx). کنترل های کاربر (فایل های ascx.) صفحات Master(با پسوند master.) به عنوان قالب های نمایشگر. شما می توانید از برخی ویژگی های موجودASP.NET از قبیل صفحات master تو در تو، اسکریپت درونی (<%=%>)، کنترل های سرور اعلان شده، قالب، انقیاد داده ها، محلی سازی و … در فریم ورک ASP.NET MVC استفاده کنید.
    - پشتیبانی از ویژکی های موجود ASP.NET : ASP.NET MVC به ما این امکان را می دهد تا از ویژگی هایی مانند مجوز فرم و تشخیص هویت ویندوز، مجوز آدرس ها، عضویت و نقش ها، خروجی و کش کردن داده ها و Session و مدیریت وضعیت پروفایل، مانیتور کردن صحیح، سیستم پیکر بندی و معماری عرضه کننده استفاده کنید.



    نجات یک انسان همانند نجات تمام بشریت است (قرآن مجید)
    ایمیل سفارش پروژه : majidas2006@gmail.com
    www.2daydownload.com

  2. #2
    Administrator
    تاریخ عضویت
    Sep 2010
    محل سکونت
    تهران
    نوشته ها
    230
    تشکر کردن
    24
    تشکر شده 140 بار در 77 پست

    چارچوب mvc و ساختار برنامه

    چارچوب MVC و ساختار برنامه

    مقدمه
    در وب سایت های ASP.NET، نشانی ها (URL ها) معمولاً به فایل هایی که بر روی دیسک ذخیره شده اند (معمولاً فایل های .aspx) نگاشته (map) می شوند. این فایل های .aspx شامل نشانه گذاری ها و کدی است که پردازش شده و پاسخ (response) به درخواست رسیده را تولید می کند.
    ASP.NET MVC نشانی ها را متفاوت از برنامه های متداول ASP.NET نگاشت می کند. این چارچوب به جای نگاشت نشانی ها به صفحه های ASP.NET آن ها را کلاس های کنترلگر نگاشت می کند. کلاس های کنترلگر ورودی ها از قبیل ورودی های کاربر و تعاملات کاربر را بررسی کرده و منطق مناسب را بر مبنای ورودی ها اجرا می کنند. (کنترلگرهای ASP.NET MVC الگوی کنترلگر جلو یا Front Controller را پیاده سازی می کنند.) یک کلاس کنترلگر معمولاً یک جزء نمایشگر را برای ساختن HTML خروجی به عنوان پاسخ، فراخوانی می کند.
    چارچوب ASP.NET MVC اجزای مدل، نمایشگر و کنترلگر را از هم جدا می کند. مؤلفه مدل معمولاً وضعیت را با ذخیره کردن داده ها در پایگاه داده نگهداری می کند. نمایشگر توسط کنترلگر انتخاب شده و UI مناسب را تولید می کند. به صورت پیش فرض ASP.NET MVC از صفحات ASP.NET با پسوند .aspx، کنترل های کاربر با پسوند .ascx و صفحات master برای تولید خروجی برای مرورگر استفاده می کند. مؤلفه کنترلگر متد عملیات (Action Method) مناسب را در کنترلگر شناسایی کرده و مقادیر ورودی را به عنوان پارامتر به آن می دهد و خطاهایی را که ممکن است در طول اجرای متد عملیات رخ بدهد، بررسی می کند. پس از آن نیز نمایشگر خواسته شده را منتقل می کند. به صورت پیش فرض هر مؤلفه در یک فولدر مجزا قرار دارد.
    نگاشت نشانی ها (URL Mapping)
    چارچوب ASP.NET MVC از یک موتور مسیریابی نشانی برای نگاشت نشانی ها به کلاس های کنترلگر استفاده می کند. می توانید قوانین مسیریابی را که ASP.NET MVC برای ارزیابی نشانی ها استفاده می کند تا کنترلگر مناسب را پیدا کند، تعیین کنید. همچنین این موتور مسیریابی متغیرهایی را که در نشانی قرار دارند تجزیه کرده و آن ها را به عنوان پارامتر به کنترلگر می دهد.
    چارچوب MVC و Postback
    چارچوب MVC از Postback های ASP.NET برای تعامل با سرور استفاده نمی کند. به جای آن تمام تعاملات کاربر به کلاس کنترلگر منتقل می شود. این کار باعث جدایی منطق UI از منطق کاری شده و آزمون پذیری برنامه را بالاتر می برد. در نتیجه View State و چرخه حیات وقایع ASP.NET در نمایشگرهای MVC مجتمع نشده اند.
    ساخت یک برنامه ASP.NET MVC
    چارچوب ASP.NET MVC شامل یک قالب پروژه Visual Studio است که در ساخت برنامه های وب مبتنی بر MVC به شما کمک می کند. این قالب یک پروژه ASP.NET MVC ایجاد می کند که شامل فولدرهای مورد نیاز، قالب آیتم ها و اطلاعات فایل های تنظیمات است.
    نکته: قالب برنامه های ASP.NET MVC بر مبنای قالب ASP.NET Web Application است. شما می توانید برای ایجاد یک پروژه جدید ASP.NET MVC گزینه ASP.NET MVC project را از File/New Project انتخاب کنید.
    وقتی که یک پروژه جدید ASP.NET MVC ایجاد می کنید، Visual Studio به شما امکان می دهد تا دو پروژه را همزمان ایجاد کنید. اولین پروژه یک پروژه وب است که می توانید برنامه خود را در آن پیده سازی کنید. دومی یک پروژه آزمون (تست) است که می توانید در آن Unit Test های اجزای برنامه خود را بنویسید.
    نکته: Visual Studio نسخه Standard و Visual Web Developer نسخه Express وقتی که پروژه ASP.NET MVC می سازید انتخابی مبنی بر ساخت پروژه دوم به شما نمی دهند.
    می توانید از هر چارچوب Unit Test که با .NET منطبق است برای آزمودن برنامه ASP.NET MVC استفاده کنید. Visual Studio نسخه Professional شامل پشتیبانی از MSTest است. برای آشنایی با MSTest صفحه MSTest.exe Command Line Options را در سایت MSDN ببینید.
    ساختار پروژه های وب MVC
    وقتی که یک پروژه ASP.NET MVC ایجاد می کنید، اجزای برنامه MVC همانند تصویر زیر در فولدرهای جداگانه قرار می گیرند:
    فولدرهای مورد استفاده در برنامه های ASP.NET MVC به شرح زیر است:

    • App_Data: این فولدر محل نگهداری فیزیکی داده است. این فولدر نقشی مشابه همان که در برنامه های وب مبتنی بر Web Forms داشت در اینجا نیز دارد.
    • فولدر Content: این فولدر محل مناسب و پیشنهاد شده برای نگهداری چیزهایی از قبیل فایل های JavaScript و CSS و عکس ها و مانند آن ها است. به طور کل این فولدر محل نگهداری محتوای ایستا (static) است.
    • فولدر Controllers: این فولدر محل پیشنهاد شده و پیش فرض کنترلگرها است. از دید چارچوب MVC لازم است که نام کلیه کنترلگرها به Controller ختم شود مانند HomeController و LoginController و ProductController.
    • فولدر Models: این فولدر برای کلاس هایی که مدل برنامه ASP.NET MVC را می سازند، مهیا شده است. این فولدر معمولاً محل نگهداری اشیایی است که با محل ذخیره اطلاعات تعامل دارند. معمولاً اشیای مدل واقعی باید در کتابخانه های کلاس جداگانه قرار داشته باشند. به هر حال شما می توانید این کلاس ها را در اینجا قرار داده و سپس در زمان مناسب در حین توسعه برنامه آن ها را به کتابخانه های کلاس مناسب انتقال دهید.
    • فولدر Views: این فولدر محل مناسب و پیشنهاد شده برای نمایشگرها است. نمایشگرها شامل فایل های .aspx و .ascx و .master و تمام فایل های مرتبط با تولید و نمایش نمایشگرها است. فولدر Views شامل فولدرهایی برای هر کدام از کنترلگرها است. این فولدرها از پیشوند نام کنترلگر برای نام خود استفاده می کنند. مثلاً اگر کنترلگری به نام HomeController داشته باشیم، فولدر Views شامل فولدری به نام Home است. وقتی ASP.NET MVC یک نمایشگر را فراخوانی می کند، به دنبال فایلی با پسوند .aspx و با نام مشابه نام نمایشگر در فولدر Views/ControllerName می گردد. همچنین به صورت پیش فرض فولدری با نام Shared در فولدر Views وجود دارد که متعلق به هیچ کنترلگری نیست. فولدر Shared برای نمایشگرهایی است که بین تمام کنترلگرها مشترک هستند. مثلاً صفحه master برنامه در این فولدر قرار می گیرد.

    همچنین یک برنامه ASP.NET MVC علاوه بر فولدرهای ذکر شده از فایل Global.asax برای تنظیم پیش فرض های مسیریابی نشانی ها و از فایل web.config برای تنظیمات برنامه استفاده می کند.
    تنظیم مسیریابی پیش فرض
    مسیریاب ها در فراخوانی متد Application_start فایل Global.asax.cs یا Global.asax.vb مقداردهی اولیه می شوند. مثال زیر یک نمونه از فایل Global.asax را نشان می دهد که شامل تنظیمات مسیریابی پیش فرض است:
    کد C#

    کد PHP:
    public class GlobalApplication System.Web.HttpApplication
    {
        public static 
    void RegisterRoutes(RouteCollection routes)
        {
            
    // Note: Change the URL to "{controller}.mvc/{action}/{id}" to 
            // enable automatic support for IIS6 and for IIS7 classic mode.

            // Handler to stop URL routing for Web resources.
            
    routes.Add(
                new 
    Route(
                    
    "{resource}.axd/{*pathInfo}",
                    new 
    StopRoutingHandler())
            );

            
    routes.MapRoute(
                
    "Default",
                
    "{controller}/{action}/{id}",
                new { 
    controller "Home"action "Index"id "" }
            );
        }

        protected 
    void Application_Start()
        {
            
    RegisterRoutes(RouteTable.Routes);
        }


    کد VB


    کد PHP:
    Public Class GlobalApplication
        Inherits System
    .Web.HttpApplication

        Shared Sub RegisterRoutes
    (routes As RouteCollection)
            
    ' Note: Change the URL to "{controller}.mvc/{action}/{id}" to
            ' 
    enable automatic support for IIS6 and for IIS7 classic mode.

            
    ' Handler to stop URL routing for Web resources.
            routes.Add( _
                New Route( _
                    "{resource}.axd/{*pathInfo}", _
                    New StopRoutingHandler()) _
            )

            ' 
    MapRoute takes the following parametersin order:
            
    ' (1) Route name
            ' 
    (2URL with parameters
            
    ' (3) Parameter defaults
            ' 
    (4Parameter constraints
            routes
    .MapRoute_
                
    "Default"_
                
    "{controller}/{action}/{id}"_
                
    New With {.controller "Home", .action "Index", .id ""_
            
    )

        
    End Sub

        Sub Application_Start
    ()
            
    RegisterRoutes(RouteTable.Routes)
        
    End Sub
    End 
    Class 




    نجات یک انسان همانند نجات تمام بشریت است (قرآن مجید)
    ایمیل سفارش پروژه : majidas2006@gmail.com
    www.2daydownload.com

  3. #3
    Administrator
    تاریخ عضویت
    Sep 2010
    محل سکونت
    تهران
    نوشته ها
    230
    تشکر کردن
    24
    تشکر شده 140 بار در 77 پست

    درک اجرای برنامه های mvc

    درک اجرای برنامه های MVC
    مقدمه
    درخواست های رسیده به برنامه وبی مبتنی بر MVC ابتدا به شیء UrlRoutingModule که یک ماژول HTTP است منتقل می شود. این ماژول درخواست را تجزیه کرده و انتخاب مسیر را انجام می دهد. UrlRoutingModule اولین شیء مسیر (Route) که با درخواست رسیده منطبق باشد انتخاب می کند. (یک شیء مسیر کلاسی است که RouteBase را پیاده سازی کرده و معمولاً شیءای از کلاس Route است.) اگر هیچ مسیری مطابق با درخواست پیدا نشد، شیء UrlRoutingModule هیچ کاری نمی کند و اجازه می دهد که درخواست به صورت طبیعی توسط ASP.NET یا IIS پردازش شود.
    UrlRoutingModule از شیء Route انتخاب شده شیء IRouteHandler را که به Route تعلق دارد و در برنامه های MVC معمولاً MvcRouteHandler است، می گیرد. شیء IRouteHandler یک شیء IHttpHandler می سازد و آن را به شیء IHttpContext منتقل می کند. به صورت پیش فرض IHttpHandler در یک برنامه MVC شیء MvcHandler است. سپس شیء MvcHandler کنترلگری را که باید درخواست را بررسی کند، انتخاب می کند. برای اطلاعات بیشتر قسمت «مسیریابی در ASP.NET MVC» را ببینید.
    نکته: وقتی که یک برنامه MVC در IIS 7.0 اجرا می شود، به پسوند فایل برای پروژه های MVC نیازی نیست. با این حال در IIS 6.0 نیاز است که پسوند .mvc را به ASP.NET ISAPI DLL نگاشت کنیم.
    ماژول و بررسی کننده (Handler) مدخل های ورود به چارچوب ASP.NET MVC هستند. کار آن ها این است:

    • انتخاب کنترلگر مناسب در یک برنامه MVC
    • به دست آوردن (Obtain) یک نمونه از کنترلگر
    • فراخوانی متد Execute کنترلگر

    جدول زیر مراحل اجرای یک پروژه وب MVC را فهرست می کند:
    مرحله جزئیات
    دریافت اولین درخواست برنامه در فایل Global.asax اشیای Route به شیء RouteTable اضافه می شوند.
    انجام مسیریابی ماژول UrlRoutingModule از اولین Route منطبق در RouteTable برای ساختن شیء RouteData استفاده می کند و بعد از آن برای ایجادشیء RequestContext(IHttpContext) استفاده می کند.
    ایجاد بررسی کننده درخواست MVC شیء MvcRouteHandler یک نمونه از کلاس MvcHandler می سازد و نمونه RequestContext را به آن می فرستد.
    ایجاد کنترلگر شیء MvcHandler از RequestContext برای تعیین شیء IControllerFactory (معمولاً یک نمونه از کلاس DefaultControllerFactory) و برای ایجاد یک نمونه از کنترلگر استفاده می کند.
    اجرای کنترلگر MvcHandler متد Execute کنترلگر را فراخوانی می کند.
    فراخوانی عملیات (Action) اغلب کنترلگرها از کلاس پایه Controller مشتق شده اند. برای این کنترلگرها، شیء ControllerActionInvoker که متعلق به کنترلگر است تشخیص می دهد که کدام متد را فراخوانی کند و بعد آن متد را فراخوانی می کند.
    اجرای نتیجه (Result) یک متد عملیات معمولاً ورودی های کاربر را می گیرد، داده های پاسخ را آماده می کند و سپس نتیجه (Result) را با برگرداندن نوع نتیجه (Result Type) اجرا می کند. نوع نتیجه های پیش ساخته (Build in) که می توان اجرا کرد شامل ViewResult (که یک نمایشگر را تولید می کند و بیشترین کاربرد را دارد) و RedirectToRouteResult و RedirectResult و ContentResult و JsonResult و EmptyResult است.

    درک مدل در برنامه های ASP.NET MVC
    مقدمه
    در چارچوب ASP.NET MVC مدل قسمتی از برنامه است که مسؤلیت منطق اصلی را بر عهده دارد. اشیای مدل معمولاً به داده ها در یک مکان ذخیره از قبیل پایگاه داده SQL Server دسترسی پیدا کرده و منطق کاری را بر روی داده ها اعمال می کند. مدل ها وابسته به برنامه هستند و بنابراین ASP.NET MVC هیچ محدودیتی بر روی انواع اشیای مدلی که می توان ساخت نمی گذارد. مثلاً می توان از اشیای System.Data.DataSet و DataReader متعلق به ADO.NET یا مجموعه ای از اشیای دامنه شخصی (Custom) استفاده کرد. همچنین می توان از ترکیبی از اشیا برای دستکاری داده ها استفاده کرد.
    مدل یک کلاس یا رابط (Interface) خاص نیست. یک کلاس به خاطر پیاده سازی یک رابط خاص یا مشتق شدن از یک کلاس پایه خاص، قسمتی از مدل نمی شود. یک کلاس به دلیل نقشی که ایفا می کند و همچنین محل آن در برنامه MVC است که به عنوان مدل شناخته می شود. یک کلاس مدل در ASP.NET MVC به طور مستقیم ورودی را از مرورگر نمی گیرد و همچنین هیچ خروجی ای برای مرورگر تولید نمی کند.
    تعریف مدل
    اشیای مدل قسمتی از برنامه هستند که منطق دامنه (domain logic) یا منطق کاری (Business Logic) را پیاده سازی می کنند. منطق دامنه مدیریت اطلاعات بین پایگاه داده و UI را بر عهده دارد. برای مثال در یک سیستم «مدیریت اموال» مدل، ذخیره اطلاعات اقلام در پایگاه داده را انجام می دهد. مدل همچنین شامل منطقی است که تعیین می کند که از هر قلم کالا چه تعدادی موجود است. به علاوه مدل ممکن است قسمتی از برنامه باشد که وقتی که یک کالا فروخته شده و از انبار خارج می شود، پایگاه داده را بروز می کند. در اغلب اوقات مدل، وضعیت مدل برنامه را در پایگاه داده ذخیره و بازیابی می کند.
    یکپارچه سازی مدل و کنترلگر
    زیر فولدر Models در الگوی پروژه ASP.NET MVC محل مناسبی برای قرار دادن کلاس های مدل است. همچنین بسیار متداول است که کلاس های مدل را در یک اسمبلی (Assembly) مجزا قرار دهیم. به این ترتیب می توانیم از آن ها در برنامه های دیگر هم استفاده کنیم.
    استفاده از مدل در کنترلگر معمولاً شامل نمونه سازی از کلاس های مدل در کلاس های کنترلگر، فراخوانی متدهای اشیای مدل و استخراج داده های مناسب از این کلاس ها برای نمایش توسط نمایشگرها است. این روش پیششنهاد شده برای پیاده سازی عملیات ها (Action) است. این روش همچنین باعث جدایی بین عناصر منطقی برنامه می شود و آزمون منطق برنامه را -به علت عدم نیاز به UI در آزمون- ساده تر می کند.



    نجات یک انسان همانند نجات تمام بشریت است (قرآن مجید)
    ایمیل سفارش پروژه : majidas2006@gmail.com
    www.2daydownload.com


 

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •