دوران رنسانس NET.
First, the decoupling of .NET from Windows
Second, the newfound focus on CLR performance
Third, moving .NET’s tooling to a cross-platform model
Fourth, the .NET user base is embracing the OSS ecosystem as a whole
Fifth, in general the direction on .NET development is pushing users further down into the details of the stack
Sixth, Microsoft’s platform work being done out in the open
C# 6 - String Interpolation
در C# 11، متن درون {} یک عبارت string interpolation، میتواند در طی چند سطر نیز تعریف شود و متن بین {} به صورت یک عبارت #C تفسیر میشود. در اینجا هر عبارت معتبر #C ای را میتوان بکار برد. در این حالت تعریف عبارات LINQ و pattern matching switch expressions سادهتر میشوند. برای مثال:
namespace CS11Tests; public static class NewLinesStringInterpolations { public static void Test() { var month = 8; var season = $"The season is {month switch { >= 1 and <= 3 => "spring", >= 4 and <= 6 => "summer", >= 7 and <= 9 => "autumn", 10 or 11 or 12 => "winter", _ => "Wrong month number", }}."; Console.WriteLine(season); int[] numbers = { 1, 2, 3, 4, 5, 6 }; var message = $"The reversed even values of {nameof(numbers)} are {string.Join(", ", numbers.Where(n => n % 2 == 0).Reverse())}."; Console.WriteLine(message); } }
- Code::Blocks 10.05 – محیط برنامه نویسی – برنامه ها | www.barnameha.com
- GitaCalendar 1.3.0.2 – گدجت تقویم خورشیدی – برنامه ها | www.barnameha.com
- الف - دلایل روی آوردن ایرانی ها به عضویت در فیس بوک | www.alef.ir
- امکان ایجاد Page های تجاری و شخصی در گوگل پلاس فراهم شد | www.persianweblog.com
- پایگاه خبری وبسایتهای ایران | اینترنت جدا اینترانت جدا | www.webna.ir
- خواندن تصاویر از بانک اطلاعاتی | www.yazdinezhad.com
- وبلاگ رادمان » شیاطین دیجیتال | weblog.radmanitd.com
- Netduino Controlled LED Cube | Coding4Fun Articles | Channel 9 | channel9.msdn.com
- آشنایی با Autos window | blogs.msdn.com
- افزونه Web Essentials | www.hanselman.com
- به دست آوردن آخرین رکورد بازبینی شده در دیتابیس توسط Linq | mojtabasahraei.blogfa.com
- تو یک برنامه نویسی، پس چرا برای شخص دیگری کار میکنی؟! | www.intermittentintelligence.com
- چگونه تشخیص دهیم که برنامهی دات نت ما قابل انتقال به لینوکس هست؟ | mono-framework.com
- Custom tasks with default contextType via tasks.vs.json are broken in Open Folder.
- No snapshot created for C++ native code in Memory Usage tool in the Diagnostic Tools window while debugging.
- Crash in VS 16.1.0 when pressing the link "search online".
- Fixed the issue where sometimes certain features (i.e. Find All References) in LiveShare guest session do not work.
- Fixed an issue where the devenv.exe process could hang around after shutdown of Visual Studio for up to 30 seconds.
معرفی AnalysisLevel در کامپایلر C# 9.0 و .NET 5.0 SDK
سالها است که تیم کامپایلر #C قصد داشتهاست تا اخطارهای بیشتری را به توسعه دهندگان نمایش دهد؛ اما چون ممکن بود در حالت تنظیم پروژه جهت تبدیل اخطارها به خطا، اینکار به عملی ناخوشایند تبدیل شود، آنرا انجام نداده بودند. با ارائهی NET 5.، گزینهی جدیدی به نام AnalysisLevel، به تنظیمات کامپایلر C# 9.0 اضافه شدهاست که توسط آن میتوان سطوح نمایش خطاها و اخطارهای ارائه شده را تنظیم کرد. حالت پیشفرض آن برای پروژههای مبتنی بر net5.0، به عدد 5 تنظیم شدهاست و حتی این مورد را برای سایر SDKها نیز میتوان تنظیم کرد:
Target Framework Default for AnalysisLevel net5.0 5 netcoreapp3.1 or lower 4 netstandard2.1 or lower 4 .NET Framework 4.8 or lower 4
البته اگر از نگارشهای کمتر از net5.0 استفاده میکنید نیز میتوانید یک سطر AnalysisLevel زیر را به صورت دستی به فایل csproj خود اضافه کنید تا از اخطارهای بیشتری آگاه شوید:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <!-- get more advanced warnings for this project --> <AnalysisLevel>5</AnalysisLevel> </PropertyGroup> </Project>
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <!-- be automatically updated to the newest stable level --> <AnalysisLevel>latest</AnalysisLevel> </PropertyGroup> </Project>
<AnalysisLevel>preview</AnalysisLevel>
<!-- I am just fine thanks --> <AnalysisLevel>none</AnalysisLevel>
معرفی AnalysisMode در کامپایلر C# 9.0 و NET 5.0 SDK.
از زمان ارائهی NET 5.0 RC2.، گزینهی جدید دیگری به نام AnalysisMode نیز به تنظیمات کامپایلر C# 9.0 اضافه شدهاست:
<PropertyGroup> <AnalysisMode>AllEnabledByDefault</AnalysisMode> </PropertyGroup>
- Default: در این حالت تعداد کمی از گزینههای کنترل کیفیت فعال هستند.
- AllEnabledByDefault: شدیدترین حالت ممکن؛ با انتخاب آن تمام گزینههای تعریف شده به صورت اخطارهای کامپایلر ظاهر میشوند.
- AllDisabledByDefault: جهت غیرفعال کردن این گزینه.
نکته 1: اگر میخواهید این اخطارها به صورت خطاهای کامپایلر ظاهر شوند، گزینهی CodeAnalysisTreatWarningsAsErrors را به true تنظیم کنید:
<PropertyGroup> <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors> </PropertyGroup>
نکته 2: آنالیز کدها در پروژههای مبتنی بر NET 5.0 SDK. به صورت خودکار فعال است. اگر میخواهید آنها را در نگارشهای پیشین NET Core. هم فعال کنید، خاصیت EnableNETAnalyzers را به true تنظیم نمائید:
<PropertyGroup> <EnableNETAnalyzers>true</EnableNETAnalyzers> </PropertyGroup>
امکان بررسی استایل کد نویسی در کامپایلر C# 9.0 و NET 5.0 SDK.
گزینهی امکان بررسی استایل کدنویسی در کامپایلر C# 9.0، هنوز در مرحلهی آزمایشی به سر میبرد. به همین جهت به صورت پیشفرض غیرفعال است. اگر میخواهید آنرا فعال کنید، روش آن به صورت زیر است که پس از آن، مشکلات موجود به صورت اخطارهایی ظاهر خواهند شد:
<PropertyGroup> <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild> </PropertyGroup>
روش اعمال سراسری تنظیمات کامپایلر به تمام پروژههای یک Solution
اگر Solution شما از چندین زیر پروژه تشکیل شدهاست، یا میتوانید تنظیمات یاد شده را یکی یکی به هر کدام اضافه کنید و یا یک فایل مخصوص Directory.Packages.props را در بالاترین پوشهی Solution خود ایجاد کرده و آنرا به صورت زیر تکمیل نمائید:
<Project> <PropertyGroup> <AnalysisLevel>latest</AnalysisLevel> <AnalysisMode>AllEnabledByDefault</AnalysisMode> <CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors> <EnableNETAnalyzers>true</EnableNETAnalyzers> <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild> </PropertyGroup> </Project>
لیستی از C# Source Generators
C# Source Generators
A list of C# Source Generators (not necessarily awesome), because I haven't found a good list yet.
C# Source Generators is a Roslyn compiler feature introduced in C#9/.NET 5. It lets C# developers inspect user code and generate new C# source files that can be added to a compilation.
Today, we are releasing the .NET June 2021 Updates. These updates contains reliability and security improvements. See the individual release notes for details on updated packages.
You can download 5.0.7 , 3.1.16 versions for Windows, macOS, and Linux, for x86, x64, Arm32, and Arm64.