نظرات مطالب
یکی کردن اسمبلی‌های یک پروژه‌ی WPF
یک نکته‌ی تکمیلی
اگر به دنبال یک راه حل پخته‌تر هستید که با انواع و اقسام اسمبلی‌ها بتواند کار کند (از mixed mode گرفته تا pcl و غیره)، افزونه‌ی  Fody / Costura توصیه می‌شود. کار با آن نیز بسیار ساده‌است. فقط کافی است دستور زیر را در کنسول پاور شل نیوگت VS.NET اجرا کنید:
PM> Install-Package Costura.Fody
بعد از نصب، تنها یکبار برنامه را مجددا build کنید.
اکنون اگر اسمبلی آن‌را بررسی کنید موارد ذیل را مشاهده خواهید کرد:

الف) اسمبلی‌های مدفون شده را zip کرده‌است.
ب) فایل pdb هم لحاظ شده.
ج) راه انداز خودکار و کدهای AssemblyResolver را تحت فضای نام  Costura به فایل EXE نهایی افزوده‌است.
 
Fody یکی از ابزارهای AOP سورس باز دات نت است.
نظرات مطالب
ثبت استثناهای مدیریت شده توسط ELMAH
- بله؛ منتقل نمی‌شود به روال‌های رویدادگردان یاد شده. سطر یاد شده در متن فوق، صرفا خطای مدنظر را به لیست لاگ‌های قابل گزارشگیری ELMAH اضافه می‌کند.
- Elmah یک فایل DLL دارد به نام Elmah.dll. به این فایل‌های DLL در دات نت، اصطلاحا اسمبلی گفته می‌شود. افزودن ارجاعی به اسمبلی، یعنی مراجعه به منوی پروژه در VS.NET و سپس انتخاب گزینه‌ی Add reference در آنجا و انتخاب DLL یاد شده.
- در قسمت «مطالب مرتبط » ذیل هر بحث، یا حتی مقدمه‌ی بحث جاری، مثال‌های بیشتری ارائه شده‌اند.
نظرات مطالب
بررسی تغییرات ASP.NET MVC 5 beta1
با سلام
با توجه به تغییرات سیستم امنیتی mvc  در نگارش 4 که از وب ماتریکس استفاده می‌کرد و در دات نت که بحث owin و غیره مطرح هست، یه مشکلی که وجود داره ، ساخت یه سری کلاس زیربنایی هست که اصطلاحا به فریم ورک تعبیر میشه. اگر بخوایم مثلا برای قسمت زیربنایی نام کاربری رو داشته باشیم، چه روشی رو پیشنهاد می‌کنید؟
مثلا در mvc 4 من از وب ماتریکس WebMatrix.WebData.WebSecurity.CurrentUserName  استفاده میکردم، ولی الان با mvc 5 نال میشه و مقدار نداره.
نظرات مطالب
ASP.NET MVC #1
- در نظرات مطلب «PHP سریعتر از ASP.NET! افسانه یا واقعیت؟ » در مورد علت تاخیر اولیه نمایش سایت‌های ASP.NET بحث شده. (چند مرحله‌ای بودن کامپایل کدهای دات نت و زمان بارگذاری اولیه برنامه در یک پروسه وب؛ بعد از این گذر اولیه الزامی، با سرعت خوبی مواجه خواهید بود)
- ضمنا بحث MVC، بحث سرعت نیست. این‌ها مسایل حاشیه‌ای هستند. اینجا در مورد یک طرز تفکر دیگر، در مورد بکارگیری الگوها، تهیه برنامه‌هایی با قابلیت آزمون پذیری بهتر، تمیزتر و اصولی کار کردن بیشتر بحث می‌شود و نه مسابقه‌ی سرعت.
نظرات مطالب
آغاز به کار با Twitter Bootstrap در ASP.NET MVC
با سلام ضمن تشکر از شما بابت آموزش‌های بسیار خوب
یه سوال داشتم من از VS2010 , C#.net  دارم استفاده می‌کنم برای استفاده کردن از Bootstrap تمامی مراحل یاد شده توسط شما رو مو به مو اجرا کردم اما متاسفانه به هیچ وجه کار نداد البته خطا هم نمیده اما مباحث مربوط به ریسپانسیو بودن صفحه و حتی نمایش span‌ها جوابی نگرفتم آیا این بدلیل ورژن VS2010 هست یا دات نت؟ یا یه چیز دیگه ؟
ظاهرا سایتی که ایجاد کردم هیچ درکی از span نداره در حالی که تمام فایل‌های bootstrap رو طبق آموزش روی سایت نصب کردم
ممنون میشم راهنماییم نمایید
نظرات مطالب
الگوی استراتژی - Strategy Pattern
- اگر پروژه خودتون هست، از اینترفیس استفاده کنید. تغییرات آن و نگارش‌های بعدی آن تحت کنترل خودتان است و build دیگران را تحت تاثیر قرار نمی‌دهد.
- در پروژه‌های سورس باز دات نت، عموما از ترکیب این دو استفاده می‌شود. مواردی که قرار است در اختیار عموم باشند حتی دو لایه هم می‌شوند. مثلا در MVC یک اینترفیس IController هست و بعد یک کلاس Abstract به نام Controller، که این اینترفیس را پیاده سازی کرده برای ورژن پذیری بعدی و کنترلرهای پروژه‌های عمومی MVC از این کلاس Abstract مشتق می‌شوند یا در پروژه RavenDB از کلاس‌های Abstract زیاد استفاده شده، مانند AbstractIndexCreationTask و AbstractMultiMapIndexCreationTask و غیره.
نظرات مطالب
ASP.NET MVC #12
- ویژگی‌ها یا Attributes در دات نت، استاتیک متادیتا هستند؛ مانند تعداد پارامترها، نام متدها و امثال آن که به صورت کامپایل شده در فایل باینری نهایی قرار می‌گیرند و نهایتا از طریق Reflection قابل دسترسی خواهند بود. تغییر آن‌ها یا افزودن آن‌ها عموما از طریق دستکاری کدهای IL میسر است یا از روش‌های IL Code weaving مباحث AOP یا روش‌هایی مانند Reflection.Emit و همانند آن. 
- یک استثناء در اینجا وجود دارد و آن هم متد TypeDescriptor.AddAttributes است که در زمان اجرا کار می‌کند. استفاده از آن هم فقط زمانی جواب خواهد داد که فریم ورک پایه از متد  TypeDescriptor.GetAttributes برای یافتن ویژگی‌ها استفاده کرده باشد.
نظرات مطالب
معماری لایه بندی نرم افزار #4
با تشکر از نویسنده مقاله و اهتمام ایشان به بررسی دقیق مفاهیم ،
 از آنجا که flexible و  reusable  بودن برنامه‌ها را نمی‌توان نادیده گرفت تا آنجا که این تفکیک پذیری خود به مسئله ای بغرنج تبدیل نشده و تکرر داده‌ها و پاس دادن غیر ضرور آنها را موجب نشود تلاش در این باره مفید خواهد بود .
امروزه توسعه دهنده گان به سمت کم کردن لایه‌های فرسایشی و حذف پیچیدگی‌های غیر ضرور قدم بر می‌دارند.  خلق عبارات لامبادا در دات نت و delegate   ها  نمونه هایی از تلاش بشر برنامه نویس در این باره است .



نظرات مطالب
قسمت دوم -- نگاهی دقیق تر به اولین پروژه VC++ (درک مفهوم فایلهای سرآیند و فضای نام ، ویژگیهای زبان ++C و برخی قوانین برنامه نویسی در ++C)
دوست عزیز بنده هم VC++  نوشتم ولی نمیدونم چرا ++ نمایش داده نمیشه .

انشاا... در هر دو مورد کد مدیریت شده و native کد صحبت خواهیم نمود . کد مدیریت شده همانطور که شما فرمودین تحت common language runtime  اجرا میشود و برای اجرای برنامه نیاز به نصب دات نت فریمورک روی ماشین مقصد هست ، ولی native  کد فقط از توابع کتابخانه ای استفاده میکند و نیازی به نصب .net framework  جهت اجرای برنامه بر روی ماشین مقصد ندارد . آموزشهایی که تا کنون داده ام  (2  مورد ) با توجه به گفته شما مربوط به قسمت native  آن می‌باشد .
در ادامه حتما در مورد تفاوت‌های کد مدیریت شده و کد محلی صحبت خواهیم نمود .
تغییر اعمال شد .
نظرات مطالب
مقابله با XSS ؛ یکبار برای همیشه!
این ماژول و کدهای اون رو به روز کردم و از اینجا قابل دریافت است:
HtmlCleaner.zip

تفاوت‌ها:
- برای دات نت سه و نیم کامپایل شده. فقط فایل dll رو به پروژه خودتون cs یا vb اضافه کنید.
- متد ToSafeHtml کلاس HtmlSanitizer برای کار با تگ‌های مشخص شده با حروف کوچک و بزرگ بهبود یافته (الان در همین سایت جاری استفاده می‌شود).
- الزامی نیست حتما از AntiXssModule آن استفاده کنید. کلا هرجایی که Allow Html دارید، متد ToSafeHtml را برای پاکسازی اطلاعات فراخوانی کنید (در MVC و یا در وب فرم‌ها).
- کلاس PersianProofWriter هم به آن اضافه شده (جزئی از ToSafeHtml است). یک سری از مسایل مانند نیم فاصله‌ها رو به صورت خودکار اصلاح می‌کند؛ به همراه اصلاح ی و ک فارسی.

به صورت خلاصه:
فقط از متد ToSafeHtml کلاس HtmlSanitizer آن به صورت دستی و در موارد لازم که HTML از کاربر دریافت می‌شود، استفاده کنید.