نوشتن Middleware سفارشی در ASP.NET Core
در مطلب «ارتقاء به ASP.NET Core 1.0 - قسمت 3 - Middleware چیست؟» با اصول مقدماتی Middlewareها آشنا شدیم. همچنین در مطلب «آشنایی با OWIN و بررسی نقش آن در ASP.NET Core» یک مثال سفارشی از آنها، بررسی...
View Articleاستفاده از پیاده سازی Katana مربوط به استاندارد Owin در ASP.NET 4.x
قطعا ASP.NET MVC 5.x به عنوان یک فریم ورک بالغ و با امکانات فراوان شناخته میشود که در این مساله هیچ بحثی نیست. اما آیا در همهی پروژهها حتما باید از این فریم ورک استفاده شود؟ امروزه اکثر وب...
View ArticleMethodCallSerializer یا Serialize کردن فراخوانی متد
مدتی پیش نیاز پیدا کردم تا فراخوانی متدهایی را Serialize کرده و در مواقعی خاص، آن متدها را فراخوانی کنم که نتیجهی آن را در زیر با هم میبینیم. در نظر بگیرید متدی داریم به شکل زیر: public class...
View Articleاصول طراحی شیء گرا: OO Design Principles - قسمت پنجم
دانای اطلاعات (Information Expert)بر طبق این اصل میتوان برای واگذاری هر مسئولیت، کلاسی را انتخاب کرد که بیشترین اطلاعات را در مورد انجام آن در اختیار دارد و لذا نیاز کمتری به ایجاد ارتباط با دیگر...
View ArticleAction و Function در OData
استفاده از OData تنها به عملیات CRUD معطوف نمیشود و در عمل شما این قابلیت را دارید که متدهای سفارشی و کاملا مجزایی را از همدیگر در سرویسهای خود داشته باشید.هرچند در بعضی از سناریوها نیازی به...
View Articleراه اندازی StimulSoft Report در ASP.NET MVC
یکی از ارکان لاینفک سیستمهای سازمانی در هر پلتفرمی، چه وب و چه دسکتاپ و ... گزارش گیری از اطلاعات موجود و جزو ساختار حیاتی آن است. از آنجا که حتی ممکن است این گزارشات در هر دوره نیاز به تغییرات داشته...
View Articleبدست آوردن نام کشور و مشخصات کامل آن از روی آدرس IP
سایتهای بسیاری هستند که سرویسهایی را برای بدست آوردن مشخصات کشور، از روی IPارائه میدهند؛ ولی اکثر آنها برای این سرویسی که ارائه میدهند هزینه دریافت میکنند. سایتی که من در این مقاله معرفی خواهم کرد...
View Articleتنظیمات تاریخ قمری در ویندوز
این قطعه کد را برای نمایش تاریخ امروز، به قمری درنظر بگیرید:using System; using System.Globalization; namespace ArabicDate { class Program { static void Main(string[] args) {...
View Articleالگوی طراحی Builder همراه با اصول Interface Segregation
الگوی طراحی builder، برای ساختن اشیاء بسیار مفید است؛ اما پروسه ساختن اشیاء آن بسیار پیچده هست و به صورت معمول، این پروسه شامل چندین قسمت میشود.در این مثال ما مشکلات ساختن شیء Person را مورد بررسی...
View Articleپیاده سازی گروه بندی ایمیلهای ارسالی یا message threading
اگر به ایمیلهای ارسالی از طرف GitHub دقت کرده باشید، کلاینتهای دریافت ایمیلها، تمام ایمیلهای مرتبط با یک Issue موجود را، در ذیل هم نمایش میدهند و بجای اینکه چند 10 ایمیل ارسالی را به نحوی جداگانه...
View Articleپروسیجرها و شنود پارامترها در SQL Server
در اس کیو ال سرور 2016، قابلیت غیر فعال نمودن parameter sniffingدر سطح بانک اطلاعاتی مهیا شده است. اما چرا؟ قبل از پاسخگویی به سؤال بالا، به یک سری مقدمات نیاز است:وقتی یک کوئری به اس کیو ال ارسال...
View Articleروش صحیح تست DateTime در NUnit و MSTest
وقتی ما تستهای Unit - Integration - UI را مینویسیم، به طور معمول پیش میآید که بخواهیم آبجکتی را نیز از نوع DateTime، اثبات کنیم (Assert.That). وقتی دو DateTime را با هم مقایسه میکنیم، معمولا این دو...
View Articleروشی برای مقایسهی مقادیر تمام خواص دو شیء در آزمونهای واحد
در زمان نوشتن تستهای مختلف (Unit - Integration - UI) گاهی اوقات پیش میآید که بخواهید تمامی خصوصیتهای یک شیء را تایید کنید. معمولا نوشتن اعتبارسنجی برای همه خصوصیتها و همین طور پیامهای استثناء برای...
View Articleایجاد حالتهای مختلف سایه با استفاده از CSS3
در CSS3 امکان ایجاد سایه توسط خصوصیت box-shadow ایجاد شدهاست که یکی از خصوصیتهای محبوب در بین برنامه نویسان وب میباشد. در ادامه طریقه ایجاد چند نمونه از آن را توضیح خواهیم داد. box-shadow به شما...
View ArticleSEO در AngularJS بدون نیاز به Server Side Rendering
همه ما میدانیم برای اینکه محتوای ما به وسیله Google و سایر موتورهای جستجو index شود باید این محتوا در سمت سرور ایجاد و به کلاینت ارسال شود. مدتی بود با مقالاتی مواجه میشدم که نیازی به این کار نیست و...
View Articleمقایسه سرعت نگاشت AutoMapper
قبل ازاین مقاله، درباره راه اندازی و استفاده از کتابخانه Automapper بحث شده ولی موردی که شاید کمتر به آن توجه شده سرعت این نگاشتمیباشد. در این مقاله با استفاده از نوشتن تست، این موضوع بررسی میشود.کلاس...
View Articleبررسی روش ارتقاء به NET Core 1.1.
نگارش پایدار NET Core 1.1. روز قبل منتشر شد. در ادامه نحوهی ارتقاء پروژههای نگارش 1.0 RTM را به این نگارش بررسی خواهیم کرد. دریافت نصاب NET Core 1.1. برای این منظور به آدرس...
View Articleپیاده سازی حذف منطقی در Entity framework
یکی از روشهایی که در اکثر پروژههای بزرگ استفاده میشود، بحث استفاده از حذف منطقی (soft delete) بجای حذف فیزیکی رکورد میباشد (اکثرا در برنامههایی که با بخش مالی (پول) در ارتباط هستند) و از آنجاییکه...
View Articleپروسیجرها و شنود پارامترها در SQL Server - قسمت دوم
در ادامه مطلب قبلی، آشنایی با شنود پارامترها در اس کیو ال سرور، جهت بهبود زمان پاسخگویی پروسیجرها یا کوئریهای پارامتری الزامی است. اس کیو ال سرور بوسیله ایجاد پلنهای اجرایی کامپایل شده، سعی در بهینه...
View Articleپروسیجرها و شنود پارامترها در SQL Server - قسمت سوم
در مطلب قبلیراجع به اثرات منفی شنود پارامترها، در صورت عدم توجه به آنها بیان شد و در این مطلب قصد داریم به راههای کاهش اثرات منفی و مقابله با آنها بپردازیم:نکته:راههای اشاره شده برای مقابله با شنود...
View Article