campaign-off40

دوره مجازی #C (جلسه 24): آشنایی با Entity Framework و معماری چند لایه



visibility  
mode_comment   ۴

در این جلسه به آشنایی با Entity Framework و معماری چند لایه خواهیم پرداخت. در ابتدا مروری بر مطالب جلسه ی گذشته خواهیم داشت و نحوه ی سنتی اتصال به پایگاه داده را یک بار دیگر به طور خلاصه مطرح خواهیم کرد. در ادامه یک پروژه ی ساده و کامل را به صورت چند لایه پیاده سازی کرده تا با این معماری آشنا شویم. در پایان نیز به معرفی Entity Framework خواهیم پرداخت.

مطالب آموزش داده شده در این جلسه به قرار زیر می باشند:

  • معرفی نحوه ی قرار دادن چندین پروژه در یک Solution به منظور طراحی چند لایه
  • آشنایی با Class Library جهت طراحی لایه های مختلف معماری چند لایه
  • طراحی لایه های مورد نیاز
  • نحوه ی اضافه کردن Reference کلاس لایبرری ها به هم
  • آشنایی با مفهوم بررسی خطاهای احتمالی در لایه ی BLL
  • معرفی Entity Framework و OR Mapper
  • آشنایی با نحوه ی استفاده از Entity Framework در برنامه ها
  • معرفی مفهوم Context
  • نحوه ی خواندن داده ها از پایگاه داده
  • نحوه ی اضافه کردن داده ها در پایگاه داده

در جلسه ی آینده مطالب مرتبط با Entity Framework را مرور کرده و به طور دقیق تر و عمیق تر با این تکنولوژی آشنا می شویم. همچنین با Linq نیز آشنا می شویم.

info توجه

این مطلب یک جلسه از دوره آموزش #C می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره آموزش #C

comment دیدگاه کاربران
Member3000 replyپاسخ

سلام اگه بخوام چند جدول با معماری چند لایه اینسرت کنم باید کجا ست کنم
Obj کلاس رو باید جدا بسازم یا همه جدول ها رو توی یه کلاس obj هاشو بسازم

آرین زارعی

obj کلاس ها باید جدا ساخته بشه.

پژمان replyپاسخ

مجددا سلام.

چهارتا ابهام دارم پاسخ بفرمایید ممنون میشم:
1- در مثال معماری چند لایه با Sql Command و در لایه BLL که موارد مربوط به صحت اطلاعات ورودی چک میشود بخواهیم یوزر عدد بجای اسم وارد نکند چه باید کرد؟ چون من عدد هم که وارد میکنم قبول میکنه ولی نمیدونم چطور عبارت خطایابی ()If ش رو بنویسم.
2- در تست عدم Null بودن اطلاعات ورودی چرا ما هنگام ساخت دیتابیس چک باکس Null بودن ستون رو میزنیم یعنی میتونی مقدارت خالی باشه و اینجا از خالی بودن مقدارش جلوگیری میکنیم. به نظر شما این ضد و نقیض نیست!!؟
3- هنگام ساخت متد Select شما از لیست جنریک استفاده فرموده اید جهت واکشی و ذخیره و نمایش اطلاعات. این درست. ولی چرا هنگام بکارگیری متد Li.GetString() ها، شماره درون پرانتز رو برای ستون اول صفر و برای دوم یک قرار داده اید مگر ستون 0 ستون Id نیست؟ شما در مثال قبلتر به این نکته اشاره فرموده اید و لی اینجا رعایت نکردید. البته خروجی درسته ولی نمیفهمم چرا؟ به نظر من باید شماره از یک شروع بشه.

4- بحث وجود table های بیشتر مانند HyperMarket و نحوه نمایش وجود Relation بین اونها در مثال چند لایه ایه SqlCommand و در لایه های BO و Bll چگونه پیاده سازی میشود؟ البته من هنوز جلسه بعد رو مطالعه نکردم وشما با استفاده از entityframework اینکارو آموزش داده اید و اصلا کلمه OR Mapper خود گویای همه چیز هست اما احساس میکنم نمایش ارتباط بین جداول در یک دیتابیس و پیاده سازی اونها در لایه های فوق الذکر با استفاده از SqlCommand پیچیده باشه که شما از گفتن اون صرفنظر فرموده اید و به دیتابیس با یه تیبل ساده قناعت فرمودید درسته؟ اگر اینگونس و از این لحاظ در آینده نیازی پیدا نمیکنیم پس لزومی به عمیق شدن در این مساله نیست.

ممنون از شما

آرین زارعی

1- باید در لایه ی قبل مدیریت کنید. بهتر است این موارد در لایه ی پرزنتیشن مدیریت شوند. در رویداد keydown یا رویداد های مشابه، میتوان کلمات تایپ شده را چک کرد. راه راحت تر هم استفاده از mask هست که در چندین جلسه ی آینده آموزش داده میشود.
2- یه مقداری توجه کنید. کاملا دو مساله متفاوت است. گاهی اوقات null بودن در سطح برنامه به خاطر مشکلات دیگری به غیر از داده هست و بیشتر null بودن کل آبجکت است نه فیلد. مثل مشکل کامبو باکس ولی در دیتابیس ما اجازه میدیم که یه سری فیلد خالی باشند تا بعدا پر شوند.
3- من دقیقا مثال رو الان به خاطر ندارم. ولی وقتی خروجی صحیح است فکر کنم با کمی تامل بتونید متوجهش بشید.
4- حواستون باشه ما در طراحی ها، اول دیتابیس رو به بهترین شکل طراحی می کنیم و سپس در لایه های بعد کار رو پیش میبریم. تنها افراد کارکشته در طراحی نرم افزار توانایی به کارگیری معماری ای رو دارن که دارید تلویحا اشاره میکنید. در کل خیلی کم پیش میاد که بخوایم از طریق لایه های دیتا یا پرزنتیشن، بیایم جدول جدید و ارتباط ایجاد کنیم.

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.