/// آموزش Entity Framework و کار با دیتابیس در VB.Net ///

hunter548

بی وفــا
با یاد خدا شروع می کنیم​

.::. Entity Framework .::.​

کار با دیتابیس در Net.​

تو این تاپیک قصد دارم کار با تکنولوژی Entity Framework رو به شما آموزش بدم
روند کلی این تاپیک به این صورته که :

1- مقدمه
2- معرفی Entity Framework
3- آموزش ساخت دیتابیس در SQL ( به صورت فیلم آموزشی )
4- ساختار اصلی و شروع کار با Entity Framework ( به صورت فیلم آموزشی )
5- آموزش اعمال اصلی (اضافه کردن ، پاک کردن و ویرایش اطلاعات پایگاه داده) درEntity Framework (به صورت فیلم آموزشی)
6- مثال های مختلف از Entity Framework ( فقط در صورتی که استقبال خوب باشه !!! )​

مقدمه :
عرضم به حضورتون Entity Framework یک ORM هستش که اون رو شرکت Microsoft ساخته .
نسخه 1.0 مایوس کننده بود. اما Microsoft روی پروژه سرمایه گذاری زیادی انجام داده ، مشخص بود که قصد جدی در توسعه این ابزار داره تا اینکه بعد تلاش Microsoft امروز Entity Framework به جایگاه خوبی رسیده ...

یه مقدمه دیگه بگم :
Entity Framework اطلاعات مورد نیاز هر موجودیت رو با Join کردن یه سری جدول از دیتابیس (مدل فیزیکی) بدست میاره ، و هر وقت که اطلاعات یک موجودیت آپدیت یا تغییر میکنه entity framework بررسی می کنه که اون داده ها مربوط به کدوم یک از جدول هاي موجود در دیتابیس هستش ، و بعدش اون ها رو با دستور SQL مناسب آپدیت به بروزرسانی می کنه ، به همین سادگی ! .

یه مقدمه دیگه ، قول میدم این مقدمه آخر باشه که خیلی هم مهمه :
73.gif

تو این آموزش شما میتونید نرم افزارهایی رو بر پایه دیتابیس رو با کمترین میزان کد نویسی ، نسبت به روش های سنتی بسازید
در کل :
کد نویسی مختصر و ساده ، قابلیت انعطاف پذیری بالا ، سطح یادگیری ساده ، پشتیبانی از دیتابیس های مختلف ، و.... از مزایای این تکنولوژی هستش .

سوال : من نفهمیدم Entity Framework در کل چیه ؟؟!!
جواب : در کل تکنولوژی Entity Framework :
میشه گفت جدیدترین و بهترین روش اتصال به دیتابیس و اعمال تغییرات مورد نظرمون در محیط .NET هستش​


یه پیشنهاد دوستانه :
از همه برنامه نویسانی که هنوز به روشهای قبلی با دیتابیس کار میکنن درخواست میکنم که حتما این تکنولوژی رو حداقل یک بار تست کنن ، مطمئن باشید که خود به خود از روش های قدیمی دیگه استفاده نمیکنید
با استفاده از این تکنولوژی، میتونید سطح خیلی بالایی از دسترسی در حین کار با داده ها(دیتابیس) رو داشته باشی .



فکر کنم تا اینجا متوجه شدین Entity Framework چیه .
تو جلسه بعدی انشالله وارد مباحث دیگه ای از Entity Framework میشم

------------------------------------------------------------------------------
در پایان :
1 - اگر جایی از مطالب مشکلی داشت اعلام کنید و به بزرگی خودتون ببخشید .
 

hunter548

بی وفــا

معرفی Entity Framework


یه سری تکنولوژی تو .NET داریم که برای توسعه و گسترش نرم افزارهایی بر پایه پایگاه داده را پشتیبانی می کنن .

برای کار با پایگاه داده تو .NET معمولا از سه روش استفاده میکنن:
1- ADO.NET
2- Linq 2 SQL یا به اختصار L2S
3- Entity Framework یا به اختصارEF​

سوال : چرا جلسه قبل مفهموم ORM رو توضیح ندادید ؟؟!!
جواب : بله ، ببینید ORM یا Object Relational Mapping ابزاری هستش:
که به وسیله آن می تونیم جداول پایگاه داده رو پردازش کنیم و آنها را به فرمت شیء تبدیل کنیم که در کدنویسی خواناتر و راحتتر باشن.
تو کدنویسی به جای این که به صورت مستقیم با جداول پایگاه داده کار کنیم بر روی اشیاء کار می کنیم. به این اشیاء موجودیت یا Entity گفته می شه .​


خوب حالا که متوجه شدید ORM چیه ، بریم سراغ ادامه معرفی :
Entity Framework یه ORM هست که توسط شرکت Microsoft توسعه داد شده .
همون جور که تو جلسه قبل براتون توضیح دادم
Entity Framework نسخه 1.0 آن مایوس کننده بود و حتی در خیلی مواقع اشکلاتی هم داشت . اما با توجه به سرمایه گذاری زیادی که Microsoft روی پروژه انجام داد ، مشخص بود که قصد جدی در توسعه این ابزار داره . با توجه به اهمیت این بحث برای Microsoft، انتظار میره که توسعه این ابزار به طور فعالی ادامه پیدا کنه و امکانات کاملی به آن اضافه بشه .


چرا از Entity Framework استفاده می کنیم؟ :
1- دسترسی به داده ها را ساده می کنه و میتونیم مدل مفهومی مورد نیاز برای کسب و کار را ایجاد کنیم.
2- EF اجازه میده تا شما روابط چندبه چند (n:n) را بدون join ها زیاد و تکراری مدیریت کنید .
3- برای کاهش پیچیدگی کد ، جداول مرتبط را در یک Entity مدل می کنه .
4- پشتیبانی کامل از ارث بری ها برای جدول به ازای سلسله مراتب .
5- دارای مکانیسم خیلی خیلی قوی Query گیری از Entity هاست. کسایی که نمیخوان از LINQ استفاده نیستند، میتوانناز Entity Client provider همراه با EntitySQL استفاده کنن .
6- مستقل از نوع پایگاه داده هستش و بر اساس استاندارد ADO.NET Providers کار می کنه.​


این بخش پایین خیلی مهم هستش حتما با دقت بخونید !
روش های استفاده از EF :
1- روش Database First
2- روش Model First
3- روش Code First​


تا اینجا بررسی کردیم که چرا باید از EF استفاده کنیم، و انواع اون رو هم براتون توضیح دادیم
سعی میکنم یه مروری به تک تک روش ها داشته باشیم

1) روش Database First :
یعنی وظیفه توسعه دهنده نرم افزار این است که پایگاه داده رو ایجاد کند. حالا با دادن این پایگاه داده به Entity Framework، یک فایل مدل با پسوند edmx تحویل بگیره. تو این فایل که یک فایل xml هستش ، اطلاعات مربوط به موجودیتها، خصوصیات هر موجودیت و نوع داده هر خصوصیت نوشته شده .
(دقت کنید به این قسمت از فایل مدل مدل مفهومی گفته می شوه).
در فایل مدل علاوه بر مدل مفهومی، مدل فیزیکی هم قرار داره. مدل فیزیکی اطلاعات مربوط به جداول پایگاه داده و فیلدهای هر جدول و حتی نوع داده هر فیلد قرار میگیره . فایل مدل شامل قسمت دیگری هستش که میگه جداول پایگاه داده به چه موجودیتهایی نوشته شدن .

2) روش Model First :
تو این روش وظیفه توسعه دهنده نرم افزار ، ایجاد مدل هستش . یعنی برنامه نویس ما خودش فایل edmx را درست میکنه . بعد از این کار می توانه از EF بخواهد تا پایگاه داده مربوط به این مدل را ایجاد کنه. برای این کار از یه ابزار ویژوال به اسم Entity Data Model Designer استفاده می کنن.
این ابزار ویژوال بسیار قدرتمند هستش و امکاناتی از مثل ساختن موجودیتها، تعیین ارتباط بین موجودیتها، ایجاد کلید برای هر موجودیت، کاردینالیتی رابطه ها و یه سری چیز های دیگه رو در اختیار توسعه دهنده قرار می دهه.

3) روش Code First :
این روش خودش شامل دو قسمته :
1-3: این هستش که توسعه دهنده کلاس های مربوط به هر موجودیت رو درست میکنه . این کار را با برنامه نویسی انجام میدن . یعنی باید تک تک کلاسها، به همراه خصوصیات هر کلاس و البته خصوصیات Navigation رو با برنامه نویسی درست کنن . خصوصیات Navigation آن دسته از خصوصیاتی هستند که ارتباط آن کلاس را با کلاس های دیگر مشخص می کنن. تو این روش هیچ فایل مدلی نداریم ! .
2-3: این هستش که مثل روش Database First اول توسعه دهنده یه پایگاه داده درست میکنه ، و بعدش مدل رو درست میکنه ، بعدش از یک افزونه می خواد که موجودیتها را به همراه Context ایجاد کنه و اینها را از مدل جدا کنه. اگر موجودیتها به این طریق ایجاد بشن به آنها POCO گفته می شوه.
فرق آن با روش Database First دقیقا تو همین نکته هستش . اینجا فایل مدل (فایل edmx ) فقط اطلاعات مربوط به موجودیتها را نگهداری می کنه و در Code Behindآن هیچ کدی نوشته نمی شوه.
 

hunter548

بی وفــا
مزایا و معایب Entity Framework


مزایا:
1- یادگیری ساده و اسون : کار با EF به نسبت بقیه ORMها خیلی ساده تر هستش .
2- پشتیبانی از پایگاه داده های مختلف تو آخرین نسخه ها .
3- توسعه روز به روز و فعال: همانطوری که تو جلسه قبل گفتم ، به نظر می رسدMicrosoft ، قصد جدی تو توسعه این قابلیت داره. اضافه شدن امکانات زیاد به نسخه 4 این مطلب رو کاملا تائید میکنه .
مثل امکان Code First، Lazy Loading و… که تو نسخه 4 به EF اضافه شدن .
4- با استفاده از ساختار شیء گرایانه سازگار با انواع سیستم های مدیریت داده میتونید به راحتی کار کنید.
5- Linq رو کامل پشتیبانی میکنه.
6- با نصب StudioVisual با صورت خودکار نصب میشه .
7- میتونید چندین مدل مفهومی رو به یه ساختار پایگاه داده متصل کنید .
8- برنامه نویس ها از کدنویسی زیادی و پیچیده رها می شن .
9- بدون کوچک ترین تغییر کد برنامه میتونیم مدل ارتباط بین پایگاه داده و مدل مفهومی رو تغییر بدیم .
10- ابزار رسمی Microsoft: از اونجا که این ابزار توسط Microsoft ارائه شده ، میشه انتظار محبوب تر شدن اون رو هم طی زمان داشت.​

معایب:
1- امکانات ناکافی : با وجود اضافه شدن امکانات زیادی به نسخه 4، اما این ابزار هنوز نسبت به ORMهای محبوب، دارای کم و کاستی هایی هست که بدون شک با امدن نسخه های جدید حتما رفع خواهد شد .
2- تسلط پایین بر کد تولید شده: به خاطر استفاده از Designer، روی کدی که تولید میش، نمی توان تسلط زیادی داشت که البته با استفاده از کلاسهای partial، این مساله بهبود پیدا میکنه .​


یه نکته کوچیک :

دوستان من اول قصد داشتم تو همون پست اول استارت کار و برنامه نویسی رو بزنم ، اما واقعا نمیشه !!
باید یه مقدمه ای برای شروع داشته باشید ...
تازه خیلی از نکته ها و مطالب دیگه ای که باید بهتون قبل شروع آموزش میگفتم رو فاکتور گرفتم
و فقط موارد لازم و مهم برای شروع رو به شما آموزش دادم .
که زودتر بریم سر اصل مطلب و فیلم های آموزشی ...
 

hunter548

بی وفــا
[h=2]ساخت دیتابیس/// جلسه چهارم ...[/h]

آموزش ساخت دیتابیس در محیط sql


تو این آموزشی که آماده کردم یاد می گیریم:
که چطور یه دیتابیس رو همراه با فیلدهای مورد نظر در sql درست کنیم + یه سری توضیحات و...



زمان فیلم: 8 دقیقه
حجم(قبل از فشرده سازی) : 280 MB
حجم(فایل های دانلودی) : 38 MB
دوستان توجه داشته باشید که 8 پارت هستش (4 پارت این پست و 4 پارت دیگر تو پست بعدی)
که برای خارج کردن فیلم از حالت فشرده باید هر 8 قسمت رو دانلود کنید
paperclip.png
فايل هاي پيوست شده
 

hunter548

بی وفــا

Entity Data Model From a Database


تو این جلسه چی یاد میگیریم :
تو این جلسه آموزش ساخت Data Model رو از با استفاده از دیتابیس در محیط Vs2012 بهتون آموزش میدم ...
میشه گفت اولین مرحله شروع کار با EF هستش .



زمان فیلم: 4 دقیقه
حجم(قبل از فشرده سازی) : 123 MB
حجم(فایل های دانلودی) : 19 MB


انشالله تو جلسه بعدی مباحث پیشرفته تر Entity Framework رو بررسی میکنیم ...
یاحق/.
66.gif

paperclip.png
فايل هاي پيوست شده
 

hunter548

بی وفــا

Add Data with Entity Framework


تو این جلسه یاد میگیریم :
آموزش اتصال DataGridView به دیتابیس و نحوه اضافه کردن اطلاعات مورد نظر در تیبل رو در محیط Vs2012 بهتون آموزش میدم ...

نکته :
+ کل کدهای پروژه تا این جلسه و یه فایل متنی حاوی یه سری نکات هم پیوست شد .


زمان فیلم : 10 دقیقه
حجم(فایل های دانلودی) : 6.1 MB


paperclip.png
فايل هاي پيوست شده​

 
بالا