برنامه نویسی 3 لایه

اگه مطالب وبسایت آی تی پرو رو خونده باشید قطعا دوره های طراحی بانک اطلاعاتی Sql server و تکنولوژی Ado.net رو دیدید. این دوره آموزش هم دقیقا مثل اون هاست اما با این تفاوت که فقط ساخت و اتصال دیتابیس به سی شارپ گفته نمی شه، بلکه تمرکز ما روی نحوه ی انجام این کاره. توی این سری آموزش ها از همون مفاهیم بهره گرفته میشه و پیشنهاد میکنم ابتدا سری به sql server، ado.net و oop بزنید.

یکی از بهترین روش های طراحی نرم افزار، بهره گیری از معماری 3 لایه است. توی این معماری، ما 3 لایه مرتبط به هم داریم. اولین لایه همون فرم یا صفحه ی برنامه ماست. یعنی همون چیزی که کاربر می بینه و از طریق اون با برنامه ارتباط بر قرار می کنه. لایه دوم Business نام داره. این لایه خواسته های فرم رو به لایه ی سوم یعنی Data منتقل می کنه و لایه سوم با توجه به اطلاعات ورودی از Business با دیتابیس ارتباط بر قرار می کنه. و چیزی هم هست به نام DataObject که یکسری اطلاعات داخلش ریخته میشه. شاید این اوایل درست متوجه نشید یا کاربردش رو درک نکنید اما یه ذره که جلو تر بریم می فهمید.

اول از همه باید یه Connection بسازیم. برای این کار کلاسی به اسم Connection ایجاد کنید. برای اینکه کلاس سبک بشه همه ی using هارو پاک می کنیم و فقط دو تا using مورد نیازمون رو می نویسیم. یعنی دو تا using زیر:

using System.Data;
using System.Data.SqlClient;

حالا مثل قبل باید یه کانکشن بسازیم. سطح دسترسی اون رو باید Private قرار بدیم چون نیازی به دسترسی به اون داخل لایه های دیگه برنامه نداریم. مقدار اون رو new نمی کنیم و با null قرار می دیم. مثل زیر:

private SqlConnection SqlCon = null;

حالا باید ConnectionString رو به اون بدیم. برای به دست اووردن ConnectionString دیتابیس به پنجره ی Data Sources مراجعه می کنیم. اگه این پنجره رو ندارید از منوی بالای ویژوال استودیو، وارد View شوید و از آیتم های داخل Other Windows گزینه ی Data Sources رو انتخاب کنید تا این پنجره زیر ToolBox ظاهر بشه. حالا روی Add new database کلیک کنید. داخل پنجره ی باز شده گزینه ی Database رو انتخاب می کنیم و روی Next کلیک می کنیم. در مرحله ی بعد Dataset رو انتخاب می کنیم و به مر حله ی بعد میریم. الآن روی دکمه ی New Connection کلیک می کنیم. به طور پیشفرض نوع دیتابیس روی Microsoft Access Database (OLEDB) تنظیم شده. اما ما با دیتابیس Sql server کار داریم. پس روی Change کلیک می کنیم و Microsoft SQL Server رو انتخاب می کنیم. این هارو توی مطالب دیگه ی سایت آی تی پرو می تونید مفصل ببینید به همین دلیل زود رد می شم و زیاد توضیح نمی دم. توی قسمت Server name نام سروری که دیتابیسمون روش هست رو باید وارد کنیم. دیتابیس ما روی سیستم خودمونه پس عبارت localhost یا یک نقطه رو وارد می کنیم. در قسمت Connect to database اسم دیتابیسمون رو انتخاب می کنیم که برای ما DBtest هست. بعد از انتخاب دیتابیس روی Ok کلیک می کنیم. حالا دوباره پنجره ی اول که New Connection توش بود نمایش داده میشه.

روی علامت + کلیک می کنیم و ConnectionString رو کپی می کنیم.

حالا ما از طریق App.config اقدام به معرفی کانکشن استرینگ می کنیم. برای اینکه به اون فایل وارد بشیم، باید به پنجره ی Solution بریم و App.config رو باز کنیم. اوه! با کد های xml روبه شدیم. خونسردیمون رو حفظ می کنیم و تگ ConnectionStrings رو می سازیم. به صورت زیر:

  <connectionStrings>

  </connectionStrings>

داخل این تگ هر تعداد ConnectionString که بخوایم رو می تونیم قرار بدیم. ما فعلا یه دونه داریم. پس یک تگ دیگه به اسم add ایجاد می کنیم. این تگ چند تا خصوصیت داه که باید تما اونا رو تنظیم کنیم. اولیش name هست که اسم کانکشن استرینگ خودمون رو داخل قرار میدیم. می زاریمش SqlConnection. هر چیزی می تونیم قرار بدیم. جالا خاصیت دوم یعنی ConnectionString رو مقدار دهی کنیم. ما همون چیزی که ابتدا کپی کردیم رو قرار میدیم.

  <connectionStrings>
    <add name="SqlCon" connectionString="Data Source=.;Initial Catalog=DBtest;Integrated Security=True"/>
  </connectionStrings>

کل فایل App.config ما به صورت زیر شد:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="SqlCon" connectionString="Data Source=.;Initial Catalog=DBtest;Integrated Security=True"/>
  </connectionStrings>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

حالا بر می گردیم به کلاس Connection که قبلا ساختیم. داخل این کلاس باید یک بار Connection رو باز کنیم بعد ببندیم. اما این دو تا کار باید جدا گونه باشه. چون ابتدا باید باز کنیم و کامند یا آداپتور رو به اون متصل کنیم و در آخر ببندیمش. بنابراین نیاز به دو تا متد داریم تا بتونیم جداگونه به باز و بسته کردنش دسترسی داشته باشیم. یعنی یک متد برای باز کردن و یک متد برای بستن کانشن. ابتدا متد باز کردن کانکشن رو می نویسیم. سطح دسترسی اون رو Public قرار میدیم چون از لایه های دیگه باید بهش دسترسی داشته باشیم. نوعش رو هم SqlConnection میذاریم چون خروجیش باید SqlConnection باشه. به صورت زیر:

public SqlConnection OpenSqlCon()
{

}

برای اینکه ConnectionString رو بدیم به کانشکشن خودمون، باید بهش آدرس اون رو داخل فایل App.config بدیم. ابتدا یک متغیر از نوع رشته یا string تعریف می کنیم. مقدارش رو قراره همون کانکشن استرینگ تعریف شده بدیم. پس نیاز به یک رفرنس جدید داریم که پیشفرض داخل برنامه اضافه نشده. بنابراین از طریق منوی Solution، روی قسمت Refereces کلیک راست می کنیم و روی Add Reference کلیک می کنیم. داخل پنجره ی باز شده عبارت Configuration رو جست و جو می کنیم و رفرنس نمایش داده شده رو تیک می زنیم و اوکی می کنیم تا اضافه شه. حالا میریم سراغ استرینگمون و اسمش رو StrCon میزاریم. بعد برای معرفی ConnectionString عبارت زیر رو جلوش قرار میدیم:

System.Configuration.ConfigurationManager.ConnectionStrings["SqlCon"].ConnectionString;

به جای کلمه ی SqlCon که داخل دابل کوتیشن قرار داره می تونیم اسم هر ConnectionString دیگه که داخل App.config تعریف کردیم رو قرار بدیم. الآن استرینگ StrCon برابر شده با ConnectionString شده. حالا اون کانکشنی که قبلا ساختیم رو new می کنیم و StrCon رو بهش میدیم.

SqlCon = new SqlConnection(StrCon);

حالا اون رو باز می کنیم و return می کنیم. مثل زیر:

public SqlConnection OpenSqlCon()
{
    string StrCon = System.Configuration.ConfigurationManager.ConnectionStrings["SqlCon"].ConnectionString;
    SqlCon = new SqlConnection(StrCon);
    SqlCon.Open();
    return SqlCon;
}

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

public void CloseSqlCon()
{
    if (SqlCon != null)
    {
        if (SqlCon.State == ConnectionState.Open)
        {
            SqlCon.Close();
        }
    }
}

الآن با فراخوانی متد OpenSqlCon از هر جای برنامه می تونیم اون رو باز کنیم و در آخر هر با CloseSqlCon اون رو ببندیم. ادامه آموزش رو در جلسات بعدی دنبال کنید.

#آموزش_برنامه_نویسی #برنامه_نویسی
عنوان
1 برنامه نویسی 3 لایه رایگان
2 برنامه نویسی 3 لایه قسمت 2 رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....