ورود

View Full Version : حرفه ای: معماری تغییر یافته mvc بر روی پلتفرم asp قابل استفاده به عنوان اپلیکیشن ویندوز و تحت وب



hmahdavi921
شنبه 01 اسفند 1394, 06:26 صبح
سلام
من تازگی با یک شرکتی آشنا شدم که از معماری چند لایه در Asp استفاده میکنند و ادعا دارند که اگر هسته برنامه ثابت باشه و دیزاین برنامه رو تغییر بدیم میتونیم هم به عنوان یک اپلیکیشن تحت وب استفاده کنیم و هم به عنوان یک اپلیکیشن ویندوز .اصلا هم چین چیزی ممکنه ؟ دوستان اگر اطلاعی در این مورد دارید لطفا بحث رو شروع کنید تا ما هم استفاده کنیم.
با تشکر

bomb23
شنبه 01 اسفند 1394, 07:19 صبح
خب کلا اساس معماری های چند لایه همینه دیگه! وقتی شما چند لایه کار میکنی میگی لایه نمایش و سرویس و دیتات کاملا از هم مجزا هستند و با این کار مثلا در لایه دیتا اگه تا امروز از sql استفاده میکردی میتونی بدون اینکه مشکلی در بخش های دیگه پروژه پیش بیاد این لایه رو با oracel بازنویسی کنی یا حتی یه پروژه جدید ایجاد کنی و اینو به عنوان لایه دیتات معرفی کنی.
حالا لایه نمایش هم به همین شکله میتونه یه پروژه وب باشه یا ویندوز و یا حتی اندروید بدون اینکه لایه های سرویس و دیتات تغییری بکنند.

hmahdavi921
شنبه 01 اسفند 1394, 07:40 صبح
خب کلا اساس معماری های چند لایه همینه دیگه! وقتی شما چند لایه کار میکنی میگی لایه نمایش و سرویس و دیتات کاملا از هم مجزا هستند و با این کار مثلا در لایه دیتا اگه تا امروز از sql استفاده میکردی میتونی بدون اینکه مشکلی در بخش های دیگه پروژه پیش بیاد این لایه رو با oracel بازنویسی کنی یا حتی یه پروژه جدید ایجاد کنی و اینو به عنوان لایه دیتات معرفی کنی.
حالا لایه نمایش هم به همین شکله میتونه یه پروژه وب باشه یا ویندوز و یا حتی اندروید بدون اینکه لایه های سرویس و دیتات تغییری بکنند.
به نظرم این چیزی که شما میگید به این صورت میشه که ما یک سلوشن باز کنیم و چند تا اپلیکیشن داخلش و هر اپلیکیشن رو مختص یک کار مثلا دسترسی به داده ، منطق و یک اپلیکیشن رو هم مختص نمایش اطلاعات درست میکنیم . که خوب در این حالت اگر این لایه نمایش رو تغییر بدیم این اپلیکیشن میتونه در ویندوز هم کار کنه. اما این معماری MVc نیست . به گفته خودشون یک سری تغییراتی روی MVC اعمال کردن و یک معماری خاص به خودشون رو درست کردن. که با تغییر لایه نمایش قابل استفاده هم برای ویندوز هست وهم تحت وب . به نظر من خیلی مبهمه چون نیازمندیهای این دوتا یعنی ویندوز و تحت وب متفاوته.

منتظر نظرات دوستان هستیم

bomb23
یک شنبه 02 اسفند 1394, 01:53 صبح
به نظرم شما داری پیچیدش میکنی چیزی خارج از این نیست قطعا و اگه برید باهاشون بیشتر صحبت کنید چیز عجیب و غریبی نخواهد بود..

hakim22
یک شنبه 02 اسفند 1394, 03:41 صبح
شما می توانید از الگوی MVC در پروژه های ویندوز فرم هم استفاده کنید. با جدا سازی درست کلاسها می شود یک پروژه ی وب رو با کمترین دردسر به عنوان پروژه ی ویندوز فرم هم مورد استفاده قرار داد .

مشکل بر میگرده به بازخوانی اطلاعات از دیتابیس. در در وب ارتباط با دیتابیس بعد از هر درخواست عملا قطع میشود. یعنی EntityFramework بعد از تحویل اطلاعات به وب آنها را فراموش میکند. در ویندوز فرم اینطور نیست. چون اطلاعات از طریق شبکه ی داخلی یا رایانه محلی دریافت میشود یک پورت باز بین برنامه و دیتابیس وجود دارد . (مثل وقتی که داده های یک جدول را درون گرید لود میکنید و امکان ویرایش ردیفهارا فعال می کنید. هر تغییری که کاربر در سلولها اعمال میکند به صورت مستقیم در دیتابیس ذخیره میشود.)

در اینجا وجود لایه ی Repository مجزا برای وب و ویندوز میتواند بسیار مفید باشد. (گرچه وجود آن الزامی نیست).

در واقع تفاوتهای کوچکی وجود دارد ولی در عمل ممکن و متداول است.
هیچ دلیلی ندارد که یک کد دوبار نوشته شود.
با جدا سازی و طبقه بندی درست کلاسها و قراردادن آنها در پروژه های مجزا این کار به سادگی انجام میشود.

hmahdavi921
یک شنبه 02 اسفند 1394, 14:09 عصر
شما می توانید از الگوی MVC در پروژه های ویندوز فرم هم استفاده کنید. با جدا سازی درست کلاسها می شود یک پروژه ی وب رو با کمترین دردسر به عنوان پروژه ی ویندوز فرم هم مورد استفاده قرار داد .

مشکل بر میگرده به بازخوانی اطلاعات از دیتابیس. در در وب ارتباط با دیتابیس بعد از هر درخواست عملا قطع میشود. یعنی EntityFramework بعد از تحویل اطلاعات به وب آنها را فراموش میکند. در ویندوز فرم اینطور نیست. چون اطلاعات از طریق شبکه ی داخلی یا رایانه محلی دریافت میشود یک پورت باز بین برنامه و دیتابیس وجود دارد . (مثل وقتی که داده های یک جدول را درون گرید لود میکنید و امکان ویرایش ردیفهارا فعال می کنید. هر تغییری که کاربر در سلولها اعمال میکند به صورت مستقیم در دیتابیس ذخیره میشود.)

در اینجا وجود لایه ی Repository مجزا برای وب و ویندوز میتواند بسیار مفید باشد. (گرچه وجود آن الزامی نیست).

در واقع تفاوتهای کوچکی وجود دارد ولی در عمل ممکن و متداول است.
هیچ دلیلی ندارد که یک کد دوبار نوشته شود.
با جدا سازی و طبقه بندی درست کلاسها و قراردادن آنها در پروژه های مجزا این کار به سادگی انجام میشود.

میتونید بگید لایه ی Repository کاربردش چیه ؟