کار کردن با دیتابیس ها در فریم ورک Net. و Net Core.

با درس بعدی از سری آموزش مدرن سازی اپلیکیشن های دسکتاپ با استفاده از Net Core. و ویندوز ۱۰ در خدمت شما هستیم. در قسمت قبلی در رابطه با چالش‌های استفاده کردن از فایلهای Configuration در فریم ورک Net. و نقطه مقابل آنها در Net Core. صحبت کردیم. حتما توصیه می‌کنیم که قسمت‌های قبلی از این آموزش را مطالعه کرده چرا که مطالب ارائه شده به صورت زنجیروار با یکدیگر در ارتباط هستند.در این قسمت می خواهیم در رابطه با چالش‌های منتقل کردن یک اپلیکیشن از فریم ورک Net. به Net Core. از نقطه ‌نظر کارکردن با بانک‌های اطلاعاتی صحبت کنیم.دسترسی پیدا کردن به بانک‌های اطلاعاتیاحتمالاً می دانید که امروزه تقریباً تمامی اپلیکیشن های دسکتاپ نیاز است که به شکلی با بانک‌های اطلاعاتی کار کنند. برای مثال دسترسی پیدا کردن به بانک های اطلاعاتی که در معماری‌های کلاینت-سرور تعریف شده است یک موضوع بسیار معمول در اپلیکیشن های دسکتاپ به حساب می‌آید. در این نوع از معماری های یک اتصال مستقیم بین اپلیکیشن دسکتاپ و دیتابیس وجود دارد.دیتابیس های مربوطه می‌توانند به صورت Local و یا Remote بسته به نیاز نرم افزار مورد نظر و موضوعات مربوط به اشتراک گذاری داده ها بین کاربران مختلف قرار بگیرند.در دنیای توسعه نرم افزارهای دسکتاپ و از نقطه نظر کدنویسی تکنولوژی ها و Framework های مختلفی در اختیار برنامه‌نویسان و توسعه‌دهندگان قرار می گیرد تا بتواند به سادگی به بانک‌های اطلاعاتی متصل شده و Query های مورد نظر خود را صادر کنند و یا حتی داده‌ها را به روز رسانی نمایند.مثال های معمول روش ها و تکنیک های کار کردن با بانک‌های اطلاعاتی در اپلیکیشن های دسکتاپ شامل Microsoft Access و Microsoft SQL Server می باشد. ضمنا آن دسته از برنامه نویسانی که سابقه طولانی تری در توسعه نرم افزارهای دسکتاپ دارند با نام هایی از قبیل ODBC و OLEDB و RDO و ADO و ADO.Net و LINQ و Entity Framework آشنا خواهند بود. استفاده کردن از ODBCجالب است بدانید که در Net Core. می توانید بسیار ساده به استفاده کردن از ODBC بپردازید. دلیل این موضوع لحاظ کردن یک Namespace با نام System.Data.Odbc توسط مایکروسافت در Net. Standard 2 می باشد.استفاده کردن از OLEDBتکنولوژی OLEDB سالیان سال به عنوان روشی بسیار عالی برای دسترسی پیدا کردن به دیتا سورس های مختلف به شکل یکسان مورد استفاده قرار می‌گرفت. البته از آنجایی که OLEDB بر اساس COM کار می‌کند و COM نیز یک تکنولوژی مخصوص ویندوز می باشد نمی‌توان از آن در تکنولوژی Net Core. به عنوان یک تکنولوژی Cross Platform استفاده نمود. علاوه بر این موضوع استفاده کردن از OLEDB در SQL Server 2014 و نسخه‌های بعدی پشتیبانی نمی شود. به همین دلایل مایکروسافت تصمیم گرفته که OLEDB را در Net Core. لحاظ نکند.استفاده کردن از ADO.Netعلاوه بر این موضوع می‌تواند همچنان از ADO.Net به عنوان یک تکنولوژی برای دسترسی پیدا کردن به داده ها در اپلیکیشن های دسکتاپ مبتنی بر Net Core. استفاده کنید. برای انجام این کار فقط نیاز به بروزرسانی تعدادی از Nuget Package ها می باشند. استفاده کردن از EF Core و EF6احتمالاً می‌دانید که در حال حاضر دو نسخه Entity Framework با نام های Entity Framework 6 و Entity Framework Core وجود دارد. در ساختن اپلیکیشن های دسکتاپ با استفاده از Net Core. میتوان از Entity Framework 6 و Entity Framework Core استفاده کرد. آخرین نسخه انتشار یافته از Entity Framework به عنوان بخشی از فریم ورک دات‌نت همان Entity Framework 6.4 می باشد. با آغاز شدن Net Core. مایکروسافت تصمیم گرفت که یک تکنولوژی دسترسی پیدا کردن به داده ها که مبتنی بر Entity Framework بود را ایجاد کند و نام آن را Entity Framework بگذارد.همانطور که گفته شد می توان از EF 6.4 و EF Core درفریم ورک دات نت و Net Core. استفاده کرد. حال ممکن است بپرسید که بر چه اساس می‌توان یکی از این دو مورد را انتخاب کرد؟دقت کنید که EF 6.3 اولین نسخه از EF 6 بود که می‌توانست بر روی Net Core. اجرا شده و به صورت Cross Platform عمل کند. در واقع هدف اصلی مایکروسافت از این Release آسان تر کردن فرایند Migrate کردن اپلیکیشن های از قبل موجود که از EF 6 استفاده می‌کردند به Net Core. بود. تکنولوژی EF Core طوری پیاده‌سازی شد که برنامه نویس بتواند تجربه مشابهی در آن نسبت به EF 6 داشته باشد. به عبارت دیگر بسیاری از API های سطح بالا در EF Core نسبت به EF 6 یکسان هستند. بنابراین برنامه نویسانی که تجربه کار کردن با EF 6 را دارند به سادگی می توانند با EF Core ارتباط برقرار کنند.علی‌رغم اینکه این دو تکنولوژی با هم سازگار هستند تفاوت‌های زیادی در پیاده سازی آن ها می باشد که بهتر است قبل از انتخاب هر کدام موارد مهمی را بررسی کنید. در ادامه در رابطه با برخی از توصیه ها در مورد استفاده کردن از EF Core و یا EF 6 صحبت می کنیم. اگر شرایط زیر در پروژه شما حاکم است از EF Core استفاده کنید:اپلیکیشن شما نیاز به قابلیت های موجود در Net Core. دارد.تکنولوژی EF Core تمامی ویژگی های مورد نیاز اپلیکیشن مورد نظر را پشتیبانی میکند.علاوه بر این موضوع اگر یکی از دو شرط زیر در برنامه شما برقرار است از EF 6 استفاده کنید:اپلیکیشن فقط می بایست در ویندوز و مبتنی بر ورژن چهارم از دادنت فریم ورک و یا نسخه های بعدی اجرا بشود.تکنولوژی EF 6 که تمامی نیازمندی‌های مربوط به برنامه را جواب خواهد داد.کار کردن با بانک های اطلاعاتی رابطه ای: SQL Serverاحتمالا می‌دانید که تکنولوژی SQL Server برای مدت‌های زیادی انتخاب اصلی برنامه نویسان دات نت در زمان کار کردن با داده ها به حساب می‌آمد. با استفاده از یک Namespace با نام System.Data.SqlClient در فریم ورک Net. شما می توانستید به نسخه های مختلفی از SQL Server دسترسی پیدا کرده و با پروتکل های خاص دیتابیس ها کار کنید.در Net Core. یک کلاس مشابه به نام SqlClient قرار داده شده است که به طور کامل با کلاس هم نام خود در فریم ورک دات نت سازگاری دارد. تنها تفاوت این کلاس با کلاس مربوط به فریم ورک Net. در این است که در Net Core. کلاس SqlClient در کتابخانه Microsoft.Data.SqlClient قرار داده شده است. این موضوع نیازمند اضافه کردن یک Reference به یک Nuget Package به نام Microsoft.Data.SqlClient می باشد. بعد از انجام این کار نیز طبیعتاً نیاز به تغییر نام Namespace ها و دیگر قسمتهای کد خواهید داشت. گذشته از این موضوع رفتارهای دیگر این کلاس با کلاس SqlClient موجود در فریم ورک دات نت مشابه خواهد بود. کار کردن با بانک های اطلاعاتی رابطه ای: Microsoft Accessعلاوه بر Microsoft SQL Server سیستم بانک اطلاعاتی Microsoft Access نیز توسط بسیاری از برنامه نویسان در زمان عدم نیاز به پیچیدگی و پیشرفتگی SQL Server استفاده می‌شد. در Net Core. می توان با استفاده از کتابخانه System.Data.Odbc به بانک‌های اطلاعاتی Microsoft Access دسترسی پیدا کرد.منبع: وبسایت پرووید