زبان Razor نیز در ASP.NET Core به همراه بهبودها و اضافات قابل توجهی است که در این قسمت تعدادی از آنها را مانند امکان ارث بری و تزریق وابستگیها، بررسی خواهیم کرد.
نحوهی سفارشی سازی کلاس پایهی تمام Viewهای برنامه و معرفی inherits@
در نگارشهای پیشین ASP.NET MVC، امکان تعویض کلاس پایهی Viewها، در فایل web.config واقع در پوشهی ریشهی Views وجود داشت. با حذف این فایل و ساده سازی و محول کردن مسئولیتهای آن به فایل ...
در بسیاری از پروژههای نرم افزاری ما ممکن است یک امکان (Feature) را برای بازهی زمانی خاصی بنا به درخواست مشتری یا ضوابط خودمان نیاز داشته باشیم و در زمان دیگری یا برای مشتری دیگری نیاز نداشته باشیم و باید قابلیت مورد نظر غیر فعال باشد. یا حتی ممکن است قابلیتی را به تازگی افزوده باشیم، ولی در زمان اجرا خطایی داشته باشد و مجبور باشیم فورا آن را از دسترش خارج کنیم. به این فرایند در اصلاح Feature Toggle میگویند که البته نامهای دیگری از ...
فرض کنید امروز یک API را برای استفاده عموم ارائه میدهید. آیا با یک breaking change در منابع شما که باعث تغییر در دادههای ورودی یا خروجی API شود، باید استفاده کنندگان این API در سیستمی که از آن استفاده کردهاند، تغییراتی را اعمال کنند یا خیر؟ جواب خیر میباشد؛ اصلیترین استفاده از API Versioning دقیقا برای این منظور است که بدون نگرانی از توسعههای بعدی، از ورژنهای قدیمی API بتوانیم استفاده کنیم. در این مقاله با روشهای مختلف ورژن ب ...
تا اینجا یک پروژهی خالی ASP.NET Core 1.0 را به مرحلهی فعال سازی ASP.NET MVC و تنظیمات مسیریابیهای اولیهی آن رساندهایم. مرحلهی بعد، افزودن Viewها، نمایش اطلاعاتی به کاربران و دریافت اطلاعات از آنها است و همانطور که پیشتر نیز عنوان شد، برای «ارتقاء» نیاز است « 15 مورد » ابتدایی مطالب ASP.NET MVC سایت را پیش از ادامهی این سری مطالعه کنید.
معرفی فایل جدید ViewImports
پروژهی خالی ASP.NET Core 1.0 ف ...
در صورت استفاده از TypeScript ، قطعا با moduleها و هدف استفادهی از آنها آشنایی دارید. در این مقاله میخواهیم با متداولترین روشهای بسته بندی آنها آشنا شده و به صورت عملیاتی آن را پیاده نماییم. اولین روش commonjs میباشد. از آنجایی که این روش بیشتر برای برنامههای خارج از مرورگر میباشد، به همین قدر معرفی آن بسنده میکنیم. اما دو روش مهم دیگری که در typeScript برای ماژولها اهمیت فراوانی دارند: 1) AMD یا Asynchronous Module Defi ...
موضوع این مقاله استفاده مستقیم از توابع و عملیات محاسباتی برای Binding در View میباشد که در پروژههای بزرگ که حجم المنتها در صفحه زیاد است عملکردی منفی در Performance دارد که قابل چشم پوشی نیست. برای اینکه این مورد ملموس باشد بنده مثالی را آماده کردهام که هدف آن بیشتر درک درست شما از این موضوع است. کد زیر را مشاهده کنید: <input type="text" ng-model="newItemTitle">
<button type="button" ng-click="add()">افزودن< ...
فعال سازی تنظیمات مسیریابی
یکی دیگر از تغییرات عمدهی ASP.NET Core با نگارشهای قبلی آن، نحوهی مدیریت مسیریابیهای سیستم است. در نگارشهای قبلی مبتنی بر HTTP Moduleها، مسیریابیها توسط یک HTTP Module مخصوص، با pipeline اصلی ASP.NET یکپارچه شدهاند و زمانیکه مسیر درخواستی با تنظیمات سیستم تطابق داشته باشد، پردازش کار به HTTP Handler مخصوص ASP.NET MVC منتقل میشود:
اما در ASP.NET Core مبتنی بر م ...
پیشنیازهای بحث (از قسمت 8 به بعد این سری)
اگر پیشتر سابقهی کار کردن با ASP.NET MVC را ندارید، نیاز است « 15 مورد » ابتدایی مطالب ASP.NET MVC سایت را پیش از ادامهی این سری مطالعه کنید؛ از این جهت که این سری از مطالب «ارتقاء» نام دارند و نه «بازنویسی مجدد». دراینجا بیشتر تفاوتها و روشهای تبدیل کدهای قدیمی، به جدید را بررسی خواهیم کرد؛ تا اینکه بخواهیم تمام مطالبی را که وجود دارند از صفر بازنویسی کنیم. فعال سازی ASP.NET ...
یکی دیگر از تغییرات ASP.NET Core با نگارشهای قبلی آن، تغییرات اساسی در مورد نحوهی کار با تنظیمات برنامه و فایلهای مرتبط با آنها است. در ASP.NET Core میتوانید:
- تنظیمات برنامه را از چندین منبع مختلف خوانده و آنها را یکی کنید.
- تنظیمات را بر اساس تنظیمات مختلف محیطی برنامه، بارگذاری کنید.
- امکان نگاشت اطلاعات خوانده شدهی از فایلهای کانفیگ به کلاسها پیش بینی شدهاست.
- امکان بارگذاری ...
قطعا به عنوان برنامه نویس JavaScript کم و بیش با ecmaScript 6 آشنایی دارید. با وجود ویژگیهای منحصر به فردی که دارد شاید تنها دلیلی که برخی از برنامه نویسان هنوز تصمیم به عدم استفاده از این زبان را دارند، مرورگرهایی میباشند که هنوز از es6 پشتیبانی نمیکنند: es6 compatibility table اما راهکاری مناسب، برای اینکه بتوان هم از es6 استفاده کرد و هم کاربران را مجبور به استفادهی از مرورگرهای مدرن نکنیم نیز وجود دارد:به صورت مستقیم میتوا ...