آیا می دانید میانگین رضایت دانشجویان سون لرن از دوره ها، بیش از 94% می باشد!

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

4 1818 ۸ مهر ۹۴
در این جلسه به آشنایی با Entity Framework و معماری چند لایه خواهیم پرداخت. در ابتدا مروری بر مطالب جلسه ی گذشته خواهیم داشت و نحوه ی سنتی اتصال به پایگاه داده را یک بار دیگر به طور خلاصه مطرح خواهیم کرد. در ادامه یک پروژه ی ساده و کامل را به صورت چند لایه پیاده سازی کرده تا با این معماری آشنا شویم. در پایان نیز به معرفی Entity Framework خواهیم پرداخت. مطالب آموزش داده شده در این جلسه به قرار زیر می باشند:
  • معرفی نحوه ی قرار دادن چندین پروژه در یک Solution به منظور طراحی چند لایه
  • آشنایی با Class Library جهت طراحی لایه های مختلف معماری چند لایه
  • طراحی لایه های مورد نیاز
  • نحوه ی اضافه کردن Reference کلاس لایبرری ها به هم
  • آشنایی با مفهوم بررسی خطاهای احتمالی در لایه ی BLL
  • معرفی Entity Framework و OR Mapper
  • آشنایی با نحوه ی استفاده از Entity Framework در برنامه ها
  • معرفی مفهوم Context
  • نحوه ی خواندن داده ها از پایگاه داده
  • نحوه ی اضافه کردن داده ها در پایگاه داده
در جلسه ی آینده مطالب مرتبط با Entity Framework را مرور کرده و به طور دقیق تر و عمیق تر با این تکنولوژی آشنا می شویم. همچنین با Linq نیز آشنا می شویم.
این مطلب یک جلسه از دوره آموزش جامع #C - پایه تا پیشرفته است و برای دیدن آن باید در این دوره ثبت نام کنید .
توضیحات : با توجه به فراگیر شدن استفاده از پلتفرم .NET به همراه سیستم مدیریت پایگاه داده SQL Server به منظور انجام پروژه های تحت ویندوز در ابعاد بزرگ و همینطور متوسط و کوچک، دوره ی جامع #C را که شامل آموزش پایه تا پیشرفته ی این مفاهیم می باشد برای کاربران محترم وب سایت سون لرن تهیه و تولید کرده ایم. این دوره متشکل از چند فصل کلی می باشد که در سایر منابع آموزشی و کلاس های حضوری معمولا بصورت دوره هایی مستقل و جداگانه و مجموعا با هزینه ای بالغ بر 1 میلیون تومان ارائه می گردند در صورتی که وب سایت سون لرن به منظور حمایت از کاربران محترم، این چند دوره را در یک دوره ی جامع گردآوری کرده است تا شما عزیزان با صرف هزینه ای بسیار کمتر از کلاس های حضوری (در واقع کمتر از 15% هزینه کلاس های حضوری) بتوانید تمامی این مطالب را بصورت کامل فراگیرید. در این دوره مفاهیم کاربردی طراحی و پیاده سازی برنامه های Desktop با زبان #C و همینطور طراحی پایگاه داده با استفاده از SQL Server را بررسی خواهیم کرد. در هر فصل از دوره سعی شده است تا با انجام مینی پروژه ها، مطالب آموزشی بصورت کاملا کاربردی تدریس شود. علاوه بر این در پایان دوره یک پروژه کامل را از صفر تا 100 طراحی و پیاده سازی خواهیم کرد. امید است این دوره ی جامع برای شما دوستان گرامی مفید واقع گردد.
:: مطالب جدید سون لرن را از طریق ایمیل دریافت کنید :

دیدگاه ها 4 دیدگاه برای این مطلب ارسال شده است.

  • ‏‏

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

  • ‏‏

    مجددا سلام.

    چهارتا ابهام دارم پاسخ بفرمایید ممنون میشم:
    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- حواستون باشه ما در طراحی ها، اول دیتابیس رو به بهترین شکل طراحی می کنیم و سپس در لایه های بعد کار رو پیش میبریم. تنها افراد کارکشته در طراحی نرم افزار توانایی به کارگیری معماری ای رو دارن که دارید تلویحا اشاره میکنید. در کل خیلی کم پیش میاد که بخوایم از طریق لایه های دیتا یا پرزنتیشن، بیایم جدول جدید و ارتباط ایجاد کنیم.

  • نکته : برای پاسخگویی سریعتر و بهتر، بخش نظرات این مطلب مختص پرسش و پاسخ های کاربران ثبت نامی در دوره ی دوره آموزش جامع #C - پایه تا پیشرفته است .
    اگر قبلا در این دوره ثبت نام کرده اید پس از ورود به سایت می توانید تمامی پرسش و پاسخ ها و نظرات مطرح شده ی این مطلب را مشاهده و اگر سوالی دارید در همینجا مطرح کنید.

    ورود/عضویت سریع با اکانت فیسبوک/جیمیل شما

    :: شما می توانید با استفاده از اکانت یاهو یا جیمیل خود به صورت کاملا امن، سریع و بدون نیاز به ورود اطلاعات عضو و وارد سایت شوید. در این صورت هیچ نیازی به ورود نام کاربری و رمز عبور خود نخواهید داشت و هویت شما از طریق ایمیلتان مورد تائید قرار می گیرد .
    برای استفاده از این روش باید در اکانت گوگل(جیمیل) و یا یاهوی خود لاگین باشید .
    عضویت/ ورود سریع با :
    در حال اتصال ...

    ورود به سایت

    ورود سریع با :
    در حال اتصال ...

    جستجو در سون لرن

    عبارت :
    7LearnTelegram