نظرات مطالب
تغییر عملکرد و یا ردیابی توابع ویندوز با استفاده از Hookهای دات نتی
تا به حال همچنین توضیح کاملی و خوبی به همراه یک مثال عالی هیچ جا ندیده بودم و میشه گفت روان‌ترین توضیح هوک رو ارائه دادید 
من هم علاقه‏‌مند شدم یک سری از نرم افزارهای روزمره رو به این ترتیب بومی کنم
بازخوردهای پروژه‌ها
آموزش WPF
سلام و خسته نباشید با توجه به توسعه نرم افزارهای تحت ویندوز توسط WPF از شما خواهشمندم مطالبی را در زمینه آموزش آن به سایت اضافه نمایید. با تشکر
نظرات نظرسنجی‌ها
از چند مانیتور برای برنامه نویسی استفاده میکنید؟
اگر اندازه مانیتور و رزولوشن یکسان باشه بهتره، من از دو ماینتور 20 و 22 اینچ سامسونگ و ال جی استفاده می‌کنیم، کیفیت رنگ سامسونگ بهتره و این تفاوت کیفیت کمی آزاردهنده اس، هم چنین ماینتور بزرگتر رزولوشن بالاتری داره و سایز تسکت دو طرف با هم اختلاف مقیاس داره و اون هم کمی نا هماهنگی ایجاد میکنه
هم چنین نرم افزارهای مدیریت dual monitor رو حتما امتحان کنید ، داشتن دو تسک بار مجزا و مستقل از هم برای هر مانیتور و انتقال یک پنجره به مانیتور دیگه با یک کلیک خیلی تجربه استفاده خوبی داره.
اشتراک‌ها
ساخت گزارش دفتر معین در نرم افزار Crystal Reports
یکی از نرم افزارهای پرکاربرد در بازار نرم افزار ایران، سیستم حسابداری می‌باشد. خوب همه ما می‌دانیم که تعداد نرم افزارهای حسابداری خیلی زیاد می‌باشد. کاربران معمولاً نرم افزارهایی را انتخاب می‌کنند که بتوانند گزارش‌های استاندارد مالی را از آن استخراج نمایند. یکی از این گزارش‌ها که در واقع یکی از اصلی‌ترین گزارش‌های سیستم حسابداری است، دفتر معین می‌باشد
ساخت گزارش دفتر معین در نرم افزار Crystal Reports
نظرات مطالب
EF Code First #11
من فکر می‌کنم طرحی که از Repository در ذهن شما است، تعریف یک اینترفیس که دارای متدهای مثلا Add و Get و امثال آن است. سپس پیاده سازی کامل آن با EF. چون مبتنی بر Interface است می‌شود یک پیاده سازی مبتنی با NH را هم برای آن تدارک دید. بعد این‌ها رو میشه با DI مدیریت کرد. بله. این شدنی است. فقط واژه‌های استفاده شده در اینجا بین من و شما یکی نیست. من Repository رو به عنوان یک لایه سبک محصور کننده خود EF مد نظر دارم. یعنی پیاده سازی که در هزاران سایت اینترنتی داره تبلیغ میشه و به نظر من لزومی ندارد. انتقال پذیر نیست و لذت استفاده از یک ORM واقعی رو از بین می‌بره.
در کل من از واژه سرویس استفاده کردم شما از واژه مخزن. ولی به نظر برداشت هر دو یکی است.
مطالب
بازسازی کد: جایگزینی آرایه با شیء (Replace array with object)
از آرایه برای ذخیره سازی آیتم‌های مشابه استفاده می‌شود. این تشابه باید علاوه بر اینکه در نوع داده‌ای آیتم‌ها رعایت شود، باید از نظر مفهومی نیز رعایت شود.
زمانیکه از یک آرایه برای نگهداری المنت‌های غیر مشابه استفاده می‌شود، نیاز به چنین بازسازی کدی است. به طور مثال آرایه‌ای که آیتم اول آن "نام" و آیتم دوم آن "امتیاز" است. قطعا کار با چنین آرایه‌ای بسیار مشکل خواهد بود. زمانیکه یک آرایه را از نوع داده‌ای عمومی‌تری (مثلا object در سی شارپ) تعریف و انواع داده‌ای متفاوت را در آیتم‌های آن نگهداری کنیم، اوضاع بسیار بدتر خواهد شد. 
محور اصلی بازسازی کد "جایگزینی آرایه با شیء" ایجاد یک کلاس، برای ذخیره اطلاعات آرایه است. به این صورت که برای هر آیتم آرایه، یک خصوصیت در کلاس مربوطه ایجاد می‌شود. 
به طور مثال به آرایه زیر توجه نمایید:
var row = new string[3]; 
row[0] = "Liverpool"; 
row[0] = "15";
در آرایه بالا، آیتم اول نشان دهنده نام تیم و آیتم دوم نشان دهنده امتیاز تیم است. با وجود اینکه این مثال کمی غیر واقعی به نظر میرسد، اما چنین مثال‌هایی در برنامه نویسی روزمره ممکن است به اشکال مختلفی مشاهده شود. مانند استفاده از dictionary برای دریافت اطلاعات فرم وب، استفاده از Tuple (در زبان سی شارپ) برای انتقال اطلاعات و … 
در این مثال طراحی بهتر، ایجاد یک کلاس یا ساختار (بسته به شرایط کلی مسئله) برای نشان دادن امتیاز تیم است:  
public class Performance 
{ 
       public string TeamName { get; set; } 
       public int Score { get; set; } 
}
همانطور که مشاهده می‌کنید، به ازای هر یک از آیتم‌های آرایه، خصوصیتی در کلاس جدید ایجاد شده‌است. همچنین انتخاب انواع داده‌ای نیز در طراحی جدید، ساده‌تر و اصولی‌تر انجام خواهد شد.
تمامی استفاده‌ها از آرایه‌ها، در دسته بندی این نوشتار برای بازسازی کد قرار نمی‌گیرند. آرایه‌هایی که اصل مشابه بودن آیتم‌ها را رعایت می‌کنند، معمولا نیازی به بازسازی کد ندارند. به طور مثال در نرم افزارهای فروشگاه اینترنتی، خصوصیات کالا به صورت داینامیک ذخیره شده و احتمالا برای دسترسی و مدیریت آن، از آرایه یا لیست استفاده می‌شود. اما با کمی دقت خواهیم دید، این استفاده از آرایه، با تعریف مشابه بودن آیتم‌ها همخوانی دارد. زیرا تمامی آیتم‌های آرایه به طور مثال از نوع خصوصیت کالا هستند. همچنین عملا امکان بازسازی و ایجاد کلاس در این مثال وجود ندارد؛ زیرا خصوصیات کالاها در زمان توسعه مشخص نیستند و در زمان اجرای برنامه تنظیم می‌شوند. 
بازخوردهای پروژه‌ها
تغییر برنامه به عنوان سرویس ویندوز
سلام 
با توجه به اینکه این برنامه که زحمت تهیه‌اش رو کشیدید بسیار برای ما ایرانیان مفید هست اگر به صورت یک ویندوز سرویس ارائه بشه بسیار کاربردی‌تر خواهد بود ... بطور مثال زمان استفاده از این برنامه اگر نرم افزارهایی برای بهبود کارایی ویندوز مثل TuneUp Utilities روی سیستم نصب باشه اجرای خودکار برنامه برای بهینه سازی سرعت لود ویندوز متوقف میشه و کار نمیکنه و اکثر مواقع به طور خودکار (بسته به تنظیمات) نرم افزارهای غیر ضرروری غیر فعال میشوند... ولی سرویس‌های ویندوز به چنین مشکلاتی بر نمیخورند عموما ... 
پیشنهاد من تبدیل برنامه به یک ویندوز سرویس بود .
با تشکر
موفق باشید
نظرات مطالب
اضافه کردن قابلیت از سرگیری مجدد (resume) به HttpWebRequest
سلام
جناب نصیری در مورد دوم باید عرض کنم که فایله پاک نمیشه و اگر دوباره بک بار صفحه رو رفرش کنیم دوباره میشه فایل رو دانلود کرد به نظر میرسه فلدرهای حاوی فایلها احتمالا تغییر نام پیدا میکنند.
در مورد سوم که فرمودین آیا ما دسترسی مستقیم به فایل FLV رو داریم؟ کلا در اینگونه سایتها راهی برای پیدا کردنه لینکه مستقیم وجود داره؟
ببخشید من زیاد سوال پرسیدم اما یه مسئله ای به ذهنه من رسید اینکه چطور نمیشه از RapidShare با یوزر رایگان با استفاده از نرم افزارهای مدیریت دانلود چیزی دانلود کرد؟از کجا میفهمه که الان ویندوز داره میگیره یا دانلود مینیجر؟
ممنون از لطف شما
نظرات نظرسنجی‌ها
کدام یک از فریمورک‌های زیر را جهت تولید نرم افزارهای وب پایه SPA مناسب می‌دانید؟
موافقم. البته در مقایسه منصفانه پارامترهای دیگری نظیر فراگیری فریم ورک (محبوبیت) و بدنبال اون پشتیبانی شرکتهای ثالث (third party) نیز نقش مهمی در انتخاب یک فریم ورک دارند که متاسفانه فعلا انگولار در کسب موفقیت در این پارامتر‌ها فاصله داره. بطور مثال React جدا از خود facebook توسط hellosign netflix و چندی دیگر از کمپانی‌های صاحب نام مورد استفاده قرار گرفته هرچند React از نظر ساختاری بیشتر ابزاره تا فریمورک کاملی چون انگولار ولی انتخاب منطقی‌تر توسط شرکتهای بزرگ معمولا انتخاب گزینه ای با ریسک کمتر بوده..
به نظر من انگولار با عرضه نسخه نهایی این قابلیت رو داره که در مدت کمی تغییرات قابل توجهی رو در توسعه نرم افزارهای تحت web بده

 
پاسخ به بازخورد‌های پروژه‌ها
خطا در زمان تایید پرداخت
منظورشون این است که بانک‌ها رنج آی پی خارج از ایران رو بستن (اتصال از طریق VPN = نداشتن IP ایرانی). بد نیست امکان ارائه اخطار به کاربر پیش از شروع به پرداخت در مورد اینکه IP ایرانی ندارد، اضافه شود.