تو را بخدا مایکروسافت، من LINQ نمیخوام !

اگر net.ای باشید و پیگیر تغییرات آن، پس حتماً تا بحال واژه‌ی LINQ را شنیده‌اید: ویژگی جدیدی که در net 3.5. اضافه شده و مایکروسافت از اون بعنوان مهم‌ترین و برترین ویژگی جدید net 3.5. نام میبره. حالا این LINQ‌ چی هست ؟ بطورخلاصه، LINQ روشی است برای هر نوع دسترسی به داده‌ها (Data Access)، بدون توجه به اینکه منبعِ و فرمت داده‌های شما چیست، مثلا دیتابیس، حافظه، فایل، XML و غیره. در C# 3.0 تقریباً ردِپای هر تغییر جدیدی را میتونید به پیاده‌سازی LINQ ربط بدید (مثلاً Implicitly typed variables و Lambda expressions).

لحظه‌ای راجع به قدرت عجیب و غریبی که با LINQ میشه بدست آورد فکر کنید؛ با LINQ دیگه لازم نیست به این فکر کنید که کوئری شما قراره روی چه چیزی اجرا بشه و یا اینکه داده‌هاتون با چه فرمتی ذخیره شده. فقط و فقط کافیه به الگوریتم‌تون فکر کنید (و البته قبلش LINQ رو هم یاد بگیرید!)

اگه LINQ اینقدر خوبه و همه دارن باهاش حال میکنن، پس چرا من ناراحتم؟ علتش خیلی ساده‌اس، کافیه یه نیم‌نگاهی به کدهای زیر بندازید:

image

 

 

image

 

ببینید مایکروسافت چه بلایی سر سی‌شارپ عزیز من آورده؟‌ آخه این کجاش به کد سی‌شارپ شبیهه؟ خدایا من از شر این syntax جدید باید به کی پناه ببرم؟

یکی نیست بگه مایکروسافت، من اگه LINQ نخوام کی رو باید ببینم؟ من یکی که عمراً حتی یک خط کد هم با LINQ‌ ننویسم! اگر هم کلاغ‌ها برام خبر بیارن که کسی از دوستانِ عزیز رفته با LINQ کوئری نوشته،‌ خون جلوی چشمام رو میگیره و … خدا اون روز رو نیاره!

—————–

* LINQ = Language Integrated Query

* 101 LINQ Samples

* Taking LINQ to Objects to Extremes: A fully LINQified RayTracer

(توضیح: یکی از‌ سردردآورترین کدهایی که تا بحال با LINQ دیدم!)

5 نظر

  1. فلسفه ی بوجود اومدن LINQ این بوده که بتونیم پرس و جوها رو هم مثل کدهای دیگه اشکال زدایی کنیم.البته در مورد اینکه این کدها صورت خوشی در سورس برنامه ندارن با شما کاملاً موافقم. اما به نظر من در برنامه های مبتنی بر بانک اطلاعاتی می تونه خیلی مفید باشه.

  2. در ضمن کامنت اول رو من گذاشتم. نمیدونم چرا قاطی شد.
    راستی ممنون که مطالب وبلاگم رو دنبال می کنی و نظرت رو بیان میکنی.
    اگر کسانی مثل من ، شما، رادمان و اپاتان هم نخواهیم برای صنعت نرم افزار این مملکت دلسوزی کنیم که باید فاتحه ی این صنعت رو در ایران خوند.
    امیدوارم شما هم فعالیت خودتون رو در این زمینه بیشتر کنید.
    موفق و پیروز باشید.

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

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

  4. نمیدونی چه داغ دل من تازه شد وقتی متن رو خوندم. نظر من اینه لینکیو با بی سلیقگی و عجله گسترش داده شده. من نمیدونم کمپایلر چطوری از این کدها که بعضی وقتها نیاز به پیشگویی هم داره سر در میآره

  5. میشه کد search با linq در c# رو برام بفرستین

يك پاسخ برايش بگذاريد