3 причини да чакаме .NET 9 

.NET 9 е версията на .NET ,която ще бъде официално готова през Ноември на .NET Conf. 

Но защо да се вълнуваме и да се интересуваме от нея, когато и .NET 8 работи достатъчно добре за нашето приложение и при това .NET 9 ще се поддържа само 18 месеца? 

.NET 9 идва с много подобрения и повече възможности , които са подробно описани в блога на Майкорософт, но тук ще споделя моите  3 причини: 

1. Performance или по-бързо работещо приложение.  

2. Намаляване рaзмера на приложението . 

Интересен начин да отбележим, кои фунцкионалности не се подържат в текущата инстанция на деплойното приложение и да намалим размера му е използването на: FeatureSwitchDefinitionAttribute   

C#

if (Feature.IsSupported) 
   Feature.Implementation(); 
 
public class Feature 

  [FeatureSwitchDefinition("Feature.IsSupported")] 
   internal static bool IsSupported =>AppContext.TryGetSwitch("Feature.IsSupported", out bool isEnabled) ? isEnabled : true; 
 
   internal static Implementation() => ...; 

 

За да се премахне кода, който не искаме да се съпортва е нужно да го отбележим и в настройките на проекта (proj файла):

<ItemGroup> 
 <RuntimeHostConfigurationOption Include="Feature.IsSupported" Value="false" Trim="true" /> 
</ItemGroup> 

А за какво ни е този атрибут? Защо просто не изтрием кода, който не е нужен?  

Използването на feature switch  е удобно, когато искаме да ограничим използването на даден фийчър примерно при: 

  • А/B тестове  
  • ограничение според правата на потребителите 
  • ограничение от deployment Конфигурацията. 

Повече за feature switch може да намерете тук: 

3. Разширяване възможностите на ML.NET с добавяне на нови токънайзери, които позволяват да обработваме текст по-точно: 

  • Добавена поддръжка на Tiktoken.  
  • Добавена е поддръжка на токенизатор за модела Llama.  
  • Добавен е токенизаторът CodeGen, който е съвместим с модели като codegen-350M-mono и phi-2.  
  • Добавени са претоварвания на EncodeToIds, които приемат екземпляри на Span<char> и ви позволяват да персонализирате нормализиране и претокенизиране. 
  •  Работи в тясно сътрудничество с общностите на DeepDev TokenizerLib и SharpToken, за да покрие сценарии, обхванати от тези библиотеки.  

What’s new in .NET 9 runtime | Microsoft Learn 

Leave a Reply

Your email address will not be published. Required fields are marked *