اشتراکها
8.Visual Studio 2017 15.9 منتشر شد
These are the customer-reported issues addressed in 15.9.8:
- ModelBus-enabled text transformation fails on 15.8.
- SSDT: Fix to improve performance of loading solutions with multiple projects.
اشتراکها
سری ویدیوهای NET Conf 2023.
.NET Conf 2023
.NET Conf 2023 is the largest .NET event hosted online! Co-organized by the .NET community and Microsoft and backed by the support of the .NET Foundation and ecosystem partners, it's your ticket to learning and finding inspiration for your upcoming software projects. Dive into the world of web, mobile, cloud, desktop, gaming, IoT, AI, and beyond, all powered by .NET. Whether you're just starting your coding journey or you're a seasoned pro, these sessions are tailored for everyone. Be prepared for presentations covering the exciting new features of .NET 8, C# 12, Azure, Visual Studio, and so much more. Tune in to learn about the fastest release of .NET yet!
- VS is more responsive when running Git operations.
- Debugging large solutions with
/debug:fastlink
PDBs is more robust. Changes in the PDB/DIA lead to reduced latency and a 30% reduction in heap memory consumption in the VS debugger that used to cause crashes. - C++ compiler bugfixes:
- Fix for the SSA optimizer incorrectly sinking a function call past a store to a variable used in a
__finally
handler. - Fix for the SSA optimizer sometimes incorrectly analyzing memory loads from locations with negative offsets.
- Fix for the optimizer incorrectly transforming a pre-incremented loop into a post-incremented loop. This was found compiling the ICU project.
- Fix for the SSA optimizer incorrectly sinking a function call past a store to a variable used in a
- Microsoft bumped up the Java™ Development Kit 8 to Update 172 (JDK version 8u172).
ارتقاء به ASP.NET Core 2.1 - معرفی درجهی سازگاری فریم ورک
پس از نصب یک SDK جدید، بهترین روش یافتن تغییرات انجام شده، ایجاد یک پوشهی خالی جدید، باز کردن خط فرمان در این پوشه و سپس صدور دستور dotnet new mvc است. به این ترتیب بدون داشتن هیچ نوع IDE خاصی میتوانید یک پروژهی جدید مبتنی بر آن SDK را ایجاد کنید.
در قالب پیشفرض نگارش 2.1، سطر فعالسازی Mvc به صورت زیر تغییر کردهاست:
در اینجا CompatibilityVersion یک چنین تعریفی را دارد:
برای مثال تنظیم آن به Version_2_0، صرفنظر از نگارش جاری Mvc مورد استفاده، رفتار نگارش 2.0 را برای برنامه تنظیم میکند که البته هدف اصلی آنها در حقیقت چنین چیزی است:
و فلسفهی آن نیز به این صورت است: چگونه یک فریمورک را بهبود ببخشیم، بدون اینکه ارتقاء به نگارشهای جدید را سختتر کنیم؟
برای مثال در نگارش 2.1، اگر بدنهی درخواست رسیده خالی باشد، خطایی را به ModelState اضافه میکند که پیشتر اینگونه نبودهاست و یا ترکیب سیاستهای امنیتی پیش از نگارش 2.1، آنطور که تصور میشده، کار نمیکردهاست و این باگ اکنون اصلاح شدهاست. اگر پس از به روز رسانی به نگارش 2.1، این دو تغییر، برنامهی شما را به هم میریزند، یا میتوانید CompatibilityVersion را به Version_2_0 تعیین کنید (لغو کلی تغییرات رفتاری نگارش 2.1) و یا Version_2_1 را انتخاب کنید و توسط متد AddMvcOptions، گزینههای مختلف این تغییرات انجام شده را به دلخواه انتخاب کنید.
نکتهی مهم: این رفتارها تا ابد نگهداری نخواهند شد. یعنی با ارائهی نگارش 3.0 و انتخاب آن، دیگر دسترسی به رفتارهای قدیمی قابل انتخاب برای نگارش 2.1 نخواهید داشت. به همین جهت در این بین، فرصت بررسی، انطباق و به روز رسانی برنامهی خود را خواهید داشت.
پس از نصب یک SDK جدید، بهترین روش یافتن تغییرات انجام شده، ایجاد یک پوشهی خالی جدید، باز کردن خط فرمان در این پوشه و سپس صدور دستور dotnet new mvc است. به این ترتیب بدون داشتن هیچ نوع IDE خاصی میتوانید یک پروژهی جدید مبتنی بر آن SDK را ایجاد کنید.
در قالب پیشفرض نگارش 2.1، سطر فعالسازی Mvc به صورت زیر تغییر کردهاست:
public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); }
public enum CompatibilityVersion { Version_2_0 = 0, Version_2_1 = 1, Latest = int.MaxValue }
services.AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Version_2_1) // Give me all of the 2.1 behaviors .AddMvcOptions(options => { options.AllowCombiningAuthorizeFilters = false; // don't combine authorize filters (keep 2.0 behavior) options.AllowEmptyInputInBodyModelBinding = false; // shouldn't treat empty input as valid. });
برای مثال در نگارش 2.1، اگر بدنهی درخواست رسیده خالی باشد، خطایی را به ModelState اضافه میکند که پیشتر اینگونه نبودهاست و یا ترکیب سیاستهای امنیتی پیش از نگارش 2.1، آنطور که تصور میشده، کار نمیکردهاست و این باگ اکنون اصلاح شدهاست. اگر پس از به روز رسانی به نگارش 2.1، این دو تغییر، برنامهی شما را به هم میریزند، یا میتوانید CompatibilityVersion را به Version_2_0 تعیین کنید (لغو کلی تغییرات رفتاری نگارش 2.1) و یا Version_2_1 را انتخاب کنید و توسط متد AddMvcOptions، گزینههای مختلف این تغییرات انجام شده را به دلخواه انتخاب کنید.
نکتهی مهم: این رفتارها تا ابد نگهداری نخواهند شد. یعنی با ارائهی نگارش 3.0 و انتخاب آن، دیگر دسترسی به رفتارهای قدیمی قابل انتخاب برای نگارش 2.1 نخواهید داشت. به همین جهت در این بین، فرصت بررسی، انطباق و به روز رسانی برنامهی خود را خواهید داشت.
اشتراکها