بحث های تخصصی کامپیوتر (همدان)

شبکه - برنامه نویسی- و غیره(delphi-c- pascal -php -asp-vb,...

بحث های تخصصی کامپیوتر (همدان)

شبکه - برنامه نویسی- و غیره(delphi-c- pascal -php -asp-vb,...

ارتباط به منابع داده در ADO.NET

ارتباط به منابع داده در ADO.NET
 
بمنظوراتصال به یک منبع داده ، می بایست در ابتدا یک Net Data Provider . ، انتخاب گردد . Data Provider ، کلاس های لازم بمنظور اتصال به یک منبع داده ، خواندن اطلاعات ، ویرایش ، بهنگام سازی و انجام عملیات متفاوت بر روی داده ها را ارائه می نماید . در این مقاله به تشریح انواع Data Provider پرداخته و با نحوه انتخاب مناسب آنان بمنظور استفاده در برنامه ها ، آشنا خواهیم شد .

NET Data Provider . چیست؟
NET Data Provider .، یک Component کلیدی ارائه شده بهمراه معماری ADO.NET بوده که امکان ارتباط بین یک منبع داده و یک Component ، یک سرویس وب XML و یا یک برنامه را فراهم می نماید. یک NET Data Provider .، امکان اتصال به منبع داده ، بازیابی داده ها ، انجام عملیات بر روی داده ها و بهنگام سازی منبع داده را فراهم می نماید. بهمراه فریمورک دات نت ، Provider های زیر ارائه شده است :

SQL Server .NET Data Provider

OLE DB .NET Data Provider

در آینده برای سایر منابع داده ، NET Data Provider . مربوطه ایجاد و در دسترس عموم برنامه نویسان قرار خواهد گرفت. هر Provider ، مسئولیت پیاده سازی کلاس های عمومی ADO.NET را برعهده خواهد داشت . دستاورد رویکرد فوق ، ارتباط با منابع داده متفاوت با استفاده از یک روش یکسان از طریق محیط های برنامه نویسی خواهد بود .

کلاس های NET Data Provider .
ADO.NET ، از NET Data Provider . ، بمنظور ارتباط به منبع داده ، بازیابی ، عملیات برروی داده ها و بهنگام سازی منبع داده استفاده می نماید . هر Provider ، بگونه ای طراحی می گردد که دارای حجم اندکی بوده و یک لایه حداقل بین کد های نوشته شده و منبع داده را ایجاد نمایند . ( افزایش کارائی بدون قربانی نمودن پتانسیل ها !)

فریمورک دات نت ، دارای دو Data Provider است :

SQL Server .NET . امکان دستیابی بهینه به SQL Server 2000 و بانک های اطلاعاتی SQL Server 7.0 را فراهم می نماید. بدین منظور می بایست از namespace با نام System.Data.Sqlclient بهمراه برنامه ها، استفاده گردد . Provider فوق، نسبت به OLE DB .NET Data Provider ، دارای کارآئی بمراتب بیشتری است (برای ارتباط با منبع داده از لایه های اضافه دیگر نظیر: OLE DB و یا ODBC استفاده نمی گردد ).

OLE DB .NET . امکان دستیابی به SQL Server 6.5 و یا نسخه های قبل از آن ، بانک های اطلاعاتی نظیر اوراکل ، Sybase ، DB2/400 و اکسس ماکروسافت را فراهم می نماید . بمنظور استفاده از Provider فوق ، می بایست از namespace با نام System.Data.OleDb بهمراه برنامه ها ، استفاده گردد .

علاوه بر موارد فوق ، ماکروسافت در صدد ارائه یک ODBC .NET Data Provider برای دستیابی به سایر منابع داده است .
ADO.NET ، از یک مدل شی گراء در رابطه با NET Data Providers . استفاده می نماید . در SQL Server .NET Data Provider ، اسامی کلاس ها با پیشوند Sql آغاز می گردد . مثلا" کلاس Connection ، SqlConnection نامیده می شود. در OLE DB .NET Data Provider ، اسامی کلاس ها با پیشوند OleDb ، آغاز می گردد . مثلا" کلاس Connection دارای نام OleDbConnection ، می باشد. چهار کلاس اساسی زیر، سهم عمده ای در شکل دهی یک NET Data Provider . را برعهده دارند .

XxxConnection . کلاس فوق ، بمنظور ایجاد یک Connection به یک منبع داده خاص استفاده می گردد . مثلا" کلاس SqlConnection ، باعث اتصال به منابع داده SQL Server ، می گردد .

XxxCommand . کلاس فوق ، بمنظور اجرای یک دستور از طریق یک منبع داده ، استفاده می گردد . مثلا" کلاس SqlCommand ، امکان اجرای Stored Procedure و عبارات SQL در رابطه با یک منبع داده SQL Server ، را فراهم می نماید .

XxxDataReader . از کلاس فوق ، بمنظور خواندن اطلاعات از یک منبع داده بصورت فقط خواندنی و Forward-only ، استفاده می گردد . مثلا" کلاس SqlDataReader ، امکان خواندن سطرهائی از جداول در رابطه با یک منبع داده SQL Server را فراهم می نماید . کلاس فوق، بعنوان خروجی متد ExecuteReader از کلاس XxxCommand ، برگردانده می شود. ( اغلب بعنوان ماحصل اجرای یک عبارت SELECT SQL )

XxxDataAdapter . کلاس فوق ، از اشیاء XxxCommand استفاده تا یک DataSet را حاوی داده های مورد نظر نماید. در این راستا ، امکان بهنگام سازی اطلاعات نیز فراهم می گردد . مثلا" کلاس SqlDataAdapter ، امکان مدیریت ارتباط بین یک Dataset و داده های ذیربط در یک منبع داده SQL Server را فراهم می نماید.

نحوه انتخاب یک Data Provider
انتخاب یک NET Data Provider . مناسب برای یک برنامه، بستگی به نوع منبع داده ئی دارد که قصد ارتباط با آن وجود دارد.

نحوه مراجعه به یک NET Data Provider .
با استفاده از Solution Explorer در ویژوال استودیو دات نت ، می توان مدیریت مراجعات به اسمبلی هائی که مسئولیت NET Data Provider . را بر عهده دارند ، انجام داد . اسمبلی System.Data.dll ( بصورت فیزیکی یک فایل DLL است ) مسئولیت پیاده سازی SQL Server .NET Data Provider و OLE DB .NET Data Provider را از طریق Namespace های System.Data.SqlClient و System.Data.OleDb ، بر عهده داشته و اسمبلی System.Data.Odbc.dll چنین رسالتی را در رابطه با ODBC .NET Data Provider ، انجام خواهد داد . اسمبلی فوق ، در زمان نصب ویژوال استودیو دات نت ، نصب نخواهد شد . برای دریافت اسمبلی فوق ، می توان از طریق آدرس : http://msdn.microsoft.com/download ، اقدام و پس از کلیک نمودن بر روی NET Framework .، گزینه ODBC .NET Data Provider را انتخاب کرد . بدین ترتیب، زمینه دریافت فایل فوق فراهم می گردد . پس از دریافت اسمبلی فوق ، می توان بصورت دستی (Manaually) در یک پروژه به آن مراجعه و از ODBC .NET Data Provider فوق ، استفاده کرد .

SQL Server .NET Data Provider
Provider فوق ، لایه ای نازک بین یک برنامه و SQL Server ایجاد می نماید. با توجه به اینکه این Provider ، از پروتکل اختصاصی خود ( TDS: Tabular Data Stream ) بمنظور ارتباط با یک سرویس دهنده SQL استفاده می نماید ، حجم آن اندک و دستیابی به سرویس دهنده SQL مستقیما" و بدون استفاده از لایه های اضافه دیگر ، انجام می گیرد . بدین ترتیب کارائی و قابلیت توسعه سیستم ، بهبود پیدا خواهد کرد .

OLE DB .NET Data Provider
Provider فوق ، بمنظور اتصال به یک منبع داده از OLE DB و COM بصورت ذاتی استفاده می نماید . بنابراین می بایست از یک OLE DB Provider استفاده گردد که خود از OLE DB .NET Data Provider استفاده می نماید . بمنظور استفاده از OLE DB .NET Data Provider ، می بایست نوع Provider بصورت یک رشته ، مشخص گردد . واژه Provider در رشته فوق بیانگر نوع OLE DB منبع داده ئی است که به آن متصل می گردیم .
مثلا" "Provider = MSDAORA" ، شما را به یک بانک اطلاعاتی اوراکل متصل می نماید . در زمانیکه از SQL Server .NET Data Provider ، استفاده می شود ، نیازی به استفاده از واژه Provider نخواهد بود ( فرض می شود که SQL Server 7.0 و یا قبل از آن باشد) . جدول زیر نمونه هائی در این زمینه را نشان می دهد :

مثال
منبع داده

Provider = SQLOLEDB;Data Source = Tehran ;Initial
Catalog = pubs;User ID = sa ; Password = 999; SQL Server 6.5

Provider = MSDAORA ; Data Source = ORACLE817 ; User
ID = OLEDB ; Password = OLEDB ; Oracle server

Provider = Microsoft.Jet.OLEDB.4.0;
Data Source = C:MydbFirstdb.mdb ;
Microsoft Access database


ODBC .NET Data Provider
Provider فوق ، بمنظور اتصال به یک منبع داده از توابع API مربوط به ODBC بصورت ذاتی استفاده می نماید. این Provider ، بصورت یک اسمبلی مجزاء و با نام System.Data.Odbc.dll ، پیاده سازی شده و بصورت پیش فرض در تمپلیت های پروژه در ویژوال استودیو دات نت ، انتخاب نشده و می بایست بصورت دستی به آن مراجعه گردد .

مثال
Provider/Driver
منبع داده

Driver ={Microsoft ODBC for Oracle };
Server = ORACLE817;UID=OLEDB;
PWD = OLEDB; ORA ODBC Oracle Server

Driver = {Microsoft Access Driver (*.mdb)};
DBQ = C:MydbFirstdb.mdb ; Jet ODBC Microsoft Access database


خلاصه
برای انتخاب یک NET Data Provider . ، موارد زیر پیشنهاد می گردد :

اگر منبع داده از نوع SQL Server 7.0 و یا SQL Sever 2000 می باشد ، SQL Server .NET Data Provider انتخاب گردد .
اگر منبع داده از نوع SQL Server 6.5 و قبل از آن باشد ، OLE DB .NET Data Provider انتخاب گردد .
اگر منبع داده شامل هر نوع منبع داده نامتجانس باشد که امکان دستیابی به آن از طریق OLE DB Provider ، وجود داشته باشد ،
از OLE DB .NET Data Provider استفاده گردد .

اگر منبع داده شامل هر نوع منبع داده نامتجانس باشد که امکان دستیابی به آن از طریق ODBC driver ، وجود داشته باشد ،
از ODBC .NET Data Provider استفاده گردد .

در بخش دوم این مقاله به بررسی نحوه تعریف یک Connection خواهیم پرداخت

چرا سایت ما در موتورهای جستجو ثبت نمی شود؟

چگونه می توانیم از قرار گرفتن سایتمان در لیست سیاه موتورهای جستجو جلوگیری کنیم؟


اگر متوجه شده اید که هرکاری میکنیدنمی توانید سایت خودتان را در موتورهای جستحو ثبت کنید، این مطلب را حتما بخوانید.

بهترین روش برای برای جلوگیری از بروز این مشکل، عدم استفاده از روشهای سوال برانگیز برای موتورهای جستجو است. البته اگر متوجه شدید که با استفاده از روشهائی که در ادامه این مبحث ارائه شده ، بازهم سایت شما در لیست سیاه نیست، بدانید که در حال حاضر بدلیل استفاده از این روشها رتبه سایت شما پائین آمده و در آینده نه چندان دور سایت شما در این لیست قرار خواهد گرفت. در ادامه این مبحث از سایتهائی که نام آنها در لیست سیاه قرار میگیرد با عنوان سایتهای بلوکه شده نام می بریم. بلوکه شدن یک سایت می تواند از طریق بلوکه شدن نام دامنه سایت شما یا آی پی آدرس سایت شما باشد.
اما اینکه از چه کارهائی باید اجتناب کنیم تا سایت ما در لیست سیاه موتورهای جستجو قرار نگیرد و بلوکه نشود.

1- سایت دوقلو
سایتهای دوقلو به سایتهائی گفته می شوند که محتوای یکسانی دارند اما آدرس دسترسی به آنها متفاوت است. استفاده از دو آدرس با محتوای یکسان یکی از روشهائی است که تعدادی از سایتها یا مشاوران سایتها برای بالا بردن رتبه سایت (Page Ranking) استفاده می کنند. استفاده از این روش می تواند باعث بلوکه شدن کل سایت شما بشود.

2- مخفی سازی
تعدادی از سایتها با استفاده از صفحاتی که برای موتورهای جستجو بهینه شده اند ولی محتوای چندانی برای کاربارن سایت ندارند، بعنوان صفحات ورودی استفاده می کنند. این صفحات برای معرفی سایت به موتورهای جستجو استفاده می شوند در حالیکه صفحات اصلی سایت برای بازدیدکنندگان متفاوت هستند. این صفحات بطور خودکار توسط موتورهای جستجو در سایت تشخیص داده شده و در کوتاه مدت باعث کاهش رتبه سایت وو در بلند مدت باعث بلوکه شدن سایت خواهد شد.

3- متون غیر قابل مشاهده
استفاده از متون قیر قابل مشاهده هم یکی از روشهای نادرست برای بالا بردن رتبه سایت در موتورهای جستجو است. در این روش متونی را که از نظر محتوائی نباید در صفحه نشان داده شود را با رنگ پس زمینه در صفحه سایت قرار می دهند. این متون عموما به گونه ای هستند که بصورت عادی می توانند باعث افزایش رتبه سایت در موتورهای جستجو شوند. اما بدلیل اینکه روش ارائه ( غیر قابل مشاهده بودن) روش غیر قابل قبول موتورهای جستحو است، توسط روباتهای متور جستجو تشخیص داده شده و باعث کاهش رتبه و در نهایت بلوکه شدن سایت می شود.

4- اقدام به ثبت سایت به مقدار زیاد
اقدام به ثبت یک سایت یک صفحه ای از سایت با تکرار زیاد هم می تواند دلیلی بر بلوکه شدن سایت باشد. در 24 ساعت نباید به دفعات زیادی اقدام به ثبت یک سایت کرد. بعضی از موتروهای جستجو زمان 30 روز را برای فاصله بین دفعات ثبت سایت در نظر می گیرند. بنابراین برای سایتهائی که این قانون را نقض می کنند، مشکلاتی در این موتور جستجو پیش می آید. توصیه می شود قبل از اقدام به ثب سایت خود در موتور جستجو حتما بخش مربوط به قوانین آنرا مطالعه کنید تا با این مشکل مواجه نشوید.

5- استفاده از کلمه های کلیدی نامربوط
استفاده از کلمه های کلید نامربوط به محوای سایت نیز می تواند دلیلی بر پائین بودن رتبه سایت در موتورهای جستجو باشد. استفاده از محتوای صفحه وب بعنوان کلمات کلیدی می تواند باعث بلوکه شدن سایت شود. منطقیترین روس این است که تعدادی کلمه کلیدی مرتبط با محتوای صفحه در بخش کلمات کلیدی قرار گیرد.

6- اقدام به ثبت سایت بصورت خودکار
تعدادی از سایتهای اینترنتی پیشنهاد ثبت سایت شما در تعداد زیادی از موتورهای جستجو را می دهند، استفاده از این روش هم می تواند تاثیر منفی در رتبه سایت شما داشته باشد. در صورت تداوم این عمل می توان انتظار بلوکه شدن کل سایت در موتور جستجو را هم داشت.
البته این مسئله بیشتر در مورد موتورهای جستجوی مادر صدق می کند.

7- صفحات ورودی
منظور صفحاتی هستند که محتوای زیادی برا بازدیدکنندگان شما ندارند اما برای موتورهای جستجو بهینه شده اند. اینص فحات به گونه ای طراحی شده اند که بصورت خودکار یا دستی بازدیدکنندگان را به صفحات بعدی در سایت راهنمائی می کنند. استفاده از این صفحات را می توان با تکنیکهائی از دید بازدیدکنندگان پنهان کرد اما از دید موتورهای جستجو و روباتهای آن پنهان نمانده و برای کل سایت ایجاد مشکل می کند.

8- استفاده از وب سایتهای رایگان
استفاده از وب سایتهای رایگان می تواند دلیل بر کم بودن رتیه یک سایت علیرغم استفاده از تمام تکنیکهای بهینه سازی باشد. زماینهائی که سایتهای رایگان در دسترس نیستند، بدلیل اینکه مثلا پهنای باند در نظر گرفته شده برای ماه مصرف شده است، یاعت کاهش رتبه سایت می شود. التبه این اتفاق می تواند بر روی سرویسهای ارزان هم رخ بدهد. اگر در زمانی که روبات موتور جستجو به سایت شما مراجعه می کند، سایت شما در دسترس نباشد ، تاثیر زیادی در کاهش رتبه سایت شما خواهد داشت. به همین دلیل استفاده از سرویسهای ارزان یا رایگان را برای سایتهای حرفه ای ، مقرون به صرفه نیست.

9- مشکل آدرس اینترنتی
اگر از همه روشهای گفته در طراحی سایت خود اجتناب کردید و بازهم مشاهده کردید که سایت شما بعد از گذشت چند ماه در موتورهای جستجو وجود ندارد، احتمالا مشکل از سرویس هاستینگ شماست. گاهی اتفاق می افتد که یک موتور جستجو یک آدرس آی پی را بلوکه می کند. در این حالت کلیه سایتهائی که از آن آی پی استفاده می کنند هم دچار مشکل می شوند. این اتفاق بیشتر برای هاستینگهائی می افتد که با استفاده از برنامه های خودکار سایتهای خود را در موتورهای جستجو و با روشهای غیر مجاز ثبت می کنند.