تبليغاتX
برنامه نویس کوچولو

برنامه نویس کوچولو

یادداشتهای یه برنامه نویس خیلی ^ 100 کوچولو

معرفی متدولوژی LINQ

در اواخر سال 2007 شرکت مایکروسافت  .Net Framework 3.5 را به همراه Visual studio 2008 عرضه کرد که نسبت به نسخه های پیشین تغییرات چشمگیری پیدا کرده بود. حمایت ذاتی از AJAX (در نسخه های قبلی باید Asp.Net Ajax Framework از سایت Microsoft.com بارگذاری و روی سیستم نصب می گردید) ، معرفی چند کنترل جدید کار با داده ها درAsp.net مانند ListView ، ارائه کلاسهای جدید برای برنامه نویسی موبایل و ... که شکل (1) این تغیرات را  نشان میدهد. اما مهمترین تغییر ، معرفی متدولوژی  LINQ (Language Integrated Query) بود که  قصد داریم به معرفی آن بپردازیم.

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

 

 

امروزه داده ها بوسیله برنامه هایی که  می توانند به " دامنه های داده ای" مختلفی وابسته باشند مدیریت می شوند : آرایه ها ، اسناد XML ، پایگاه های داده ، فایل های متنی و حتی فایلهای نرم افزار Excel شرکت Microsoft  نمونه ای از این دامنه ها هستند.

هر دامنه مدل دستیابی  به داده مخصوص به خود را دارد.برای مثال هنگامی که  می خواهید پرس و جویی از یک پایگاه داده به عمل آورید ، به طور نمونه از زبان SQL استفاده می کنید ، یا برای کار با اسناد XML از DOM(Document Object Model) و یا XQuery  وبرای دستیابی به داده های یک فایل Excel از توابع API استفاده می کنید که هر کدام " مدل برنامه نویسی متفاوتی از همدیگر برای دستیابی به داده ها از منبع  داده ای دارند". LINQ  یک روش واحد برای دستیابی و مدیریت داده ها بدون توجه به منبع داده ای تعریف میکند.برای مثال در پرس و جوی LINQ زیر :

Var Query=

From C  in  Costumer

Where C.Country = "Italy"

                                                                                                                                      Select C.CompanyName

شاید این تصور پیش آید که این یک طرز برنامه نویسی جدید برای SQL است ولی اصلا اینگونه نیست بلکه یک پرس وجوی LINQ با استفاده از زبان C# 3.0 است. اولین سوالی که پیش می آید اینست که دامنه داده ای Costumer  چیست؟ آیا آرایه ای از Object  ها در حافظه است ؟ آیا یک جدول از پایگاه داده  و یا یک Dataset است؟ جواب اینست که همه اینها و این نقطه قوت LINQ در مقایسه با سایر مدلهای دستیابی به داده هاست و شما می توانید پرس و جوی بالا را برروی یک پایگاه داده SQL  ،Dataset  ، فایل متنی و .... به کار ببرید.البته باید توجه داشت که LINQ یک زبان نیست بلکه در واقع یک Syntax است. مثلا کد بالا  با زبان C# 3.0 نوشته شده است.

ساختار LINQ

LINQ تکنولوژی است که دامنه های داده ای زیادی را پوشش می دهد.برخی از این دامنه ها در شکل (2) نشان داده شده است.

همانطور که می بینید در ابتدا فقط زبانهای C# 3.0 و VB 9.0 از این فناوری پشتیبانی می کردند ولی مایکروسافت این امکان را قرار داده تا زبانهای دیگر هم بتوانند از آن استفاده کنند (اخیرا LINQ با PHP  و JavaScript  هم استفاده شده است).

مزیت دیگر LINQ اینست که پرس و جوهایی که با این Syntax نوشته می شوند توسط Debugger   قابل اشکال زدایی هستــند . همانطور که می دانــید تمــام قسمتهای کد یک برنامه به جز پرس و جوها قابل اشکال زدایی هستند  چرا که پرس وجوها به صورت رشته های متنی در می آیند و لی LINQ به خاطر اینکه خود بخشی از سورس کد است این مشکل را حل کرده است و این همان خاصیت Integrated بودن آنست. شکل 3 با دو پرس و جو  که اولی بدون استفاده از LINQ و دومی با استفاده از آن نوشته شده این تفاوت را نمایش میدهد.                    

                                                                            شکل ۳

     

برای استفاده از linq در php می توانید از آدرس زیر استفاده کنید :

PHPLinq

منبع : http://jahadu.blogfa.com/

+ نوشته شده در  سه شنبه هفتم خرداد 1387ساعت 12:12  توسط علیرضا مسکین ملک  |