۱۳۸۸ فروردین ۱۹, چهارشنبه

Search query with LINQ

مخصوصا در برنامه های کاربردی تحت وب نوشتن یک فرم جستجوی طویل مرتبط با بانک اطلاعات ارتباطی (Relational) کار لذت بخشی نیست. دست و پنجه نرم کردن با SQL برای بعضی برنامه نویسان اصلا جالب نیست. برای خیلی ها با LINQ این کار لذت بخش تر شده.
یکی از ساده ترین امکانات لذت بخش لینک می تواند چیزی باشد که خواهم گفت.
فرض کنید یک فایل dbml را به درستی به یک Database که دارای جدول دانشجویان است متصل کردیم. حالا یک CheckboxList داریم که شامل سال های 1360 تا 1370 بوده که مربوط به سال تولد دانشجویان است. حالا کاربر چند تا از آیتم ها را انتخاب میکند و دکمه جستجو را میزند.
اگر فرض کنیم کاربر 1360 و 1362 و 1364 را انتخاب کرده باشد. در روش سنتی بهترین روش یافتن نتایج، ارسال چنین Queryی به بانک اطلاعات بود:



SELECT * FROM Students WHERE BirthYear IN (1360, 1362, 1364)



از این بگذریم که این Query را چطور اجرا میکردیم.

و حالا در LINQ این کار را خواهیم کرد:



int[] selectedValues = { 1360, 1362, 1364 };
using (MyDataContext dc = new MyDataContext())
{
dc.Students.Where(s => selectedValues.Contains(s.BirthYear));
}



این دقیقا Query سنتی که در بالا دیدید را می سازد. بدون کم و کاست.

۱۳۸۸ فروردین ۱۸, سه‌شنبه

C# Kernel

برای علاقه مندان به زبان #C همیشه جالب است که بتوانند هر گونه برنامه ای را با این زبان بنویسند. در حالی که اجرای برنامه های نوشته شده با #C بدون نصب dotNet Framework گاهی اوقات بسیار پیچیده است، شاید نوشتن یک سیستم عامل با این زبان واقعا یک رویا به حساب آید. ولی حقیقت دارد. البته شاید این موضوع از تمایل برنامه نویسان به ترجمه مستقیم (قبل از اجرا /AHead-Of-Time) زبان MSIL به Assembly یا شبیه آن ناشی شده.فعلا سه سیستم عامل یا پوسته با #C پیاده شده.

به نظر میرسد Singularity از بقیه کاملتر باشد. البته قبلا هم شبیه این کار با Java انجام شده. روش کار همه اینها به این صورت است که زبان #C تبدیل به کد CPU شده و با لینک شدن به قطعه کد های لازم برای Boot کردن سیستم یک Core ساده به وجود می آورد. Cosmos دارای یک کیت توسعه برای Visual Studio است که شما میتوانید پوسته ی خود را نوشته و بعد از فشردن کلید F5 پوسته ی خود را بر روی Virtual PC و... اجرا و مشاهده کنید.

شروع

به نام خدا

M-A-EngineerGroup نام گروهیست متشکل از دو توسعه دهنده نرم افزار که از مرداد ماه سال 1387 فعالیت خود را آغاز کرده. به طور متوسط سابقه هر یک از این افراد در زمینه توسعه نرم افزار به حدود 6 سال می رسد.
با توجه به این امر که در زمینه ساخت و توسعه نرم افزار بدست آوردن هر تجربه بسیار پر هزینه و با ارزش می باشد تصمیم گرفتیم که تجربیات مختصر خود، که قبل و بعد از تشکیل این گروه در طی انجام پرژه های نرم افزاری بدست آمده را با دیگران شریک شویم.