LINQ چیست؟

9 09 2008

مایکروسافت پس از عرضه دات نت فریم ورک 2 کار بر روی نسخه 3 آن را شروع کرده بود.  هنگام معرفی دات نت فریم ورک 3، مایکروسافت فناوری جدیدی را به نام LINQ معرفی کرد تا یکی از بزرگترین مشکلات برنامه نویسان را حل نماید. این فناوری جدید با هدف تحول در نحوه دستیابی به داده ها و اطلاعات بدون در نظر گرفتن نوع منبع آن ها بوجود آمده است.

LINQ (تلفظ می شود “لینک”) مخفف Language INtegrated Query یکی از اجزای پلتفرم برنامه نویسی دات نت شرکت مایکروسافت است که قدرت کار با داده های مختلف را به زبانی شبیه زبان SQL به توسعه دهندگان می دهد. LINQ در 19 نوامبر 2007 به عنوان قسمتی از دات نت فریم ورک 3.5 عرضه شد.

منطق و دستورات لینک شبیه به زبان SQL است با این تفاوت که به تنهایی کابردی ندارد. شما باید از زبان لینک در کنار یکی از زبان های دات نت استفاده کنید تا به مقصود خود برسید در صورتی که زبان SQL یک زبان مستقل برای کار با داده هاست. اگر برنامه نویس باشید می دانید که برای دستیابی به داده های موجود در یک بانک اطلاعاتی علاوه بر استفاده از فناوری های دستیابی به داده همچون ADO باید از زبان SQL نیز استفاده کنید. مشکلی که برنامه نویسان قبل از ارائه لینک با آن مواجه بودند این بود که لایه دسترسی به داده ها از روش و منظقی متفاوت از لایه های دیگر عمل می کند. مثلاً در نظر بگیرید در یک برنامه مبتنی بر بانک اطلاعاتی برنامه نویس باید داده ها را از یک بانک اطلاعاتی با استفاده از دستورات SQL بخواند و سپس با منطق زبان برنامه نویسی آن ها را به لایه نمایش بفرستد. این عدم سازگاری لایه های نرم افزاری مشکلات زیادی به همراه می آورد. امروزه برنامه نویسان بر اساس مدل “شیء گرا” کدهای خود را می نویسند. واژه هایی همچون کلاس، شیء، متد و وراثت برای برنامه نویسان آشناست و آن ها هر روز در پروژه هایشان از آن ها استفاده می کنند. در این میان یکی از مشکلات برنامه نویسان شیء گرا، عدم شیء گرایی پایگاه های داده و داده های XML است. پروژه LINQ برای اضافه کردن قابلیت شیء گرایی به زبان SQL و در نتیجه پایگاه های داده و داده های XML بوجود آمد.

LINQ Structure
LINQ Structure

شرکت مایکروسافت برای غلبه بر مشکلات ذکر شده زبانی را طراحی نمود که در حال حاضر در دات نت فریم ورک 3.5 از آن استفاده می شود و همراه با ویژوال استادیو 2008 عرضه شده است. تمام سعی مایکروسافت بر این بوده که قواعد (Syntax) زبان لینک شبیه به زبان SQL باشد تا برنامه نویسان مجبور نباشند برای یادگیری آن وقت بگذارند. اگر برنامه نویس باشید می دانید که کوئری های زبان SQL را در یک زبان برنامه نویسی باید به صورت رشته ای (String) بنویسید و این بدین معنی است که در این صورت کوئری ها قابلیت اشکال زدایی (Debugging) نخواهند داشت. در این روش اشکال زدایی دستورات SQL بسیار مشکل خواهد بود و بعضی وقت ها واقعاً دردسر ساز خواهد شد. این را هم می دانید که دستورات SQL که به صورت رشته نوشته می شوند به همراه دیگر دستورات برنامه کامپایل نمی شوند و فقط به صورت ریسورس های رشته ای ذخیره می شوند. حالا در نظر داشته باشید که با لینک می توانید مشکلات بالا را برطرف کنید و کوئری های SQL را اشکال زدایی کنید. بدین ترتیب برنامه نویسان دات نت می توانند در هر یک از زبان های مورد حمایت دات نت همچون ویژوال بیسیک و سی شارپ از فناوری LINQ استفاده کنند و از مزایایی مثل خطایابی، IntelliSense و قدرت ویژوال استادیو استفاده کنید. به یاد داشته باشید که LINQ فقط برای داده های موجود در بانک های اطلاعاتی مورد استفاده قرار نمی گیرد بلکه صرف نظر از منبع داده ها LINQ قادر است با داده های آرایه های مختلف، کلاس ها، اشیای مختلف و فایل های XML مورد استفاده قرار گیرد.

پروژه LINQ در مایکروسافت | LINQ در ویکی پدیا

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مربتط :





نوشتن کدهای نا امن در سی شارپ

5 08 2008

همان طور که می دانید در برنامه های تحت دات نت به صورت نرمال وظیفه تخصیص حافظه و آزادسازی آن بر دوش برنامه نویس نیست و به کدهایی که به زبان سی شارپ نوشته می شوند به اصطلاح “کدهای مدیریت شده” می گویند. در مقابل کدهای مدیریت شده، کدهای نا امن یا مدیریت نشده قرار دارند. خیلی از برنامه نویسان سی شارپ شاید هیچ وقت از این قابلیت استفاده نکنند و خیلی ها فکر می کنند نوشتن این کدها تخصص خاصی می خواهد و پیچیدگی های زیادی دارد. پس از خواندن این مقاله خواهید فهمید که نوشتن کدهای نا امن آن قدرها هم سخت و ترسناک نیست.

در کدهای نا امن (=Unsafe) یا مدیریت نشده (=Unmanaged) شما قادر به تعریف و استفاده از اشاره گرها (=Pointer) هستید. اما سوال اینجاست که کدهای نا امن به چه دردی می خورند!؟ اگر ما قصد دسترسی مستقیم به حافظه یا ارتباط مستقیم با سیستم عامل داشته باشیم و یا بخواهیم الگوریتم خاصی را پیاده سازی کنیم، اشاره گرها قدرت و انعطاف زیادی به ما خواهند داد. من در اینجا قصد ندارم در مورد مزایا یا معایب کدهای نا امن و یا ساختار آن ها در دات نت صحبت کنم، فقط می خواهم با مثال های ساده نحوه نوشتن این کدها را به شما آموزش دهم.

در سی شارپ با استفاده از کلمه کلیدی unsafe، می توانید به صورت صریح به کامپایلر بگوئید که قصد نوشتن کدهای نا امن را دارید. نوشتن کدهای نا امن در سی شارپ مثل این است که شما بخواهید در میان کدهای سی شارپ از کدهای زبان C استفاده کنید! بهتر است برای درک موضوع به مثال اول توجه کنید :

using System;
class sample {
	public static void Main() {
	        int data = 10;
		int* Pdata = &data;
		Console.WriteLine("Data is " + data);
		Console.WriteLine("Address is " + (int)Pdata);
	}
}

توضیح : در برنامه بالا متغیری به نام data ساختیم از نوع صحیح، در خط بعد با استفاده از * اشاره گری از نوع صحیح (int) به متغیر data ساختیم. عملگر & آدرس متغیر را در حافظه بر می گرداند.

برنامه بالا یک نمونه استفاده از کدهای نا امن است. خب، برنامه را اجرا کنید. کامپایلر به شما خطای زیر را می دهد.

Microsoft (R) Visual C# Compiler Version 7.00.9030 [CLR version 1.00.2204.21]
Copyright (C) Microsoft Corp 2000. All rights reserved.
um1.cs(6,8): error CS0214: Pointers may only be used in an unsafe context
um1.cs(8,27): error CS0214: Pointers may only be used in an unsafe context

به صورت نرمال، کامپایلر سی شارپ به شما اجازه استفاده از کدهای نا امن را نمی دهد. شما باید با استفاده از کلمه unsafe به کامپایلر سی شارپ بفهمانید که قصد نوشتن کدهای نا امن را دارید. حالا برنامه بالا را طوری تغییر می دهیم که دیگر خطایی مشاهده نکنیم.

using System;
class sample {
	public unsafe static void Main() {
	        int data = 10;
		int* Pdata = &data;
		Console.WriteLine("Data is " + data);
		Console.WriteLine("Address is " + (int)Pdata);
	}
}

در برنامه بالا، تابع Main با کلمه unsafe همراه شده است. این بدین معنی است که تمامی کدهای داخل این تابع به صورت نا امن نوشته شده اند. شاید این سئوال برای شما هم پیش بیاید که چطور می توان فقط قسمتی از کدهای تابع Main را به صورت نا امن نوشت. خب، حالا برنامه بالا طوری تغییر می دهیم که فقط بدنه تابع به صورت نا امن اجرا شود و همچنین این بار به جای مقدار متغیر data، مقداری که Pdata به آن اشاره می کند روی صفحه چاپ شود.

using System;
class sample {
	public static void Main() {
	   unsafe {
                int data = 10;
		int* Pdata = &data;
		Console.WriteLine("Data is " + Pdata->ToString());
		Console.WriteLine("Address is " + (int)Pdata);
	   }
       }
}

در برنامه بالا با استفاده از کلمه unsafe فطعه ای از کدها را به صورت نا امن نوشتیم. همچنین مقداری که Pdata به آن اشاره می کند را با تابع ToString به خروجی فرستادیم.

در مقالات بعدی بیشتر با کدهای unsafe آشنا خواهیم شد و مثال های کاربردی تری ارائه خواهیم داد. برای اینکه ایم مقالات را از دست ندهید مشترک فراسان شوید. چگونه مشترک فرسان شوم!؟

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :

طراحی سایت، ثبت دامین، میزبانی فضا و بهینه سازی سایت در موتورهای جستجو





یک سال گذشت!

3 05 2008

یک سال پیش، دقیقاً در چنین روزی وبلاگ فراسان در وردپرس.کام متولد شد و اولین پست آن توسط من منتشر شد. امروز 14 اردیبهشت 1387 دومین سال فعالیت ویلاگ فراسان شروع می شود و امیدوارم در روزهای آینده کم کاری های گذشته ام را در مورد این وبلاگ جبران کنم. جالب است مصادف با سالروز تاسیس فراسان، Page Rank آن نیز افزایش یافته و به عد 5 رسیده است. البته این امتیاز را باید مدیون وردپرس بود. سیستم قدرتمند وبلاگ نویسی وردپرس به صورت عجیبی با موتورهای جستجویی همچون گوگل سازگاری دارد، روش های SEO را در بطن خود دارد و برای هر وبلاگ پیاده سازی می کند. به هر حال این اتفاق مرا بسیار خوشحال کرد اما این خوشحالی زیاد طول نمی کشد چون مجبورم حدود 40 روز از این وبلاگ و لذت وبلاگ نویسی دور باشم. به علت امتحانی که در پیش دارم نمی توانم تا 20 تیر این وبلاگ را به روز کنم. میدونم بسیاری از بازدیدکننده ها و مشترکان وبلاگم را از دست خواهم داد اما چاره ای نیست چون زندگی واقعی هم احتیاج به رسیدگی دارد. امیدوارم بعد از رهایی از این مشکل، با توانی مضاعف به این وبلاگ بپردازم. حالا بررسی مختصری از فعالیت های این وبلاگ را بخوانید.

تعداد پست های وبلاگ : 77 | تعداد مشترکین وبلاگ تا کنون : 84 نفر

پر بازدید ترین مطالب

  1. TD Messenger یک دروغ بزرگ!
  2. معرفی بانک های اطلاعاتی رایگان و اوپن سورس
  3. نرم افزار بانک سئوالات
  4. اینترنت اکسپلورر 8 – اولین نگاه
  5. تاریخ شمسی با طعم آزادی!

ضمن اینکه صفحه مقالات، پر بازدیدترین صفحه ی استاتیک وبلاگ بوده است.

بهترین مطالب از نظر خوانندگان

  1. نرم افزار بانک سئوالات
  2. معرفی بانک های اطلاعاتی رایگان و اوپن سورس
  3. برای خودتان موتور جستجوی اختصاصی بسازید!
  4. استفاده از تاریخ شمسی در دات نت
  5. 8 افزونه ی سودمند برای فایرفاکس

اما مطالبی که من انتظار داشتم از بهترین های وبلاگم باشند :

  1. شروع برنامه نویسی وب
  2. مسئولیت های تخصصی و اخلاقی یک مهندس نرم افزار
  3. مهندسی نرم افزار
  4. تفاوت علم کامپیوتر و مهندسی نرم افزار
  5. شروع برنامه نویسی | شروع برنامه نویسی ویندوز

یکی از دوستانم می گفت “با این همه مطلبی که نوشتی چرا این قدر نظرات کمی داری؟ من وبلاگی میشناسم که فقط شعر و داستان می نویسد و نظرات هر پستش بیشتر از 100تاست” در جوابش گفتم که “کسی که با یک جستجو به مطلب من میرسد بعد از خواندن و رسیدن به هدفش چیزی برای گفتن ندارد، یا وقتی مطلب تخصصی مرا می خواند و چیزی از آن سر در نمی آرود چه چیزی می تواند در قسمت نظرات بنویسد. بیشتر مواقع کسانی که مشکلی دارند در پست ها نظر می دهند تا مشکلشان را حل کنم. کسی هم که مشکل نداشته باشد نظری نمی دهد.”

برای باخبر شده از به روز شدن وبلاگ می توانید مشترک فراسان شوید. اطلاعات بیشتر





شروع برنامه نویسی وب

9 02 2008
اگر قصد یادگیری برنامه نویسی تحت وب را دارید حتماً تا انتهای این نوشته را بخوانید. امروزه برنامه های تحت وب گسترش فراوانی پیدا کرده اند و هر روز کاربران با نیازهای جدیدی برخورد می کنند که برطرف کننده این نیازها فقط برنامه نویسان متخصص وب هستند. به همین دلیل بازار برنامه نویسی تحت وب چه در ایران چه در خارج از کشور بسیار رونق گرفته است. در این میان ابزارها و زبان های برنامه نویسی مختلفی برای گسترش برنامه های تحت وب وجود دارد که هر کدام مزایا و معایب بسیاری دارند. تعدد این ابزارها و زبان ها باعث سردرگمی بسیاری از تازه کارانی که قصد یادگیری برنامه نویسی تحت وب را دارند، می شود. در این نوشته سعی بر این است که با زبانی ساده شما را در انتخاب ابزارها و زبان های برنامه نویسی تحت وب یاری کند.
تذکر : این نوشته برای روی برنامه نویسی تحت وب تمرکز دارد نه طراحی وب، این دو مقوله های کاملاً جدا از هم می باشند.
اولین مهارتی که بایسیتی فرا بگیرید، درک کدهای HTML و نحوه کاربرد هر یک از تگ های این زبان می باشد. یادگیری و استفاده از این زبان نشانه گذاری بسیار آسان تر از آن چه که فکر می کنید خواهد بود. در واقع اساس صفحات وب برکدهای HTML استوار می باشد. برای یادگیری این زبان منابع بسیاری در اینترنت موجود می باشد. بنده این سایت را به شما توصیه می کنم.
پس از درک زبان HTML نوبت به یادگیری زبان اسکریپت نویسی JavaScript برای خلق صفحات پویاست. به کمک این زبان می توانید به اشیای داخل صفحات دسترسی مستقیم پیدا کرده و آن ها را تغییر دهید. جاوا اسکریپت امروزه در برنامه نویسی تحت وب کاربرد فراوانی دارد و جزء اجتناب ناپذیری از وب 2 می باشد. برای یادگیری این زبان این سایت گزینه ای مناسب خواهد بود.
پس از یادگیری این دو نوبت به انتخاب تکنولوژی و زبان برنامه نویسی برای ایجاد صفحات پویای تحت وب میرسد. برای شروع شما اساساً با دو سه انتخاب مواجه هستید که مطمئناً تا به حال دوستانتان آن ها را به شما پیشنهاد داده اند. تکنولوژی ASP مایکروسافت و زبان PHP انتخاب های شما در این زمینه خواهند بود. در اینجا شما یا قبلاً تجربه برنامه نویسی به زبان های دیگر را داشته اید یا نداشته اید. اگر قبلاً با زبان Visual Basic برنامه نویسی می کرده اید شک نکنید که با ASP هیچ مشکلی نخواهید داشت. استفاده از ASP به راحتی استفاده از VB خواهد بود.اگراز قبل با هیچ زبانی آشنایی نداشته اید و یا با زبان هایی مثل پاسکال و سی آشنایی کافی دارید پیشنهاد من به شما زبان PHP خواهد بود.
چرا PHP؟
  • رایگان و OpenSource : تهیه مفسر PHP برای همه رایگان است و به راحتی از سایت www.php.net قابل دانلود می باشد. سورس کد این مفسر در دسترس عموم است و مانند دیگر نرم افزارهای کدباز پیشرفت قابل توجهی داشته و خواهد داشت.استفاده از این زبان در وب سایت شما هیچ هزینه ای برای شما در بر نخواهد داشت و بسیاری از ویرایشگرهای حرفه ای و ابزارهای این زبان نیز به صورت رایگان و بعضاً کدباز در دسترس شما خواهد بود.
  • ساختار زبان PHP : یکی از دلایل مهم برتری PHP، شباهت ساختار و ترکیب آن به زبان پرقدرت C است.یادگیری نوع داده ها و ساختارهای این زبان برای کسانی که با زبان های خانواده C مثل C++, C#, Java آشنایی مختصری دارند بسیار آسان خواهد بود.
  • عدم وابستگی به سیستم عامل (Cross Platform) : یکی از برترین ویژگی های PHP سازگاری آن با اکثر سیستم عامل ها و نرم افزارهای وب سرور (مانند IIS و Apache) است. PHP را می توانید در ویندوز، انواع توزیع های لینوکس و حتی سیستم عامل های شرکت Apple تجربه کنید.
  • سرعت و کارایی بسیار بالا: PHP یکی از سریع ترین زبان های تحت وب در نوع خود است. به علت ترکیب کدهای PHP درون سندهای HTML سرعت بارگذاری صفحات وب بسیار سریع خواهد بود.
  • امنیت بالا : اگر بر اساس استانداردهای زبان PHP اقدام به برنامه نویسی صفحات وب سایت خود کنید، مطمئن باشید امنیت وب سایت شما تضمین شده خواهد بود. ابزارهای بسیار زیادی نیز جهت کمک به شما به صورت رایگان در سراسر اینترنت موجود است. در ضمن همیشه کسانی هستند که به سئوال های شما در زمینه امنیت پاسخ دهند.
  • ویژگی ها و امکانات عالی : کمتر نیازی در برنامه نویسی تحت وب پیدا می شود که توسط PHP امکان رفع آن نباشد. PHP شامل توابع و کتابخانه های بسیار زیادی است که روز به روز در حال گسترش می باشند، این کتابخانه ها در تسریع برنامه نویسی به شما کمک بزرگی خواهند کرد. کار با بانک های اطلاعاتی و فایل ها، پردازش فرم ها و درخواست های کاربر، ارسال ایمیل، کار با فایل های گرافیکی، متنی، باینری، PDFو ZIP، استفاده از پروتکل های مختلف بوسیله توابع کتابخانه های PHP بسیار آسان و لذت بخش است.
  • پشتیبانی کامل از بانک های اطلاعاتی مختلف : پشتیبانی کامل PHP از نرم افزارهای بانک اطلاعاتی MySQL, SQL Server, Oracle, dBase, IBM, mSQL, DB2, PostgreSQL, Interbase, Informix, Sybase و بسیاری دیگر PHP را به زبانی مناسب برای توسعه برنامه های بانک اطلاعاتی مبتنی بر وب تبدیل کرده است. البته امکان استفاده از بانک های اطلاعاتی Access و دیگر محصولات مشابه با پشتیبانی PHP از ODBC و COM نیز هست.
  • قابلیت سفارشی کردن : مجوز اوپن سورس PHP به تمامی برنامه نویسان امکان اعمال تغییرات در نرم افزار مفسر و اضافه کردن قابلیت های جدید به آن را در جهت رفع نیازهای خود به طور کامل می دهد.
بهترین راه برای یادگیری PHP مطالعه Manual رسمی این زبان است. این Manual از اینجا قابل دریافت می باشد. البته منابع بسیار متعددی را در اینترنت برای یادگیری PHP با یک جستجوی ساده پیدا خواهید کرد.
البته بسیار واضح است که شما می توانید به جای استفاده ازPHP زبان های دیگر مثل Perl را برگزنید و یا به جای یادگیری PHP اقدام به یادگیری ASP کنید. این نوشته بر اساس تجربه و نظر شخصی منتشر شده است و تنها هدف آن کمک به تازه کاران برای یادگیری برنامه نویسی تحت وب است.
خواننده گرامی هر گونه سئوال و پیشنهاد خود را در مورد این نوشته در قسمت نظرات همین پست مطرح کنید. با امید که این نوشته برای شما عزیزان مفید واقع شده باشد.
مطالب مرتبط  :