بازسازی کد: Encapsulate collection - ساده و خیلی مهم
زمانیکه متدی یک لیست (collection) را بر میگرداند، بهتر است این لیست، نسخهای فقط خواندنی باشد. برای توضیح بیشتر این موضوع میتوان به کلاس زیر و نحوهی بازسازی آن رجوع کرد. در کلاس Person فرضی، متدی...
View Articleتوسعه برنامههای Cross Platform با Xamarin Forms & Bit Framework - قسمت دهم
در قسمت قبلی، به Bindingها پرداختیم و در این قسمت قصد بررسی Triggers و موارد پیشرفتهتر در Bindings را داریم. در مثالهای قسمت قبل علاوه بر Bind کردن View به View Model، مثالی را داشتیم که در آن View...
View Articleتوسعه برنامههای Cross Platform با Xamarin Forms & Bit Framework - قسمت یازدهم
در این قسمت قصد بررسی کامپوننتهای فوق العادهی Syncfusion را داریم. احتمالا Syncfusion را با کتابهای Succinctly Series آن می شناسید. این شرکت برای Xamarin Forms نزدیک به 130کامپوننت، شامل موارد کار...
View Articleبازسازی کد: جایگزینی نوعهای دادههای یک کلاس با زیر کلاسها
یک پیاده سازی از کلاس، میتواند به طور ضمنی شامل دو یا چند نوع (Type) باشد. یکی از سادهترین راههای پیاده سازی این حالت، استفاده از فیلدهایی برای نگهداری نوع اصلی دادهی کلاس است که اصطلاحا Type code...
View Articleاهمیت ترتیب مقدار دهی فیلدهای استاتیک در زبان #C
فیلدهای استاتیکی که در سطح یک کلاس تعریف میشوند، برای نگهداری دادههایی به کار میروند که بین همهی اشیاء ساخته شدهی از آن کلاس مشترک هستند. لذا برای دستیابی به آنها، نیاز به ساختن شیءای از آن کلاس...
View Articleتوسعه برنامههای Cross Platform با Xamarin Forms & Bit Framework - قسمت دوازدهم
در این قسمت قصد داریم به بررسی چند زبانه سازی برنامهها بپردازیم. برای چند زبانه کردن یک برنامه باید حداقل به موارد زیر توجه شود:1- بحث Right to left و Left to right در صورتیکه زبان هایی که قصد...
View Articleرفع مشکل برگشت خوردن ایمیلها توسط Gmail
چند روزی بود که ایمیلهای سایت رد نمیشدند و تمام آنهایی که متعلق به جیمیل بودند، برگشت میخورند. در لاگهای سرور، اطلاعات خاصی مشاهده نشد. به همین جهت logging مخصوص SMTP Server فعال شد:پس از یک روز،...
View Articleتوسعه برنامههای Cross Platform با Xamarin Forms & Bit Framework - قسمت سیزدهم
در این قسمت قصد داریم به بررسی نحوهی بهبود Performance در پروژههای Xamarin Forms نگاهی بیاندازیم. صد البته امکان پوشش دادن تمامی نکات وجود ندارد و در این قسمت سعی بر پوشش دادن مهمترین آنها را...
View Articleالگوی طراحی Null Object
هنگامیکه درحال طراحی کلاسهایی هستیم که وابستگیهایی دارند، ممکن است با شرایطی مواجه شویم که به این وابستگیها نیاز نباشد و یا به رفتار عادی بعضی از وابستگیها نیاز نداشته باشیم. شاید راهی که در این...
View Articleروش فعالسازی SSL بر روی IIS SMTP Server
پس از انجام «تنظیمات امنیتی SMTP Server متعلق به IIS جهت قرارگیری بر روی اینترنت» و همچنین پیاده سازی «مراحل تنظیم Let's Encrypt در IIS»، یکی دیگر از کاربردهای مجوز SSL دریافتی، رمزنگاری تبادل اطلاعات...
View Articleمهارتهای تزریق وابستگیها در برنامههای NET Core. - قسمت اول - تزریق...
پیشتر با مقدمات تزریق وابستگیها در برنامههای ASP.NET Core آشنا شدهایم: - مقدمهای بر تزریق وابستگیها درASP.NET Core - ارتقاء به ASP.NET Core 1.0 - قسمت 6 - سرویسها و تزریق وابستگیها در ادامه در...
View Articleتوسعه برنامههای Cross Platform با Xamarin Forms & Bit Framework - قسمت چهاردهم
در این قسمت قصد داریم به بررسی نحوهی مدیریت خطاها و لاگ کردن آنها بپردازیم. همچنین در ادامه Analytics را در برنامه فعال میکنیم تا اطلاعاتی از دستگاههای کاربران و ... را به دست بیاوریم (اگر آخرین...
View Articleمهارتهای تزریق وابستگیها در برنامههای NET Core. - قسمت دوم - الگوی...
در قسمت قبلبرای دریافت وهلهای از سرویس TestService، به صورت ()<serviceProvider.GetService<ITestService عمل کردیم. این روش در اصل الگوی Service Locator نام دارد که جزئیات بیشتری از آنرا در این...
View Articleمهارتهای تزریق وابستگیها در برنامههای NET Core. - قسمت سوم - رهاسازی...
یکی از پرکاربردترین اینترفیسهای NET.، اینترفیس IDisposable است. عموما کلاسهایی که ارجاعی را به منابع غیر مدیریت شده مانند فایلها و سوکتها داشته باشند، این اینترفیس را پیاده سازی میکنند. garbage...
View Articleمهارتهای تزریق وابستگیها در برنامههای NET Core. - قسمت چهارم - پرهیز از...
الگوی Service locator را در قسمت دومبررسی کردیم. همانطور که عنوان شد، بهتر است تا جائیکه امکان دارد از بکارگیری آن به علت ضدالگو بودنپرهیز کرد. در ادامه قسمتهای مختلف یک برنامهی ASP.NET Core را که...
View Articleمهارتهای تزریق وابستگیها در برنامههای NET Core. - قسمت پنجم - استفاده از...
همانطور که در قسمت قبلنیز بررسی کردیم، ASP.NET Core امکان تزریق وابستگیهای متداول را در اکثر قسمتهای آن مانند کنترلرها، میانافزارها و غیره، میسر و پیش بینی کردهاست؛ اما همیشه و در تمام مکانهای یک...
View Articleمهارتهای تزریق وابستگیها در برنامههای NET Core. - قسمت ششم - دخالت در...
روش متداول کار با تزریق وابستگیهای برنامههای مبتنی بر NET Core.، عموما با ثبت و معرفی یک سرویس به صورت زیر، توسط متدهای AddTransient، AddSingleton و AddScoped است:public class Startup { public void...
View ArticleMIME Sniffing و استاندارد OWASP
یکی از نکات امنیتی که استاندارد Owasp بررسی مینماید هدر X-Content-Type-Optionsاست که جهت جلوگیری از حملات از طریق فایلهای نامرتبط میباشد. در این رخنه ممکن است فایلی که مرورگر دریافت میکند با آنچه که...
View Articleنصب و راه اندازی SQL Server بر روی لینوکس با استفاده از Docker
چند وقتی است مایکروسافت تعدادی از محصولات خود را به صورت سورس باز در اختیار برنامه نویسان قرار دادهاست. برای مثال شما میتوانید در لینوکس یا مک، از نسخهی net core. آن استفاده کنید. در این مقاله روش...
View Articleمهارتهای تزریق وابستگیها در برنامههای NET Core. - قسمت هفتم - کار با...
فرض کنید قرارداد IService را تدارک دیدهاید و بر اساس آن سرویسهای A و B را به سیستم تزریق وابستگیهای برنامههای NET Core. تزریق کردهاید (برای مثال در برنامه دو DbContext را تعریف کردهاید و یک...
View Article