PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : Linq چیست؟



hoora
19th November 2009, 09:48 PM
یا زبان پرس و جوی یکپارچه (Language Integrated Query) تکنولوژی جدیدی است که شرکت ماکروسافت با عرضه نسخه ی سوم Net. آنرا معرفی نمود.

تا کنون مطالبی مختلفی در مورد آن شنیده اید از قبیل اینکه:

ü LINQ یک مدل عمومی برنامه نویسی برای هر نوع از داده هاست،

ü LINQ شما را قادر می سازد که داده ها را دستکاری و یا پرس و جوهایی مستحکم مستقل از منبع داده فراهم آورید،

ü LINQ به تعبیه کردن پرس و جوهای های SQL در کد کمک می کند،

ü LINQ یک لایه انتزاعی داده است.

تمامی این توصیفات تا حدی درست هستند اما هرکدام صرفا یک جنبه از LINQ را بیان می کند. LINQ قدرتی بسیار بالاتر از قراردادن کوئری های SQL دارد، بسیار ساده تر از استفاده یک مدل یکسان (uniform) برنامه نویسی است و بسیار فراتر ازمجموعه قوانین برای مدل سازی داده هاست.

این زبان در پی پاسخ‌دادن به مسئله پیچیده‌ای در دنیای برنامه‌نویسی پیشرفته است كه مثلث راكس (ROX Triangle) نامیده می‌شود.



مثلث راكس چیست؟

این روزها اكثر برنامه‌نویسانی كه با زبان‌های شی‌گرایی مثل ‍C# یا JAVA كار می‌كنند، از دو ابزار مهم دیگر نیز برای ساختن برنامه‌های خود استفاده می‌كنند:

یكی از این ابزارها دیتابیس یا همان بانك‌اطلاعاتی، و دیگری XML است.

مشكلی كه برنامه‌نویسان با آن درگیرند این است كه هر یك از این سه ابزار از منطق و مدل داده‌ای (Data Model) متفاوتی پیروی می‌كنند. مدل داده‌ها در بانك‌های اطلاعاتی معمولاً زبان SQL است. در حالی كه هر زبان برنامه‌نویسی مدل داده‌ای خاصی دارد. مثلاً پلتفرم دات‌نت از فناوری ADO.NET ‌استفاده می‌كند. واضح است كه مدل داده‌ها در ADO.NET و SQL تفاوت‌های زیادی با هم دارند. مدل داده‌ها در فرمت XML هم به Node و Element است. در XML باید از زبان XQuery استفاده كنید.

برنامه نویس در حین كار مرتباً نیاز دارد داده‌های خود را از یك مدل به مدل دیگر منتقل كند. مثلاً در یك برنامه مدیریت فروش محصولات، گاهی برنامه‌نویس لازم می‌داند داده‌های مشتریان را از بانك اطلاعاتی (مثلا‌SQLServer یا‌MySQL یاORACLE ) بخواند و سپس به فرمت XML تبدیل كند تا بتواند آن را از مجرای اینترنت (مثلاً از طریق وب‌سرویس‌ها) عبور دهد. در این صورت ناگزیر است همزمان داده‌ها را ابتدا با منطق SQL بخواند، سپس با منطق Business Tier (مثل ADO.NET) پردازش كند و سپس با منطق XQuery تبدیل كند.

اریك میر از متخصصان‌SQL Server در شركت مایكروسافت این سه گانگی را مثلث ROX نامیده است كه سرنام عبارات Relations in data tier و Objects in business tier وXML in presentation tier است.

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

امروزه داده های که توسط برنامه ها مورد استفاده می شود به حوزه های مختلفی تعلق دارد :

آرایه، آبجکت، اسناد XML، دیتابیس، فایل متنی(Text)، کلید های رجیستری، پیغام ایمیل، محتوی پیام [1]SOAP، فایل Excel

و... که بسیار زیاد هستند.

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

تکنولوژی یکنواخت سازی دسترسی به داده ها در یک مدل جامع به شیوه های متعددی آزمایش شده است. به عنوان مثال ابزار ODBC(Open Database Connectivity)، که با این روش به کمک زبان شبه SQL به داده ها به صورت رابطه ای دسترسی پیدا می کنید. گاهی ارائه داده ها به صورت مرتبه ای یا مدل گرفیکی ارائه شده کاراتر از حالت رابطه ایست، علاوه بر آن اگر مدل داده در زبان نباشد، مجبور به مدیریت سیستم نوعهای متفاوتی خواهیم بود، که این تفاوت ها باعث ایجاد خطاهای تطابق بین کد و داده می شود.

LINQ برای حل این مشکلات بوجود آمد، به صورتی که شیوه یکسانی را برای دسترسی و مدیریت داده ها بدون پذیرفتن قیود و محدودیت های مدل های قبلی فراهم می آورد. LINQ به جای قراردادن ساختارهای متفاوت، عملیات(و عملگر های) مشترکی را در این مدل های داده به کار می گیرد.

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد