نظرات مطالب
lambda expression در Vb.net
اصولا این گونه نظرات نسبت به زبانی مثل وی بی دات نت به دلیل عدم سابقه تجربی و دانش کافی در مورد آن است. از نظر کارایی و سرعت و قدرت که تفاوت خاصی بین زبان‌های قابل استفاده در دات نت نیست. از نظر زیبایی سینتکس وی بی دات نت برتری داره و به همین دلیل برای آموزش و شروع کار بسیار بهتر است و برای ادامه هم هیچ مشکلی ندارد. سی شارپ هم جذابیت‌های خود را دارد. گاهی همان خلاصه نویسی آن لذت بخش است. اما اصولا یه برنامه نویس حرفه ای که یکی از این زبان‌ها را انتخاب کرده به راحتی می‌تواند در چند ساعت در دیگری نیز مهارت لازم را کسب نماید. بحث عمر تلف شدن در وی بی بسیار جالب است!
نظرات مطالب
اصول برنامه نویسی موازی درNET. نسخه 4 بخش اول - 1
اگر منظور شما از روش‌های کلاسیک استفاده از Threadهاست باید بدانید که آن روش‌ها برای CPU‌های تک هسته ای در نظر گرفته شده بودند. همانطور که می‌دانید در CPU‌های تک هسته ای ، CPU تنها قادر به اجرای یک وظیفه در یک واحد زمان می‌باشد. در این CPU‌ها برای اینکه بتوان چندین وظیفه  را همراه با هم انجام داد CPU بین کارهای در حال انجام در بازه‌های زمانی مختلف سوییچ میکند و برای ما اینطور به نظر می‌آید که CPU در حال انجام چند وظیفه در یک زمان است.
اما در CPU‌ها چند هسته ای امروزی هر هسته قادر به اجرای یک وظیفه به صورت مجزا می‌باشد و این CPU‌ها برای انجام کارهای همزمان عملکرد بسیار بسیار بهتری نسبت به CPU‌های تک هسته ای دارند.
 با توجه به این موضوع برای اینکه بتوان از قابلیتهای چند هسته ای CPU‌های امروزی استفاده کرد باید برنامه نویسی موازی (Parallel Programming) انجام داد و روش‌های کلاسیک مناسب این کار نمی‌باشند. 
نظرات مطالب
شرح حال ابزارهای گزارشگیری موجود
مثال PivotGrid که البته با asp.net است
http://demos.devexpress.com/xtrareportsdemos/ReportControls/XRPivotGrid.aspx
هیچ کد نویسی لازم ندارید! فقط یک کنترل PivotGrid رو تو فرم قرار دهید و گرید رو طراحی کنید، نتیجه مانند دمو میشه!
لیست امکاناتش.
http://documentation.devexpress.com/#XtraReports/CustomDocument2161

یک امکان بسیار جالب که این گزارش گیری داره امکان قرار دادن کنترل های معمولی رو گزارش هست، و همچنین امکان دسترسی به تمامی کنترل های از دورن کد برنامه.
تصور می کنم که اگه یک کنترل PivotGrid معمولی (pivotGrid گزارش امکان تولید خودکار ستون ها رو نداره) رو در گزارش قرار بدیم و datasourceرو برابر خروجی اون تابع در پست بگذاریم، نتیجه مورد نظر که گفتید بدست میاد.

مطالب شما هم همیشه مورد استفاده و بسیار کاربردی بوده، بابت زحماتتون ازتون تشکر می کنم :)
نظرات مطالب
نقدی بر کتاب «مرجع کامل entity framework 4.1»
درک مطلب در درجه‌ای اول به دامنه‌ی لغات شما وابسته است. دامنه‌ی لغات کتاب‌های فنی هم خوشبختانه زیاد وسیع نیست برای مثال نسبت به کتاب‌های رمان و ادبی و امثال آن. بنابراین باید شروع کنید به «خواندن». نه خواندن لغات لغتنامه که هیچ اثری ندارد. لغات را باید در متن یاد بگیرید. مثلا شروع کنید به وبلاگ انگلیسی خواندن. در این سایت OPML را جستجو کنید. تعداد زیادی فید سایت‌های مرتبط برنامه نویسی رو می‌تونید پیدا کنید. خلاصه کم کم به این ترتیب، البته نه از روی تفنن، بلکه به صورت جدی با یاد گرفتن روزی حداقل 10 واژه جدید، ظرف یکسال ترس شما از متون فنی انگلیسی خواهد ریخت.
نظرات مطالب
چرا در سازمان‌ها برنامه‌های وب جایگزین برنامه‌های دسکتاپ شده‌اند (یا می‌شوند)؟
نه. هر کدوم جایگاه خودشون رو دارند.
بحث من مدیریت ساده‌تر بیش از 200 کاربر و کامپیوتر در یک شبکه بود. ساده‌تر شدن به روز رسانی‌ها، مدیریت و تهیه پشتیبان از اطلاعات، دسترسی ریموت به برنامه‌ها، امکان دسترسی به برنامه از سیستم‌ عامل‌های مختلف و کلیه مواردی که ذکر شد. در اینجاها windows application نویسی مقرون به صرفه نیست.
و گرنه نوشتن windows service یا برنامه‌های تک کاربره یا حتی چندکاربره در مقایس کم مثلا یک شرکت 5 نفره ... و امثال آن لزومی ندارد که با وب اپلیکیشن باشد.
نظرات مطالب
خواندنی‌های 9 اردیبهشت
تولید کننده‌های unit test روش غلطی از دیدگاه تئوری محسوب می‌شوند چون کلا test driven development به معنای اول نوشتن تست و بعد برنامه نویسی است.
تولید خودکار متدهای تست از روی کدهای موجود می‌تونه بر اساس یک متد باگ دار هم تولید بشه که نهایتا نتیجه جالبی را برای شما تولید نخواهد کرد.
و کلا این دیدگاه که کدوم بهتره، این یا اون و غیره رو کنار بگذارید. یک فریم ورک تست را پیدا کنید و با آن ادامه بدهید. هدف نوشتن تست است. این فریم ورک‌ها حداکثر چند قابلیت بیشتر یا کمتر دارند.
مطالب
آموزش زبان Rust - قسمت 10 - مفهوم Borrowing در Rust
Rust، یک زبان برنامه نویسی سیستمی است که برای ایمنی، همزمانی و عملکرد بهتر طراحی شده‌است. یکی از ویژگی‌های کلیدی آن، مفهوم Borrowing است که به توسعه دهندگان اجازه می‌دهد تا ارجاعاتی را به ارزش‌ها بدون در اختیار گرفتن مالکیت، ایجاد کنند. این مقاله اهمیت قرض گرفتن را در این زبان برنامه‌نویسی را بررسی می‌کند.  

Borrowing در Rust

Borrowing عمل ایجاد ارجاع به یک ارزش، بدون در اختیار گرفتن مالکیت است. در Rust، ارجاعات، مشابه اشاره‌گرهای معمولی هستند؛ اما با قوانین و محدودیت‌هایی اضافه شده‌اند. ویژگی‌های اصلی Borrowing عبارتند از:
  • References اشاره‌گرهایی با قوانین و محدودیت‌ها هستند.
  • References مالکیت ارزش‌ها را نمی‌گیرند.


دلایل Borrowing در Rust

چندین دلیل وجود دارند که چرا Borrowing در Rust سودمند است:
Performance : به کمک Borrowing، با انتقال ارجاع به یک مقدار بجای clone، عملکرد بهبود بخشیده می‌شود. به عنوان مثال هنگامیکه یک تابع، دارای پارامتری مانند یک رشته است، انتقال مرجع، کارآمدتر از تکرار مقدار است.
Ownership Management : در مواردی که مالکیت، مورد نیاز یا مطلوب نیست، Borrowing یک راه حل ایده‌آل است. با عدم مالکیت، یک تابع نباید مسئول تصمیم‌گیری در مورد زمان پاکسازی یک مقدار باشد.


قوانین Borrowing در Rust

Rust دو قانون اصلی Borrowing را اعمال می‌کند:
  • در هر زمان معین، می‌توانید یک مرجع قابل تغییر یا هر تعداد مرجع تغییرناپذیر داشته باشید.
  • مراجع باید همیشه معتبر باشند.

این قوانین به حل دو مشکل عمده در برنامه نویسی کمک می‌کنند:
Data Races  : مشکل Data Races زمانی رخ می‌دهد که دو رشته سعی می‌کنند مکان حافظه‌ی یکسانی را به طور همزمان بخوانند و یا بنویسند که منجر به نتایج غیر قطعی می‌شود. قوانین Borrowing در Rust تضمین می‌کند که از چنین درگیری‌هایی جلوگیری می‌شود.
Dangling References : یک dangling reference به حافظه‌ی نامعتبری اشاره می‌کند. با اطمینان از اینکه مراجع همیشه معتبر هستند، قوانین وام گیری Rust از وقوع ارجاعات آویزان جلوگیری می‌کند.


ویژگی‌های قابل توجه Borrowing   

Immutable References by Default : در Rust، یک reference به طور پیش فرض تغییر ناپذیر است. این انتخاب طراحی بر اهمیت Borrowing برای برنامه نویسی ایمن و کارآمد تاکید دارد.
Automatic Dereferencing: در Rust ویژگی عدم ارجاع خودکار وجود دارد؛ به این معنا که توسعه دهندگان مجبور نیستند به صراحت، ارجاع را پیاده سازی کنند. این روند، کار با ارزش‌های borrowed را ساده می‌کند.

Rust یک زبان برنامه نویسی قدرتمند است که ایمنی و عملکرد را از طریق ویژگی‌هایی مانند Borrowing در اولویت قرار می‌دهد. با درک مفهوم Borrowing و رعایت قوانین آن، توسعه دهندگان می‌توانند از پتانسیل کامل Rust برای ایجاد نرم افزاری کارآمد، قابل اعتماد و همزمان استفاده کنند. 
مطالب
کش کردن اطلاعات غیر پویا در ASP.Net - قسمت سوم

در دو قسمت قبل در مورد IIS7 و IIS6 صحبت شد (+ و +).
در تکمیل قسمت دوم، یک مورد هم جزو قابلیت‌های ذاتی IIS6 و همچنین IIS5 است که می‌توان آن‌را فعال نمود (اگر دسترسی به سرور دارید) :




تنظیم مدت زمان content expiration ، بدون نیاز به برنامه نویسی خاصی، کار اضافه کردن هدر مربوط به مدت زمان کش شدن سمت کلاینت را به محتویات غیرپویای سایت شما مانند تصاویر ، فایل‌های CSS و غیره انجام می‌دهد. آمارها نشان می‌دهند که این تنظیم، زمان بارگذاری بعدی را بین 50 تا 70 درصد کاهش می‌دهد.
تنظیم این قابلیت را می‌توانید به چک لیست نصب IIS خود اضافه نمائید.

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

وبلاگ‌ها ، سایت‌ها و مقالات ایرانی (داخل و خارج از ایران)

امنیت


Visual Studio

ASP. Net

طراحی و توسعه وب

PHP

اس‌کیوال سرور

سی شارپ

عمومی دات نت

ویندوز

مسایل اجتماعی و انسانی برنامه نویسی

متفرقه