سلام اقای اردو خانی خواستم بدونم چرا لایه unit of work و ioc وview models را در لایه جدا گانه قرار ندادیم و توی لایه ui اونوهارو نوشتید؟
و خواستم بگم که view model که در لایه ui هستش اسم این لایه رو میشد یه اسم دیگه انتخاب کرد که با اون view model که توی لایه دیتا ممکنه پیاده سازی بشه اشتباه نشه
ممنون میشم راهنمای بفرمایید
با سلام خدمت شما دوست عزیزم
در مورد مسئله UnitOfWork باید خدمت شما بگم با توجه به پیاده سازی اصل معکوس سازی وابسگی ها یا همون Inversion Of Control ، این اصل در آخرین لایه موجود در پروژه پیاده سازی میشود. برای همین در آخرین لایه موجود که همون UI هستش پیاده سازی شده است
سوال دومتون رو متوجه نشدم
ما در لایه دیتا فقط فولدر هایی رو ایجاد کردیم تا entity های ما رو نگه دارن و در این لایه هیچ چیز دیگری ایجاد نکردیم
این لایه ( DataLayer ) تنها شامل کلاس های entity هستش و هیچ چیز دیگری در این لایه وجود ندارد
سلام ممنون از پاسختون
ببخشید سوال من کامل نبود .
ایا فقط زمانی که میخوایم دادهای از کاربر بگیریم توی ویو مدل کد مربوطه رو میزنیم؟
و دوم اینکه در مورد کنترلر ها باید همه کنترلرها کانستراکتور های اونهارو عوض بکنیم؟
ممنون میشم توضیح بدین کمی برام گنگه
اقای اردو خانی من سه تا سوال دیگه دارم.
1.با توجه به دوره external login که گذاشتید گفتم شاید بی ربط نباشه .خواستم بدونم اگه چند پروژه داشته باشیم که توی ui مشترک باشند و دیتا بیس های انها از هم جدا باشد و فقط تیبل یوزر انها وجه اشتراکشون باشه چطور میتونیم این طرح رو پیاده سازی کنیم که یوزربعد از ثبت نام و یا لاگین توی یکی از اون سایت ها بتونه توی ما بقی هم وارد بشه؟
2.اگر دوتا پروژه داشته باشیم که فقط توی ui مشترک باشن و بخوایم توی یک سولوشن انها رو تعریف بکنیم چطور میشه که لایه uiرو بین اونها به اشتراک بزاریم چون اگه دوتا پروژه تعریف کنیم معمولا فایل های اونها از هم جدا میشن.پیشنهاد شما چیه؟
3.اگر بخوایم الگوی پیاز رو برای دو تا پروژه که فقط توی ui با هم مشترک هستند و توی یک سولوشن بخوایم پیاده سازی کنیم تداخلی پیش نمیاد؟من به این شکل اونهارو میخوام ایجاد کنم که اول توی سولوشن یک پروژه تعریف کنم که ui هستش و بعد توی سطح سولوشن دوتا فولدر ایجاد میکنم و توی هر کدوم از فولدرها لایه های دیگه(کلاس لایبری ها) دوتا پروژه به صورت جداگانه اونجا باشن؟
ممنون از اینکه وقت میزارید و پاسخ میدید.
سلام مجدد خدمت شما دوست عزیز
با توجه به اصولی که این معماری داره باید بگم که بله. ViewModel برای دریافت اطلاعات از کاربر از سمت View هستش
منظورتون رو از تغییر Constructor های controller ها متوجه نشدم. اگر منظورتون admin هستش و پیاده سازی سطح دسترسی ، باید بگم که بله
برای پاسخ سوال اولتون باید بگم که شما میتونین از Identity Server استفاده کنین. یه جستجو کنین که چطور میشه این مورد رو در MVC پیاده سازی کرد چون آموزشش در Core رو استاد مدائنی در سایت قرار دادن تحت عنوان امنیت در Core
برای سوال دوم اگر منظورتون رو درست متوجه شده باشم قصد شما اینه که دو تا پروژه کاملا جدا رو با یک ویو یکسان پیاده سازی کنین
اشتراک گذاری یک ویو برای دو پروژه از نظر منطقی درست نیست. اگر عملکرد یکسانی بین این دو پروژه وجود داره ، باید این دو پروژه از هسته و Application Service Layer یکسانی استفاده کنن یا اینکه از از طریق Api با هم در ارتباط باشن. اشتراک گذاری صفحات View در این مورد کار درستی نیست. میتونین در مورد Indentity Server بیشتر اطلاعات کسب کنین تا کارتون رو راحت تر انجام بدین
اساس سوال سوم شما در مورد پیاده سازی لایه بندی در معماری پیاز هستش
همون طور که در آموزش هم مطرح کردم ، در این معماری شما هسته، DataServiceLayer و ApplicationServiceLayer مشخصی رو دارین که میتونه به چندین UserInterface اطلاعات ارسال کنه
پس در اصل شما سیستم لایه بندیتون رو تا قسمت ApplicationServiceLayer پیاده سازی میکنین و در نهایت از چندین UserInterface استفاده میکنین
امیدوارم جواب سوالاتتون رو دریافت کرده باشین
موفق و موید باشین :)