LINQ : تحولی بزرگ در کار با داده ( بخش اول )

تبلیغات در سایت ما

شبکه و آنتی ویروس و نرم افزار و زبانهای برنامه نویسی

پشتيباني آنلاين
پشتيباني آنلاين
آمار
آمار مطالب
  • کل مطالب : 72
  • کل نظرات : 1
  • آمار کاربران
  • افراد آنلاین : 1
  • تعداد اعضا : 3
  • آمار بازدید
  • بازدید امروز : 3
  • بازدید دیروز : 10
  • ورودی امروز گوگل : 0
  • ورودی گوگل دیروز : 1
  • آي پي امروز : 1
  • آي پي ديروز : 3
  • بازدید هفته : 26
  • بازدید ماه : 348
  • بازدید سال : 8482
  • بازدید کلی : 335818
  • اطلاعات شما
  • آی پی : 3.144.40.239
  • مرورگر :
  • سیستم عامل :
  • امروز :
  • درباره ما
    شبکه و آنتی ویروس و نرم افزار و زبانهای برنامه نویسی
    به وبلاگ من خوش آمدید امیدوارم لحظات خوبی رو در این وب داشته باشین برای همکاری بیشتر می تونین به ایمیل بنده پیغام بدین
    خبرنامه
    براي اطلاع از آپدیت شدن سایت در خبرنامه سایت عضو شويد تا جديدترين مطالب به ايميل شما ارسال شود



    امکانات جانبی

    LINQ : تحولی بزرگ در کار با داده ( بخش اول )

    دات نت به عنوان یکی از فريمورک های پياده سازی نرم افزار در سالیان اخير ، امکانات متعددی را جهت کار با داده در اختيار پياده کنندگان نرم افزار قرار می دهد . LINQ ، تلاشی است جهت يکپارچگی عميق تر و بیش تر بین زبان های برنامه نویسی و داده .  در واقع LINQ مشتمل بر مجموعه ای از عملگرهای query استاندارد است که  معماری لازم جهت حرکت ، فيلترينگ و اجرای عملیات بر روی تقريبا" هر نوع منبع داده نظیر XML ، بانک های اطلاعاتی رابطه ای و اشياء درون حافظه را فراهم می نماید .
    قبل از هر چيز اجازه دهيد ببينيم LINQ چيست ؟

    LINQ چيست ؟
    با این که فناوری LINQ در پائيز سال 2005 مطرح گردید ولی فرآیند پیاده سازی آن از سال 2003 آغاز شده بود . هدف از ابداع فناوری فوق، ارائه تسهيلات لازم برای پياده کنندگان جهت کار با داده در بانک های اطلاعاتی  SQL و XML عنوان شده است. در واقع ، وجود یک حلقه گمشده بین داده رابطه ای ( بانک های اطلاعاتی )  ، اسناد XML با زبان های برنامه نویسی ، ضرورت ابداع فناوری فوق را توجيه کرده بود . پياده کنندگان مجبور بودند  برای کار با هر يک از منابع داده ، از روش های مختلفی استفاده نمایند . LINQ  را می توان به منزله حلقه ای گمشده  بین دنیای داده و زبان های برنامه نویسی همه منظوره  تصور کرد . با استفاده از  LINQ  امکان دستیابی به داده صرفنظر از نوع داده  ، با روشی مشابه و یکسان فراهم می گردد . 
    پیاده کنندگان نرم افزار در زمان نوشتن برنامه های خود معمولا" از دو زبان مختلف جهت رسیدن به یک هدف مشترک استفاده می نمایند . ما برای نوشتن کدها از یک زبان برنامه نویسی نظیر VB.NET و يا #C و برای  گفتگو با سیستم بانک اطلاعاتی از یک زبان دیگر نظیر SQL استفاده می کنيم .

    برای سفارش شام خود از یک زبان و برای سفارش چای از زبان دیگر !

    این موضوع می تواند چالش های متعددی را برای پياده کنندگان نرم افزار به دنبال داشته باشد :

    • در مواردی که فريمورک دات نت را به عنوان پلت فرم انتخاب کرده باشیم ، دات نت قادر به درک کدهای SQL نخواهد بود.

    •  در مواردی که از زبان های برنامه نویسی حمايت شده در دات نت جهت نوشتن کد در محيط ويژوال استوديو استفاده می کنيم ، همواره یک ابزار قدرتمند در کنار ما است تا در صورت اشتباه در گرامر دستورات توصیه های لازم را ارائه نماید ( IntelliSense ) .از ويژگی فوق نمی توان در ارتباط با  SQL  استفاده کرد .

    • امکان بررسی نوع ها در زمان ترجمه وجود ندارد . این بدان معنی است که پياده کنندگان تا زمانی که برنامه اجراء نگردد ، نمی توانند مشکلات احتمالی را مشاهده و قبل از زمان اجراء با آنها برخورد نمایند .

    • شرکت مايکروسافت امکانات متعددی را در فريمورک دات نت جهت کار با اسناد XML  ارائه کرده است . ارائه System.Xml ،  System.Xml.XPath و System.Xml.Schema  نمونه هائی در این زمینه می باشند . پياده کنندگان نرم افزار در زمان کار با اسناد XML مجبور بودند که از فناوری های متعددی نظیر    DOM ( برگرفته شده از Document Object Mode ) و XQuery  استفاده نمایند . همين موضوع باعث شده بود که کار با اسناد XML نظیر خواندن و یا نوشتن داده در آنها برای بسیاری از پياده کنندگان مشکل باشد.

    شرکت مايکروسافت برای حل مشکلات فوق ، بررسی دو راهکار را در دستور کار خود قرار داد :

    • ایجاد پتانسیل های مورد نیاز  مختص XML و یا داده رابطه ای در هر یک از زبان های برنامه نویسی و زمان اجراء . راهکار فوق نه تنها مشکل اصلی را حل نمی کرد بلکه در مواردی مشکلات را خصوصا" در زمینه نگهداری افزایش می داد . 

    • اضافه کردن قابلیت های همه منظوره نوشتن query در فریمورک دات نت  . به عبارت دیگر یک فریمورک همه منظوره با قابلیت نوشتن query درون فريمورک دات نت که زبان های VB.NET و #C بتوانند به سادگی از مز ایای آن استفاده نمایند .

     

    خوشبختانه ، شرکت مایکروسافت گزينه دوم را انتخاب نمود . ایجاد یک زیرساخت جهت نوشتن query در بين اشياء ، اسناد XML ، داده رابطه ای و ...
    هم اینک پیاده کنندگان می توانند از مزايای یک الگوی تعريفی در هر یک از زبان های دات نت جهت کار با داده  استفاده نمایند . ارائه مجموعه اپراتورهای استاندارد جهت نوشتن query یکی از دستاوردهای مهم LINQ محسوب می گردد .  بدین ترتیب ، پياده کنندگان می توانند با بکارگیری یک مجموعه يکسان از اپراتورهای نوشتن query در هر یک از زبان های برنامه نویسی حمایت شده در دات نت ، از داده ذخیره شده در  منابع داده مختلف صرفنظر از نوع منبع داده استفاده نمایند . همچنين ، امکان استفاده از پتانسیل هائی نظیر   IntelliSense  و بررسی نوع ها در زمان ترجمه نیز وجود خواهد داشت .
    شکل 1 نحوه عملکرد LINQ  را نشان می دهد .



    شکل 1 : عملکرد فناوری LINQ

    مثال
    برای آشنایی اولیه با  قابلیت های LINQ  ، بد نيست بدون این که بخواهیم وارد جزئيات شویم یک مثال کاربردی را با یکدیگر دنبال نمائیم .
    در اين مثال با استفاده از LINQ و با يک روش مشابه به منابع داده مختلفی متصل شده و پس از بازیابی داده ، آنها را در يک ListBox جداگانه نمایش می دهيم . 
    منابع داده عبارتند از :

    • فولدرهای موجود در یک درایو
    • پردازه های در حال اجراء در ويندور
    • يک بانک اطلاعاتی رابطه ای SQL
    • عناصر موجود در يک آرایه
    • يک فایل XML
    • یک فایل متن

    <%@ Page   Language="VB" uiCulture="fa-IR" Culture="fa-IR" %>
    <%
    @ Import Namespace="System.Diagnostics" %>
    <%
    @ Import NameSpace="System.IO" %>
    <%
    @ Import NameSpace="System.Linq" %>
    <%
    @ Import NameSpace="System.Data.Linq" %>
    <%
    @ Import NameSpace="System.Data.Linq.Mapping" %>
    <%
    @ Import NameSpace="System.XML.Linq" %>
    <%
    @ Import NameSpace="System.Collections" %>

     

     

     

     

    کلاس ایجاد شده بر اساس داده موجود در بانک اطلاعاتی Contact برای جدول Persons
    LINQ to SQL Class

     

     

     

     

     

     

     

     

     

     

     

     

    script>
    '=======================================================================
    End Sub
    <script runat="server">
    '====================================================================
    <html xmlns="http://www.w3.org/1999/xhtml">
    <
    head runat="server">
      <
    title> مثال شماره یک  title>
    head>
    <
    body>
      <
    form id="form1" runat="server">
        <
    div>
          <
    asp:ListBox ID="ListBox1" runat="server">asp:ListBox>
          <
    asp:ListBox ID="ListBox2" runat="server">asp:ListBox>
          <
    asp:ListBox ID="ListBox3" runat="server">asp:ListBox>
          <
    asp:ListBox ID="ListBox4" runat="server">asp:ListBox>
          <
    asp:ListBox ID="ListBox5" runat="server">asp:ListBox>
          <
    asp:ListBox ID="ListBox6" runat="server">asp:ListBox>
       div>
      form>
    body>
    html>
     

    شکل زیر خروجی برنامه فوق را نشان می دهد .

     دستيابی به منابع داده مختلف با استفاده از فناوری LINQ

    شکل  2  : دستيابی به منابع داده مختلف با استفاده از فناوری LINQ

    خلاصه
    LINQ يک فناوری قدرتمند در زمان کار با داده است که دستاوردهای متعددی را برای پياده کنندگان به ارمغان آورده است :

    • روشی ساده جهت نوشتن query
    • تسریع در پیاده سازی نرم افزار با توجه به حذف خطاهای زمان اجراء
    • امکان استفاده از امکاناتی نظیر اشکال زدائی و IntelliSence در زمان پياده سازی
    • حذف خلاء موجود بين داده رابطه ای و پیاده سازی شی گراء
    • استفاده از یک گرامر يکسان جهت نوشتن query صرفنظر از نوع منبع داده
    • افزایش بازدهی و راندمان برنامه نویسی ، چراکه برنامه نویسان از یک رویکرد يکسان برای نوشتن query  و بهنگام سازی داده از طریق زبان برنامه نویسی   استفاده خواهند کرد . 

     LINQ از دو بخش که مکمل يکديگر می باشند تشکيل شده است : مجموعه ای از ابزار ها جهت کار با اشياء ، اسناد XML ، بانک های اطلاعاتی رابطه ای و سایر نوع های داده و مجموعه ای از ضمایم برای زبان های برنامه نویسی نظیر VB و #C  . در بخش دوم به بررسی هر یک از موارد فوق خواهيم پرداخت . 


    بخش نظرات این مطلب


    برای دیدن نظرات بیشتر روی شماره صفحات در زیر کلیک کنید

    نام
    آدرس ایمیل
    وب سایت/بلاگ
    :) :( ;) :D
    ;)) :X :? :P
    :* =(( :O };-
    :B /:) =DD :S
    -) :-(( :-| :-))
    نظر خصوصی

     کد را وارد نمایید:

    آپلود عکس دلخواه:







    تبلیغات
    نویسندگان
    ورود کاربران
    نام کاربری
    رمز عبور

    » رمز عبور را فراموش کردم ؟
    عضويت سريع
    نام کاربری
    رمز عبور
    تکرار رمز
    ایمیل
    کد تصویری
    تبادل لینک هوشمند

      تبادل لینک هوشمند
      برای تبادل لینک 

       ابتدا ما را با عنوان

      هاستینگ رایگان

      و آدرس

       http://www.iran2.net

      لینک نمایید سپس مشخصات

       لینک خود را در زیر نوشته

       . در صورت وجود لینک ما

      در سایت شما لینکتان

      به طور خودکار در سایت ما

      قرار میگیرد.






    آخرین نظرات کاربران
    Moohammad - سلام دوست گلم خوبی؟

    وبلاگت خیلی خوبه. به منم سر بزن خوشحال میشم نظر بدی

    تبادل لینک هم تو سایتم هست



    - 1393/9/15
    عنوان آگهی شما

    توضیحات آگهی در حدود 2 خط. ماهینه فقط 10 هزار تومان

    عنوان آگهی شما

    توضیحات آگهی در حدود 2 خط. ماهینه فقط 10 هزار تومان

    به شبکه و آنتی ویروس و نرم افزار و زبانهای برنامه نویسی امتیاز دهید