چگونه Code Snippet ها را مدیریت نماییم؟
امیدوارم که مطلب قبلی من با عنوان «چگونه با استفاده از Code Snippet سرعت کدنویسی خود را افزایش دهیم؟» را مطالعه کرده باشید، در این پست میخواهم مطالب تکمیلی در این زمینه را به شما معرفی نمایم. لطفا به مطلب زیر توجه نمایید:
قطعه کدها، بخشهای کوچکی نیستند که که آنها را در ویرایشگر برنامه خود copy و paste کنید بلکه قابلیتهای بسیار پیشرفتهای هستند که میتوانید از آنها استفاده نمایید. وقتی که یک قطعه کد را وارد کد خود میکنید، آنها به صورت خودکار اسمبلیهای ارجاع داده شده و موارد مورد نیاز را به پروژه افزوده تا بدون هیچ مشکلی بتوان برنامه را build کرد.
زمانی که یک قطعه کد را وارد برنامه میکنید، میتوانید با دکمه Tab و یا Shift + Tab بین بخشهای مختلف آن حرکت نمایید. روی هر کدام از بخشها که وارد شوید به کمک tooltip توضیحاتی درباره پارامتر مورد نظر به شما داده میشود و شما را راهنمایی میکند که باید چه چیزی جایگزین آن بخش شود. در هر بخش میتوانید دکمههای Ctrl و Space را با هم بفشارید تا از امکانات IntelliSense هم استفاده نمایید و لیستی از آبجکتهای پیشنهادی را ببینید.
در #C و در هنگام کار با آنها به محض فشردن دکمه Enter تمام تغییرات اعمال شده و علائم سبز که باید توسط برنامهنویس پر شوند از بین میروند و زمانی که این قسمت تکهای از کد شما شد، دیگر قابلیتهایتغییر رنگ و قابلیتهای دیگر را ندارید.
شما میتوانید از پنجره Code Snippets Manager قطعه کدهای موجود را مدیریت و نمونههای جدید را به مجموعه خود بیفزایید. برای دسترسی به این صفحات میتوانید از منوی Tools روی اسم پنجره کلیک نمایید تا برای شما پدیدار شود.
شما میتوانید از آدرسهای زیر قطعه کدهای آماده را برای زبان #C دریافت کرده و از طریق پنجره مذکور، آنها را به Visual Studio بیفزایید. این قطعه کدها برای نسخههای ۲۰۰۵ ، ۲۰۰۸ و ۲۰۱۰ آماده شده است.
با دکمه Add… میتوانید یک دایرکتوری از قطعهکدها را به صورت همزمان وارد نمایید در این حالت اگر داخل دایرکتوری شما فایلهایی غیر از موارد مورد نیاز هم باشد مشکلی پیش نمیآید و فقط موارد مورد نیاز استفاده میشوند. با استفاده از دکمه Import… میتوانید فقط یک یا چند قطعه کد را به صورت مستقیم به Visual Studio بیفزایید.
با دکمه Remove هم میتوانید یک دایرکتوری یا یک قطعه کد را حذف نمایید. اگر علاقهمند هستید که در MSDN دنبال قطعه کد بگردید، میتوانید روی دکمه Search Online… کلیک نمایید.
تذکر: شما میتوانید در Visual Studio قطعه کدهای سفارشی خود را بسازید و در وقت خود صرفهجویی نمایید. ساختن یک قطعه کد کار خیلی مشکلی نیست ولی میتواند سرعت شما را در توسعه نرمافزار افزایش بخشد.
منبع این مطلب http://ramezani.wordpress.com/
چگونه با استفاده از Code Snippet سرعت کدنویسی خود را افزایش دهیم؟
قطعه کد را می توان در روش های گوناگون وارد کد کرد. اگر شما در ویرایشگر در حال گشتن به دنبال یک تکه کد هستید ، از واردکننده قطعه کد (Code Snippet Inserter) استفاده کنید. شما می توانید آن را توسط راست کلیک کردن در ویرایشگر و انتخاب Insert Snippet… از منوی ظاهر شده فراخوانی کنید. در ویژوال بیسیک شما می توانید علامت “؟” را تایپ کرده، سپس کلید Tab را برای به دست آوردن نتیجه مشابه بفشارید. وارد کننده قطعه کد دارای خصوصیات مشترکی با IntelliSense میباشد. این به شمااین اجازه را میدهد که ساختار دایرکتوری قطعه کدها را پیمایش کرده و تکه کد مورد نظر خود را انتخاب نمایید. Tooltip هایی ظاهر میشوند که توضیحاتی در رابطه با تکه کد و کلید میانبر مربوط به آن به ما میدهد.
هر کدام از این قطعه کدها دارای یک میانبر هستند که میتوانید این میانبر را تایپ کنید و دکمه Tab را بزنید. مثلا میتوانید برای ساختن یک حلقه for، همین عبارت را تایپ کرده و روی دکمه Tab کلیک کنید تا خود Visual Studio این قطعه کد را به صورت قالب از پیش ساخته شده برای شما نمایش دهد، اینجا چون عبارت for خودش به عنوان میانبر تعریف شده با زدن Tab عبارت کامل شد. ممکن است این میانبر با نام قطعه کد ارتباطی نداشته باشد. به تصویر زیر توجه فرمایید:
دقت داشته باشید که پس از وارد شدن قطعه کد با فشردن دکمه Tab میتوانید در بین بخشهای مختلف تکه کد حرکت نمایید.
لازم به ذکر است که ما میتوانیم قطعه کدهای سفارشی خودمان را بسازیم و در هنگام کدنویسی از آن استفاده نماییم. مثلا میتوانید یک قطعه کد برای محاسبه یک مقدار خاص ساخته و هر موقع به آن نیاز داشتیم از آن استفاده نماییم. در آینده پستی در این زمینه خواهم نوشت که چگونه قطعه کد سفارشی خود را بسازیم.
این یک قابلیت ساده و بسیار کاربردی است که میتوانیم با استفاده از آن سرعت کدنویسی خود را بسیار بالا برده و در وقت صرفهجویی نماییم.
منبع این مطلب http://ramezani.wordpress.com/
نکاتی مختصر و مفید برای معرفی LINQ
سوال ۱) انگیزه اصلی برای به وجود آمدن LINQ چه بوده است؟
۱- یکپارچگی عمیق بین زبان برنامهنویسی و دادهها
۲-پیدا کردن راه حلی برای مشکل Object Relational Mapping علاوه بر سادهسازی تعامل بین آبجکتها و منابع دادهای
۳- یکی کردن و یکپارچگی دسترسی به دادهها
سوال ۲) انواع LINQ از لحاظ دسترسی به منابع اطلاعاتی کدامند؟
۱- کار با دادههای حافظه (LINQ to Dataset , LINQ to Object)
۲- کار با پایگاه داده (LINQ to SQL)
۳- کار با مستندات XML
۴- کار با file system و منابع دیگر مانند Active Directory
نکته ۱ : LINQ در عمل چندین دنیای مختلف را به هم چسباند. استفاده XML با آبجکتها، آبجکتها با داده های به هم مرتبط و دادههای به هم مرتبط با XML از جمله وظایفی است که LINQ آنها را ساده کرده است.
نکته ۲ : گرامر (syntax) و مفاهیم مربوط به LINQ در تمامی انواع استفاده آن مشترک است.
دستورالعملهای پیشپردازشی #C چیستند؟
دستورالعملهای پیشپردازشی به ما این قابلیت را میدهند که به صورت شرطی عملیات کامپایل کردن را انجام دهیم یعنی قابلیت نادیده گرفتن شرطی بخشی از فایلهای منبع، قرار دادن شرط برای تولید خطا و هشدار، و مشخص کردن بخشی مجزا از کد منبع را برای ما مهیا میکنند. واژه «دستورالعملهای پیشپردازشی» فقط برای همسانی با زبانهای برنامهنویسی C و ++C به کار برده شدهاند. در #C هیچ مرحله مجزایی به عنوان مرحله قبل از پردازش وجود ندارد و این دستورالعملها در بخشی از فاز تحلیل لغوی (lexical analysis phase) زبان، پردازش میشوند.
در #C دستورالعملهای پیشپردازشی زیر موجود هستند:
۱- define# و undefine# : به ترتیب برای تعریف و حذف کردن علامتهای قابل فهم برای کامپایل شرطی استفاده میذشوند.
۲- if# و elif# و else# و endif# : اینها عباراتی هستند که با استفاده از آنها میتوانیم به صورت شرطی به کامپایلر بفهمانیم که بخشی از کد منبع را در عملیات کامپایل کردن نادیده بگیرد.
۳- line# : که برای کنترل کردن شماره خطوطی که برای خطاها و هشدارها منتشر شدهاند.
۴- error# و warning# : به ترتبب برای صادر کردن خطاها و هشدارها استفاده میشوند.
۵- region# و endregion# : برای مشخص و مجزا کردن بخشی از کد منبع باشد.فکر میکنم از این دستورالعمل بیش از بقیه استفاده میشود.
به تکه کد زیر دقت کنید :
#define A
#undef B
class C
{
#if A
void F() {}
#else
void G() {}
#endif
#if B
void H() {}
#else
void I() {}
#endif
}
این تکه کد در زمان کامپایل معادل کد زیر کامپایل میشود :
class C
{
void F() {}
void I() {}
}
این دو اگرچه از لحاظ لغوی کاملا با هم متفاوتند ولی از دید قواعد نحوی کاملا معادل یکدیگر میباشند.
در اینجا برای فهم بهتر کامپایل شرطی مثالی میزنم تا موضوغ قابل فهمتر باشد. فرض کنید میخواهیم یکی از سرویسهای نوشته شده توسط ما، در یکی از dll های برنامهمان به صورت شرطی دو رفتار مختلف نشان دهد. مثلا این سرویس باید برای دو شرکت خریدار محصول ما متفاوت باشد و برای هر کدام نیاز داریم یک dll مجزا تولید کنیم، در عین حال نمیخواهیم به ازای هر کدام یک متد جدا داشته باشیم، در اینجا میتوانیم از دستورالعمل if# و else# و endif# استفاده کنیم و کامپایل شدن dll را به یک پارامتر وابسته نماییم. این پارامتر را هم میتوان به کمک define# تعریف کرد و هم میتوان از بخش properties مربوط به پروژه که به یک dll تبدیل خواهد شد این کار را انجام داد. برای روش دوم باید از صفحه ظاهر شده روی لبهی Build کلیک کرد و در بخش Conditional compilation symbols آن را تعریف میکنیم، مثلا میتوانیم از نام شرکت مورد نظر به عنوان این علامت استفاده کرد.
WCF به زبان ساده
WCF فریمورکی برای ساخت نرمافزارهای مبتنی بر سرویس است. با استفاده از آن میتوان پیامهای غیرهمزمان را از یک نقطه پایانی سرویس به یک نقطه پایانی سرویس دیگر ارسال کرد. نقطه پایانی سرویس میتواند بخشی از یک سرویس باشد که به طور مداوم در دسترس و IIS میزبان آن است، یا میتواند سرویسی باشد که یک نرمافزار میزبان است. یک نقطه پایانی میتواند کلاینتی از یک سرویس سرویس باشد که از یک نقطه پایانی سرویس دیگر، درخواست داده کند. پیامها میتوانند به سادگی یک کاراکتر ساده و یا یک XML پیچیده ارسال شده باشند. این دادهها همچنین میتوانند جریانی از دادهها باشند.
در زیر مثالهای سادهای از آن ارائه شده است :
- یک سرویس امن برای پردازش تراکنشهای تجاری
- یک سرویس که دادههایی را برای دیگران مهیا میکند مانند یک گزارش ترافیکی یا سرویسهای مونیتورینگ دیگر
- یک سرویس چت که به دو نفر اجازه ارتباط و تبادل داده در لحظه را میدهد.
- ظاهر ساختن یک گردش کاری پیادهسازی شده توسط WF به عنوان یک سرویس WCF
- نرمافزار تهیه شده با silverlight برای راهاندازی سرویس برای نمایش آخرین فیدهای خبری
به طور خلاصه میتوان گفت : WCF بدین منظور طراحی شده که راهکاری قابل مدیریت برای ساخت سرویسهای وب و کلاینتهای سرویسهای وب ارائه داد.
منبع این مطلب http://ramezani.wordpress.com/



