یک لینک به دنیای دات‌نت 3

اشاره :
یکی از موجودات جدیدی که در دنیای برنامه‌نویسی شی‌گرای دات‌نت درحال پرورش است، زبان جالبی به نام LINQ است. کلمه ‌LINQ سرنام Language Integrated Query است.

از هنگامی که چارچوب دات‌نت 2 به‌طور رسمی معرفی شد، چند ماهی می‌گذرد. احتمالاً برخی از شما که با پلتفرم برنامه‌نویسی مایکروسافت کار می‌کنید، به تدریج با نسخه دوم این فناوری آشنا شده‌اید و شاید قصد دارید کم‌‌کم در پروژه‌های جدید از این چارچوب جدید برنامه‌نویسی استفاده کنید. اما در همان حال که شما آرام آرام با دات‌نت2 خو می‌کنید، خبر می‌رسد که پروژه دات‌نت 3 مدت‌ها است شروع شده و اکنون به تدریج پیش‌نمایش‌هایی از آن روی پرده می‌رود.

جالب دیدم در این مقاله به دنیای دات‌نت3 سرک بکشیم و ببینیم آنجا چه خبر است. این کار دو فایده دارد: نخست این‌که، درمورد آخرین تحولات دنیای برنامه‌نویسی مایکروسافتی چیزهایی بدانیم. دیگر این‌که، شاید تشویق شوید تا دیر نشده خود را به نسخه دوم دات نت مجهز کنید. چون ممکن است تا یکی دو سال دیگر همین نسخه نیز قدیمی شود!

مثلث راکس‌

یکی از موجودات جدیدی که در دنیای برنامه‌نویسی شی‌گرای دات‌نت درحال پرورش است، زبان جالبی به نام LINQاست. کلمه ‌LINQ سرنام Language Integrated Query است. منطق زبان لینک از روی زبان ‌SQL گرفته شده است و این زبان در پی پاسخ‌دادن به مسئله پیچیده‌ای در دنیای برنامه‌نویسی پیشرفته است که مثلث راکس (ROX Triangle) نامیده می‌شود. پس اجازه بدهید ببینم مثلث راکس چیست.

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

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

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

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

قطعه کد 1
LINQ؛ زبان دوست داشتنی

کارشناسان طراحی زبان‌های برنامه‌نویسی در شرکت مایکروسافت مدتی است برای پیدا کردن یک راه‌حل برای این مسئله، روی زبان لینک کار می‌کنند. این زبان البته یک زبان جدید برنامه‌نویسی در کنار سی‌شارپ و ویژوال بیسیک نیست، بلکه یک syntax است که درون کدهای برنامه به کار گرفته می‌شود. (قطعه کد 1)

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

تیم توسعه پلتفرم دات‌نت در مایکروسافت برهمین‌اساس در حال طراحی و توسعه دو API برای زبان ‌LINQ است. یکی از این‌ها مجموعه DLINQ است که برای پیاده سازی زبان لینک روی ‌ADO.NET به کار می‌رود. دیگری ‌XLINQ نامیده شده که برای امکان‌پذیر ساختن استفاده از منطق لینک روی ‌XML به کار می‌رود.

کوشش بر این است که syntax برنامه‌نویسی در هر دو مورد مشابه زبان SQL باشد. به گونه‌ای که برنامه‌نویسی بدون توجه به این‌که از کدام API زبان لینک استفاده می‌کند، به یک شیوه بتواند با داده‌ها کارکند.این APIها قرار است در چارچوب دات‌نت 3 (نسخه نهم زبان ویژوال بیسیک و نسخه سوم زبان سی شارپ) به‌کار گرفته شوند.

یکی از اهدافی که این تیم از به‌‌کارگیری منطق لینک در زبان‌های برنامه نویسی دات‌نت دنبال می‌کند، امکان‌پذیر ساختن اشکال زدایی از عبارات Query است.

اگر برنامه‌نویس باشید، حتماً می‌دانید که تمام قسمت‌های یک کد منهای عبارات Query که به صورت رشته‌های متنی می‌آیند، قابل اشکال‌زدایی یا Debugging هستند. قرارگرفتن عبارات Query به صورت مقادیر متنی داخل سورس کد، عملاً اشکال‌زدایی از آن‌ها را دشوار می‌کند. با به‌کارگیری منطق زبان لینک این مشکل به مقدار زیادی حل می‌شود؛ زیرا Queryها به‌جای این‌که به صورت مقادیر متنی نوشته شوند، بخشی از سورس کد هستند. به همین دلیل این تکنیک Language Integrated Query نامگذاری شده است.

تیم توسعه دات نت حتی به این موضوع فکر کرده است که استفاده از ابزار Intellisense در ویرایشگر کد ویژوال استودیو بتواند روی زبان لینک مانور دهد. این چیزی است که عملاً روی ‌API متعلق به بخش‌های DLINQ و XLINQ اتفاق می‌افتد. در نتیجه برنامه‌نویس می‌تواند کد ‌LINQ را کامپایل نماید و در صورت بروز خطا آن را اشکال‌زدایی کند.استفاده از XLINQ برنامه‌نویسان را از به‌کارگیری منطق XQuery که گاهی گیج‌کننده است، معاف می‌کند؛ ضمن این‌که برای کارکردن با داده‌ها در ADO.NET و لایه Business Tier می‌توانید از همان منطق و رهیافت زبان SQL در بانک‌اطلاعات استفاده کنید.

بهروز نوعی پور
ماهنامه شبکه – مرداد ۱۳۸۵

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اجرا شده توسط: همیار وردپرس