من تاپیکی را در اینجا با موضوع "آیا برنامه نویسی به روش سه لایه، همون برنامه نویسی به الگوی MVC است؟" را ایجاد کردم و در آنجا پاسخ را هم دریافت کردم. اما در این تاپیک، تاکید من تفاوت این دو با هم در NET. هست.
Printable View
من تاپیکی را در اینجا با موضوع "آیا برنامه نویسی به روش سه لایه، همون برنامه نویسی به الگوی MVC است؟" را ایجاد کردم و در آنجا پاسخ را هم دریافت کردم. اما در این تاپیک، تاکید من تفاوت این دو با هم در NET. هست.
سه لایه یک معماری است ولی MVC یک الگو است (َApplication Pattern) ... شما در قلب معماری سه لایه میتوانید از الگوی MVC استفاده کنید ... حال شاید برای شما سوال شود که الگوی MVC در کدام لایه قرار دارد؟!
از دید معماری سه لایه، MVC در لایه ی presentation Layer قرار دارد . یعنی در معماری سه لایه UI را الگوی MVC تشکیل میدهد.
سوال بعدی که ممکن است پیش بیاید این است که اگر MVC در لایه ی UI قرار میگیرد پس M که به معنای Model است چگونه توجیه میشود ؟!
در تعریف MVC این گونه میگوییم که مدل چیزی است که کنترلر برای ویو میفرستد لذا ویو با آن سرکار دارد که به تعبیری Model همان ViewModel تعریف میشود . لذا با تعریف Data Model که در لایه ی DAL قرار دارد متفاوت است. مثلا شما ممکن است در ویو از 30 فیلد یک موجودیت در Data Model فقط 10 فیلد آن را نیاز داشته باشید که آن موجودیت با 10 فیلد Model شما خواهد بود که برخی برنامه نویسان آن را قسمت ViewModel می دانند.
موفق باشید ...
احتیاجی نیست! ... به شرط اینکه لایه ی DAL وابستگی به لایه های دیگه نداشته باشه که اون به زیبایی معماری شما بستگی داره :)نقل قول:
یعنی اگر ما پروژه ای را قبلا به صورت WebForm نوشته باشیم که بر مبنای معماری 3 لایه بوده، حال اگر بخواهیم نسخه MVC به اون اضافه کنیم، احتیاجی نیست که DAL بازنگری بشود؟