نظرات مطالب
آموزش TypeScript #1
از آن جا که این زبان syntax نزدیکی به زبان‌های دات نتی دارد و به خوبی در Vs.Net پشتیبانی می‌شود نه تنها گزینه مناسبی برای توسعه در پروژه‌های وب است بلکه در توسعه پروژه‌های Windows Store App نیز می‌تواند یکی از بهترین انتخاب‌ها باشد. در ضمن این زیان به صورت پیش فرض از ECMA Script 3 هنگام تبدیل کد‌ها به زبان Javascript استفاده می‌کند و تقریبا با تمام مرورگرهای قدیمی و جدید سازگار است البته به راحتی امکان تغییر این option برای سازگاری کامپایلر TypeScript با ECMA Script 5 نیز وجود دارد.
مطالب
خلاصه اشتراک‌های روز پنج شنبه 17 آذر 1390
بازخوردهای دوره
معرفی پروژه NotifyPropertyWeaver
نیازی به مثال اضافه‌تری ندارد. بسته‌ی نیوگت مربوطه را نصب کنید. اینترفیس یاد شده را پیاده سازی کنید. برنامه را کامپایل کنید. فقط همین مراحل کافی هستند تا مابقی کدهای مرتبط، به صورت خودکار به فایل exe یا dll نهایی اضافه شوند.
اشتراک‌ها
Memory Profiler در Visual Studio 2015

شاید تا به حال به این فکر افتاده بودید که برنامه‌ی شما چه مقداری از RAM ، CPU و ... را اشغال کرده است، و جواب آن را به طور مثال در Task Manager ویندوز پیدا کرده باشید. اما آیا تا به حال به این فکر رفته اید که خب این برنامه چرا باید این مقدار از حافظه را اشغال کند و بخواهید به طور دقیق مقدار حافظه را چک کنید، که چه آبجکت هایی از چه کلاس هایی چه مقدار از رم را اشغال کرده است. در این مقاله قصد دارم که ابزاری به شما معرفی کنم که شما به کمک آن میتوانید به راحتی در هنگام Debug برنامه خود مصرف حافظه برنامه‌ی خود را با جزئیات آن بسنجید . همچنین شما میتوانید با اعمال یک سری از تغییرات بر روی برنامه متوجه شوید که این تغییرات چقدر بر مصرف حافظه‌ی شما تاثیر داشته اند.

با Memory Usage Tool   که در VS2015 وجود دارد، شما میتوانید در حالت عیب یابی (debugging) ، مصرف حافظه‌ی خود را بسنجید.

·   Break-Aware Live Graph

یکی از قابلیت‌های کلیدی Diagnostic Tools window این است که فقط در زمانی که برنامه در حال اجرا با در زمانی که به وسیله‌ی breakpoint متوقف شده باشد،گراف را ثبت میکند. پس وقتی که به وسیله‌ی یک breakpoint برنامه متوقف شده باشد، این گراف هیچ پیشروی نخواهد کرد مگر اینکه شما برنامه را ادامه دهید. در این صورت گراف با شرایط فعلی برنامه شما پیشروی خواهد کرد.

شما میتوانید این ابزار را در موقعی که برنامه‌ی شما در حال اجراست در سمت راست مشاهده کنید. همچنین میتوانید در هنگامی که برنامه‌ی شما از حالت اجرا خارج شد این ابزار را از مسیر
  Debug -> Show Diagnostic Tools بیاورید

خب حالا وقت آن رسیده که درباره طرز کار این ابزار با هم صحبت کنیم. همانطور که گفتم وقتی برنامه در حال اجراست، این ابزار به طور خودکار در سمت راست صفحه ظاهر خواهد شد. برای اینکه بتوانید مصرف حافظه با جزئیات آن را ببینید میتوانید به روش زیر عمل کنید.

ابتدا بر روی گزینه‌ی Memory Usage کلیک کرده و گزینه‌ی Take Snapshot را انتخاب کنید

وقتی که بر روی این گزینه کلیک کردید مصرف حافظه‌ی شما به جزئیات به شما نشان داده میشود.

حال میتوانید با انتخاب مقدار Object از مصرف حافظه‌ی کلاس‌های خود و آبجکت‌های خود مطلع شوید.

با این ابزار شما قادر خواهید بود که میزان تغییر حافظه بر اساس مقایسه بین دو Snapshot را بسنجید. برای اینکار شما میتوانید بعد از اعمال تغییرات، و یا بعد از زمانی مشخص دوباره بر روی گزینه‌ی Take Snapshot کلیک کنید. در این حالت شما میتوانید تغییری که بر روی حافظه‌ی شما اعمال گردیده را مشاهده کنید.


Memory Profiler در Visual Studio 2015
نظرات مطالب
امکان تغییر شکل سراسری URLهای تولیدی توسط برنامه‌های ASP.NET Core 2.2
- به همین صورت باید باشد؛ در غیر اینصورت مقدار کوئری استرینگ دریافتی، encoding صحیح خودش را از دست خواهد داد و در برنامه قابلیت پردازش نخواهد داشت. مگر اینکه در اکشن متد مدنظر هم این encoding غیراستاندارد را دستی پردازش کنید.
- موردی که مدنظر شما است احتمالا تولید slug است که در مطلب «بهینه سازی برنامه‌های وب ASP.NET برای موتورهای جستجو (SEO)» متدی برای آن ارائه شده و در برنامه پردازش نمی‌شود؛ فقط جنبه‌ی نمایشی و یا ارائه‌ی به موتورهای جستجو را دارد. نحوه‌ی استفاده‌ی از آن هم در یک View به این صورت است:
@using System.Text;
@using System.Text.RegularExpressions;

@functions
{
   private static string RemoveAccent(string text) { /* defined in https://www.dntips.ir/post/1529*/  }
   public static string GenerateSlug(string title, int maxLenghtSlug = 50) { /* defined in https://www.dntips.ir/post/1529*/   }
}

@{
  var value = GenerateSlug("this is a test");
}
<a asp-controller="Home" asp-action="ViewDetails" asp-route-id="@value">View Details</a>
اشتراک‌ها
تجزیه و تحلیل حافظه مدیریت شده در ویژوال استودیو 2013
یکی از مسائلی که مکررا برنامه‌های دات نت را تحت تاثیر قرار میدهد، مشکل استفاده آنها از حافظه است. ویژوال استودیو 2013 ابزاری را جهت پیدا کردن نشت حافظه، استفاده نامناسب از حافظه و... در اختیار برنامه نویس قرار داده.
تجزیه و تحلیل حافظه مدیریت شده در ویژوال استودیو 2013
نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 2 - بررسی ساختار جدید Solution
وقتی که دات نت 4.6.1 رو خواستید معرفی کنید جدای گره dotnetcoreapp بود و نود جدید براش نوشتید . خب اگر این طور باشه پس این دو تا وابستگی بهم ندارن؟ یعنی در واقع دو سکو برای اجرا برنامه معرفی کردیم ؟ و اگر فریم ورک 4.6.1 داخل dotnetcoreapp باشه یعنی dotnetcore روی بیس 4.6.1 اجرا می‌شه؟
نظرات مطالب
CAPTCHAfa
نوشتن مشابه آن با دات نت زیاد سخت نیست. برای نمونه «بررسی نحوه برنامه نویسی سایت نستعلیق آنلاین» می‌‌تونه ایده خوبی برای شروع باشه. من این مطلب رو به همراه مطلب «تبدیل عدد به حروف » کنار هم گذاشتم و یک captcha فارسی ازش تهیه کردم.
نظرات مطالب
استفاده از اسمبلی‌های دات نت 2 در یک پروژه دات نت 4
- یک نکته‌ی دیگر:
اگر حین کار با NHibernate و SQLite در یک برنامه‌ی دات نت 4 به خطای "Could not create the driver from NHibernate.Driver.SQLite20Driver" برخوردید، راه حل همان مورد فوق است (اضافه کردن useLegacyV2RuntimeActivationPolicy به فایل کانفیگ برنامه).
پاسخ به بازخورد‌های پروژه‌ها
خطا در اجرای برنامه
- بهتر است دات نت 4.6.1 را روی ویندوز 7 نصب کنید (این بسته مشکلات تداخلات به روز رسانی‌ها را برطرف می‌کند). لینک دریافت مستقیم
- همچنین برنامه هم نباید توسط نرم افزارهای امنیتی بلاک شود. چون یک وب سرور کوچک را برای دریافت پیام‌های رسیده‌ی از برنامه‌ی در حال پروفایل ایجاد می‌کند.