Posted on 14. March 2024

.NET MAUI Community Toolkit 2023 Highlights

Основні моменти .NET MAUI Community Toolkit 2023

 

Коли 2023 рік вже позаду, поміркуймо про шлях проєкту .NET MAUI Community Toolkit і про те, що чекає на нас далі. Ця бібліотека з відкритим вихідним кодом слугує доповненням до .NET MAUI, пропонуючи розробникам багатий набір елементів керування, конвертерів та помічників, призначених для прискорення розробки додатків на платформі .NET MAUI. Орієнтуючись на інновації, керовані спільнотою, вона стала незамінним інструментом для розробників, які прагнуть вдосконалити свої додатки .NET MAUI.

Це був рік, коли

Наш репозиторій на GitHub перетворився на динамічний центр активності, залучивши понад 40 учасників, які колективно просувають проєкт вперед. Ваші відгуки, пропозиції та внески коду допомогли зробити цей інструментарій більш потужним та ефективним ресурсом для розробників .NET MAUI.

У цифрах

 

  • 9 випусків: Відзначаючи постійний прогрес, ми випустили 9 значних випусків, кожен з яких додав більше цінності та можливостей до інструментарію.

  • 260 комітів: З кожним комітом ми покращували та розширювали функціональність інструментарію.

  • Змінено 521 файл: Відображаючи наш прогрес, ми оновили, покращили та оптимізували 521 файл, щоб забезпечити найвищі стандарти якості.

  • 41 дописувач: Велике вітання нашим активним членам спільноти! Ваші різноманітні погляди та досвід були життєво важливими для нашого спільного успіху.

  • Найкращі 5 комітерів: Особлива подяка brminnick, VladislavAntonyuk, jfversluis, pictos та cat0363. Ваша відданість та внесок були зразковими.

  • 4190 репозиторій залежать від нас: Понад 4190 репозиторіїв покладаються на CommunityToolkit.Maui, що є свідченням нашого впливу, який дедалі зростає.

  • 679 767 завантажень з NuGet: Неймовірна кількість завантажень цього року свідчить про широке розповсюдження та довіру до нашого інструментарію.

Важливі доповнення

Окрім величезної кількості виправлень, також додано суттєві можливості протягом 2023 року, ось короткий огляд ключових нових функцій, які ми інтегрували:

image showing the feature list and components of .NET MAUI Community Toolkit v7.0.1

  • Media Element: Пориньте у світ мультимедіа з нашим новим елементом керування Media Element. Незалежно від того, чи ви транслюєте потокове відео з Інтернету, чи використовуєте вбудовані ресурси, чи отримуєте доступ до локальних файлів, цей елемент керування безперешкодно відтворює відео- та аудіоконтент у ваших додатках .NET MAUI.

.NET MAUI Toolkit media element on phone

  • Інтеграція з картами Windows: Наша інтеграція з картами дозволяє використовувати можливості карт .NET MAUI безпосередньо на платформі Windows, покращуючи сервіси на основі визначення місцеперебування у ваших додатках.

  • SpeechToText і розпізнавання мовлення: Розкрийте потенціал голосу за допомогою наших функцій SpeechToText і розпізнавання мовлення. Взаємодійте та керуйте своїми програмами за допомогою усної мови, відкриваючи новий вимір доступності та зручності. Дізнайтеся більше про це в цій статті в блозі.

Відео

 

  • FolderPicker та FileSaver: Виведіть керування файлами на новий рівень. FolderPicker дозволяє користувачам легко переміщатися і вибирати каталоги, а FileSaver надає свободу вибору теки призначення і дозволяє легко зберігати файли.

Відео

 

  • Розширення клавіатури: Отримайте контроль над екранною клавіатурою. Перевіряйте її видимість, приховуйте її або викликайте за бажанням, забезпечуючи більш плавну та інтуїтивно зрозумілу роботу з клавіатурою у ваших додатках .NET MAUI.

  • Badge API: Представляємо Badge API - найпростіше рішення для відображення кількості сповіщень на іконках ваших додатків. Тримайте користувачів в курсі подій та інформуйте їх лише одним переглядом.

  • API для тематизації додатків: Ми розширили можливості стандартного інтерфейсу .NET MAUI, щоб полегшити вам налаштування та тематизацію ваших додатків, створюючи цікавіший та більш адаптований до бренду користувацький інтерфейс.

  • Підтримка .NET 8: Зважаючи на майбутнє, наша команда з гордістю підтримує .NET 8, гарантуючи, що ваші додатки отримають користь від останніх удосконалень, покращень безпеки та продуктивності, які пропонує фреймворк.

Але це ще не все

Інструментарій .NET MAUI Community Toolkit виходить за рамки основного пакета NuGet, ми також пишаємося нашою документацією, розміщеною в нашому репозиторії Docs, і універсальним пакетом .NET MAUI Markup для розробників, які схильні до підходу, що не використовує XAML. Обидва ці  компоненти інструментарію отримують постійні оновлення, про що свідчать:

Репозитарій документів:

  • Комітів: 192

  • Дописувачі: 25

  • Топ-5 дописувачів: bijington, jfversluis, brminnick, Sergio0694, VladislavAntonyuk

Репозиторій розмітки MAUI:

  • Зафіксовано: 104

  • Дописувачі: 9

  • Топ-5 дописувачів: brminnick, Youssef1313, bijington, VladislavAntonyuk, JoonghyunCho

Окрім цього, інструментарій .NET MAUI Community Toolkit з гордістю святкує визначну подію - понад 1 мільйон завантажень, що свідчить про його надійність, міцність та довіру, яку він завоював у спільноті розробників.

nuget download trend

Цей успіх підкреслює роль інструментарію як важливого активу в екосистемі .NET MAUI, що постійно розвивається, щоб дати розробникам можливість створювати неймовірні кросплатформні додатки.




Posted on 9. July 2023

У .NET Community Toolkit 8.2.1 з’явилися покращені генератори вихідного коду та засоби виправлення коду!

 

Ми раді повідомити про офіційний запуск версії 8.2.1 .NET Community Toolkit! Ця нова версія містить багато покращень QoL у всіх бібліотеках, ще кілька оптимізацій продуктивності для генераторів джерел MVVM Toolkit, нові засоби виправлення коду та покращену діагностику тощо!


.NET Community Toolkit 8.2.1

Ми хочемо висловити особливу подяку всім членам спільноти, які надали цінні відгуки, щоб допомогти визначити пріоритетність завдань для цього нового випуску. Ваші внески та звіти про помилки допомагають нам робити .NET Community Toolkit ще кращим із кожним випуском — ви найкращі!

Що входить до складу .NET Community Toolkit?

.NET Community Toolkit містить такі бібліотеки:

CommunityToolkit.Common

CommunityToolkit.Mvvm(він же «Microsoft MVVM Toolkit»)

CommunityToolkit.Diagnostics

CommunityToolkit.HighPerformance

Щоб дізнатися більше про історію .NET Community Toolkit, ось посилання на нашу попередню публікацію оголошення про 8.0.0 .

Ось розбивка основних змін, які включені в цей новий випуск 8.2.1 .NET Community Toolkit. Цей випуск здебільшого зосереджений на поступових покращеннях: немає нових функцій, але є багато налаштувань і виправлень!

Новий аналізатор і коректор коду для[RelayCommand] 

Атрибут [RelayCommand] (див. документацію тут) може автоматично обробляти асинхронні методи, і в цьому випадку він використовуватиме інтерфейси IAsyncRelayCommand (разом із відповідним типом асинхронної команди). Однак розробникам було нелегко виявити цю функцію, і багато хто натомість створював свої командні методи. Це також означало, що вони не могли використовувати всю додаткову функціональність, надану асинхронними командами (наприклад, звітування про прогрес і контроль паралельності).

Щоб допомогти з цим, версія 8.2.1 MVVM Toolkit постачається з абсолютно новим аналізатором, який випромінює діагностику для методів async void , позначених [RelayCommand]. А щоб зробити роботу ще простішою, є також новий засіб виправлення коду, який автоматично перероблятиме код за вас — просто клацніть піктограму лампочки, і дозвольте Roslyn зробити роботу за вас!

Виправлення коду аналізатора MVVM Toolkit

 

Тут ви можете побачити нову згенеровану діагностику, яка відображається для методу async void, пов’язаного з командою, і відповідного інтерфейсу коректора коду у Visual Studio з попереднім переглядом змін. Він також автоматично додасть необхідний оператор using у верхній частині вашого файлу, якщо Task ще немає в області видимості. І так само, як і інші засоби виправлення коду в MVVM Toolkit, ви також можете легко застосувати його до всіх місць у всьому вашому проєкті чи рішенні одним клацанням миші!

Інші зміни та вдосконалення

Виправлено аварійну ситуацію при індексації розрізаного екземпляра Memory2D<T> (#675): у деяких випадках могло бути викликано порушення доступу під час індексування елементів після нарізання екземпляра Memory2D<T>. Тепер це виправлено, дякуємо mahalex за повідомлення про це!

– Виправлено атрибути пересилання з від'ємними значеннями переліку (#681): використання елементів переліку з від’ємними значеннями більше не спричиняє проблеми з генераторами MVVM Toolkit для згенерованих спостережуваних властивостей. Дякуємо n-coelho-cerinnov за повідомлення про це!

Виправлено збій генератора під час пересилання недійсних атрибутів (#683): спроба переслати атрибути, на які є неправильні посилання, тепер завершуватиметься помилкою та створюватиме зрозуміле повідомлення про помилку.

Виправлення генератора  ObservableValidator для виявлення успадкованих властивостей (#616): генератор для перевірки властивостей більше не буде випадково ігнорувати властивості базових типів для цільової моделі перегляду. Дякуємо dgellow за повідомлення про це!

Додано попередження під час використання packages.config для MVVM Toolkit (#695): генератори набору інструментів MVVM працюють лише під час використання <PackageReference>(це відоме обмеження SDK, і воно є задумом), але раніше не було чітких вказівок на те, чому генератори не працювали для користувачів, які намагаються використовувати їх із проекту за допомогою packages.config. MVVM Toolkit тепер постачається з покращеною діагностикою, яка створить корисне попереджувальне повідомлення в цьому випадку. Дякуємо, smaugbend , що повідомили про це!

Частіше перевіряйте скасування в генераторах (#703): це має призвести до невеликих покращень у чутливості IDE під час використання MVVM Toolkit.

 

Видалення непотрібного тимчасового розподілу масиву (#719): ще одна невелика оптимізація пам’яті для генераторів джерел MVVM Toolkit.

Обробка поля [ObservableProperty] з ідентифікаторами ключових слів (#710): генератор більше не створюватиме недійсний код у випадку, якщо поля анотовані [ObservableProperty] використовують ідентифікатори ключових слів, які були екрановані у джерелі (наприклад, @event). Дякуємо Get0457 за повідомлення про це!

 

Примітка: існує відома проблема з джерельними генераторами в старіших версіях Roslyn, через яку IntelliSense іноді може не працювати належним чином для згенерованих учасників (див. #493 і пов’язану проблему відстеження Roslyn). Це нарешті виправлено у VS 2022 17.7, який зараз знаходиться в прев’ю. Якщо ви бачите будь-які проблеми під час використання MVVM Toolkit, обов’язково спробуйте останню версію VS 17.7 Preview!

Інші зміни

Ви можете переглянути повний журнал змін для цього випуску на сторінці випуску GitHub .

Почніть сьогодні!

Ви можете знайти весь вихідний код у нашому репо GitHub , деякі рукописні документи на MS learn і повні посилання на API на веб-сайті браузера .NET API. Якщо ви хочете внести свій внесок, не соромтеся відкривати питання або зв’язуватися з нами, щоб повідомити про свій досвід! Щоб стежити за розмовою в Twitter, використовуйте хештег #CommunityToolkit. Усі ваші відгуки дуже допомагають у формуванні напрямків цих бібліотек, тож поділіться ними!

 

Щасливого кодування!

Source




Posted on 30. April 2023

Анонсуємо .NET Community Toolkit 8.2! Покращена швидкість роботи генераторів, засоби для усунення помилок у коді, збільшення продуктивності та багато іншого!

 

 

Ми раді повідомити про офіційний запуск версії 8.2 інструментарію .NET Community Toolkit! Ця нова версія містить покращення швидкості роботи як під час виконання, так і в генераторах вихідного коду MVVM Toolkit, нові засоби для усунення помилок, що підвищують вашу результативність, нові функції на основі запитів користувачів та багато іншого!

.NET Community Toolkit 8.1.0 Preview 1

Що входить до інструментарію .NET Community Toolkit? 👀

Інструментарій .NET Community Toolkit містить наступні бібліотеки:

  • CommunityToolkit.Common

  • CommunityToolkit.Mvvm (також відомий як "Microsoft MVVM Toolkit")

  • CommunityToolkit.Diagnostics

  • CommunityToolkit.HighPerformance

Ці компоненти також широко використовуються в деяких програмах для роботи з вхідними повідомленнями, які постачаються з Windows, зокрема у Microsoft Store і програма "Photos"! 🚀

Для більш детальної інформації про історію розвитку інструментарію .NET Community Toolkit, ось посилання на попередній пост з анонсом версії 8.0.0.

 

Перелік основних змін, які включені в нову версію 8.2 інструментарію .NET Community Toolkit.

Користувацькі атрибути для [RelayCommand] 🤖

Продовжуючи роботу, виконану у випуску 8.1.0, і як було запропоновано на GitHub, новий випуск 8.2.0 набору інструментів MVVM Toolkit містить підтримку користувацьких атрибутів при використанні [RelayCommand]. Знову ж таки, було використано нативне field: і property: C#, щоб вказати цільові значення користувацьких атрибутів. Завдяки цьому ви тепер маєте повний контроль над атрибутами для всіх згенерованих членів, коли використовуєте [RelayCommand] для створення команди MVVM.

Наприклад, це особливо корисно, коли ви використовуєте модель подання, яка має підтримувати серіалізацію JSON, і вам потрібно явно ігнорувати згенеровану властивість. Ви можете використовувати підтримку нового  field: і property: наступним чином:

Після цього будуть створені наступні елементи:

Як і слід було очікувати, згенерована властивість DoWorkCommand має вказаний атрибут над нею! І, звичайно ж, підтримуються атрибути з будь-якою кількістю конструкторів та іменованих параметрів. Ви також можете використовувати просто field:, property:  поле:або будь-яку їх комбінацію 🙌

Ви можете знайти всі документи про нові генератори вихідних кодів тут, а якщо ви віддаєте перевагу відеоверсії, Джеймс Монтемагно також зробив кілька відео про них, наприклад, це.

Нові змінені перехоплення [ObservableProperty] ⚗️

Відносно поширеним сценарієм у MVVM є наявність деякої властивості "вибраний елемент", яка представляє, наприклад, поточного вибраного користувача або вкладену модель представлення. Коли значення цієї властивості змінюється, нерідко доводиться вносити певні корективи до старого та нового екземплярів. Наприклад, встановити якусь "вибрану" властивість, або підписатися на подію, і так далі.

Раніше це був сценарій, де використання [ObservableProperty] не було ідеальним, оскільки воно не мало необхідної інфраструктури, щоб легко впровадити таку логіку для виконання необхідних змін стану для старих і нових значень, що встановлюються. Щоб виправити це, починаючи з версії 8.2 MVVM Toolkit, для всіх полів [ObservableProperty] генеруються два нові змінені перехоплення властивостей.

 

Наприклад, розглянемо наступний код:

Тепер буде згенеровано такий код:

Зверніть увагу на два нові методи "OnPropertyNameChanging" і "Changed", що генеруються, тепер вони також приймають попереднє значення. Ці два методи є простими у використанні перехопленнями для додавання коду, який спрацьовує при кожній події зміни властивості й може змінювати як старе, так і нове значення, що встановлюється. Наприклад, ви можете використовувати їх наступним чином:

І це все, що вам потрібно! Вибрана модель перегляду тепер завжди буде коректно повідомлятися як вибрана. Вам більше не потрібно повертатися до використання ручної властивості у подібних сценаріях, [ObservableProperty] тепер має вбудовану підтримку і для цього! 🪄

Примітка: MVVM Toolkit автоматично визначить, чи використовуєте ви будь-який з цих методів, щоб максимально оптимізувати кодову структуру. Крім того, виклики методів, які не реалізовані, будуть просто видалені компілятором Roslyn, тому вся ця функція є повністю платною!

Фіксери коду MVVM Toolkit 📖

У попередньому випуску MVVM Toolkit було додано два нових діагностичних аналізатора, які видають попередження при некоректному доступі до поля, позначеного [ObservableProperty], а також при оголошенні типу з [ObservableProperty] і подібними атрибутами, коли доступне використання наслідування. У версії 8.2 ці два аналізатори також містять вбудовані засоби для виправлення коду!

Тобто, коли будь-який з них видає попередження, ви можете просто навести курсор на лампочку IntelliSense, вибрати виправлення коду й автоматично застосувати всі необхідні зміни, щоб повернути ваш код до правильного вигляду! Вони також підтримують групові виправлення, тому ви можете виправити всі помилки одним клацанням! ✨

MVVM Toolkit analyzer code fix

Тут ви можете побачити новий інтерфейс виправлення коду у Visual Studio з попереднім переглядом змін, а також опціями застосування виправлення до потрібного вам діапазону

Оптимізація генератора вихідного коду MVVM Toolkit 🛫

Як і кожен випуск, MVVM Toolkit 8.2 також включає деякі покращення продуктивності генераторів вихідних кодів. Цього разу основна увага була приділена оптимізації інкрементних конвеєрів, щоб мінімізувати використання пам'яті й гарантувати, що жодні непотрібні об'єкти не залишаться активними під час паралельних виконань. Ось деякі зміни, які було зроблено для покращення цього:

  • Перенесено решту діагностик до аналізаторів (#581): ще дві діагностики з MVVM Toolkit було перенесено до діагностичного аналізатора, який можна запускати паралельно та поза процесом. Це вилучає деякі символи Roslyn з інкрементального конвеєра та покращує загальну продуктивність генератора.

  • Попередня обробка символів на початку роботи аналізаторів (#587): усі необхідні символи аналізатора тепер обробляються під час початкового налаштування зворотного виклику, що пришвидшує його виконання у кожному екземплярі компіляції.

Інші зміни та покращення 🚀

  • Виправлено помилку збірки з VB.NET проєктів (#592): MVVM Toolkit спричиняв помилки збірки з VB.NET проєктів через деякі некоректні властивості MSBuild. Наразі це виправлено.

  • Виправлено перенаправлені параметри подвійних атрибутів (#603): перенаправлені атрибути через [ObservableProperty] некоректно відображали цілі значення типів float та double у тип int. Тепер вони передаватимуться коректно зі збереженням початкового типу.

  • Виправлено генератори вихідного коду, що обробляють вкладені/загальні типи (#606): виправлено проблему, яка призводила до збою декількох генераторів вихідного коду при використанні Roslyn 4.0 та загальних типів.

  • Додано API ArrayPoolBufferWriter<T>.DangerousGetArray() (#616): цей новий API дозволяє легко взаємодіяти між ArrayPoolBufferWriter<T> та старими API, які вимагають масив T[] як параметр (на відміну від Span<T>/Memory<T>).

  • Вилучено System.Linq з CommunityToolkit.Diagnostics (#622): за результатами дослідження, проведеного у runtime/#82607, з пакунка Diagnostics повністю вилучено всі посилання на System.Linq. Це покращує підтримку обрізання у збірці та дозволяє заощаджувати більший розмір двійкових файлів у опублікованих збірках (особливо з NativeAOT).

  • Підтримка часткових методів з [RelayCommand] (#633): атрибут [RelayCommand] тепер працюватиме коректно, якщо його буде додано над визначенням або частиною реалізації часткового методу.

  • Додано підтримку відкритих узагальнених типів у ToTypeString (#639): розширення Type.ToTypeString() тепер коректно обробляє відкриті узагальнені типи. Наприклад, typeof(List<>).ToTypeString() тепер повертатиме "System.Collections.Generic.List<>".

  • Додано [MemberNotNull] у встановлювачах [ObservableProperty] (#646): коли це застосовано (тобто коли атрибут є доступним і тип властивості не можна занулити), генератор [ObservableProperty] також генеруватиме необхідні анотації про можливість занулення, щоб гарантувати, що встановлення створеної властивості коректно позначить поля як ініціалізовані. Це розв'язує проблему полів, які показували попередження про недопустимість, навіть якщо згенеровану властивість було встановлено.

  • Повні XML-документи для згенерованих членів (#653): усі згенеровані типи та члени тепер оформлено у вигляді повних XML-документів, тож перевірка коду, створеного генераторами вихідного коду MVVM Toolkit, має бути дещо простішою, ніж раніше.

Примітка: у старих версіях Roslyn існує відома проблема з генераторами вихідних кодів, через яку IntelliSense може іноді працювати некоректно для згенерованих елементів (див. #493 і пов'язану з ним проблему відстеження у Roslyn). Ця проблема має бути в основному виправлена в VS 2022 17.6 і вище (або, коли використовується Roslyn 4.6, в тому числі через інші IDE, такі як VS Code і Rider). Якщо ви зіткнулися з цією проблемою, переконайтеся, що ви оновили свій інструментарій до останньої доступної версії.

Інші зміни ⚙️

Ви можете переглянути повний список змін до цього випуску на сторінці релізу на GitHub.

Почніть вже сьогодні! 🎉

Ви можете знайти весь вихідний код у репозиторії GitHub, деякі рукописні документи на MS learn та повні посилання на API на вебсайт браузера .NET API. Якщо ви хочете зробити свій внесок, не соромтеся залишати проблеми або звертатися до команди, щоб повідомити про свій досвід! Щоб стежити за обговоренням у Twitter, використовуйте хештег #CommunityToolkit. Всі ваші відгуки дуже допомагають формувати напрямок розвитку цих бібліотек, тому обов'язково діліться ними!

 

Вдалого кодування! 💻



Posted on 23. January 2023

Анонс .NET Community Toolkit 8.1! Покращені, швидші генератори вихідного коду MVVM, підтримка .NET 7 та багато іншого!



Анонс .NET Community Toolkit 8.1! Покращені, швидші генератори вихідного коду MVVM, підтримка .NET 7 та багато іншого!

З радістю повідомляємо про офіційний запуск версії 8.1 інструментарію .NET Community Toolkit! Ця нова версія містить нові функції, які були дуже запитувані, виправлені помилки та значні покращення продуктивності генераторів вихідного коду MVVM Toolkit, щоб покращити UX для розробників при їх використанні як ніколи!

 

Що входить до складу .NET Community Toolkit? 

Як і в інших анонсах, розпочнемо з невеликого огляду того, що входить до складу інструментарію .NET Community Toolkit. Він складається з декількох незалежних бібліотек:

Ці бібліотеки також широко використовуються у деяких програмах для роботи з поштою, які входять до складу Windows, зокрема у Microsoft Store та програмі "Фотографії"! 

Для більш детальної інформації про історію .NET Community Toolkit, ось посилання на попередній пост з анонсом 8.0.0.

 

Нижче наведено перелік основних змін, які включено до нового випуску 8.1 інструментарію .NET Community Toolkit.

Користувацькі атрибути для [ObservableProperty] (Властивість, що спостерігається) 

Як вже згадувалося у блозі з анонсом 8.1.0 Preview 1, однією з найбільш запитуваних функцій (див. #208, #217, #228) для генератора вихідного коду MVVM Toolkit була підтримка використання користувацьких атрибутів для [ObservableProperty]. Було запропоновано декілька проєктів для підтримки цієї можливості, і зрештою було вирішено використати наявну властивість: синтаксис у C#, який дозволяє розробникам позначати атрибути для поширення їх на згенеровані властивості. Це дає кілька переваг:

1. Він використовує вбудований синтаксис C#, що робить властивість "рідною" і не потребує додаткових атрибутів

2. Це розв'язує проблему анотування атрибутів, які можуть бути спрямовані лише на властивості, а не на поля

 

Тобто, у MVVM Toolkit 8.1 тепер підтримується наступний сценарій:

Це призведе до створення наступної властивості за замовчуванням:

Ви можете побачити, як згенерована властивість має два атрибути, які було вказано! Таким чином, ви можете гнучко створювати анотації для згенерованих властивостей, використовуючи вбудований синтаксис C# і без обмежень на типи атрибутів, які підтримуються цією функцією. 

Примітка: згенерований код дещо відрізняється і включає додаткові оптимізації продуктивності, не показані тут.

Ви можете знайти всі документи про нові генератори коду тут, а якщо ви віддаєте перевагу відеоверсії, Джеймс Монтемагно також зняв кілька відео про них, наприклад, це.

Аналізатори MVVM Toolkit 

Цей випуск MVVM Toolkit також є першим, в якому представлені спеціальні аналізатори, що допомагають розробникам використовувати MVVM Toolkit найкращим чином. Тобто, MVVM Toolkit більше не буде просто видавати діагностику для функцій, які використовуються неправильно (тобто таким чином, що призведе до помилки), тепер він також буде показувати рекомендації щодо покращення коду та уникнення поширених помилок! 

Перший аналізатор розглядає поширену помилку при використанні атрибута [ObservableProperty]. Розглянемо такий приклад:

Розробники неодноразово стикалися з такою проблемою, коли випадково присвоювали значення полю (а не згенерованій властивості), а потім стикалися з тим, що інтерфейс не відображав зміни, без чіткого пояснення, чому це сталося. Новий аналізатор допоможе у цих випадках, і він позначатиме всі присвоєння полів, що підтримують видиму властивість, показуючи діагностику, яка запропонує посилатися на створену властивість замість неї. Більше жодних загадкових сповіщень про відсутність властивості!

Другий новий аналізатор має на меті допомогти зменшити розмір двійкових файлів у додатках, що використовують MVVM Toolkit. Як вже згадувалося в анонсі 8.0.0, MVVM Toolkit включає декілька атрибутів (таких як [ObservableObject]), які дозволяють генераторам вставляти весь код, необхідний для реалізації інтерфейсів INotifyPropertyChanged та INotifyPropertyChanging (опціонально з додатковими допоміжними засобами) у вже наявні класи. Це особливо корисно у випадках, коли клас вже успадковується від іншого типу, ніж ObservableObject: ви можете використовувати атрибут і мати доступ до тих самих допоміжних функцій, не переробляючи логіку самостійно.

Однак це стосується лише тих випадків, коли успадкування неможливе: якщо ж це не так, краще просто успадкувати від ObservableObject і скористатися перевагами зменшеного розміру двійкового файлу, оскільки компілятору не доведеться копіювати ті самі допоміжні функції знову і знову у кожному типі. Розглянемо цей приклад:

Тут MyViewModel не успадковує від жодного типу, тому їй краще успадкувати від ObservableObject, а не використовувати атрибут [ObservableObject], щоб отримати вигоду від покращення бінарного розміру. Новий аналізатор позначатиме всі сценарії, подібні до цього, пропонуючи використовувати успадкування. Це особливо допоможе новачкам, які можуть не розуміти нюансів двох різних підходів і не знати, як зробити вибір. У таких випадках аналізатор тепер буде поруч, щоб допомогти.

Оптимізація генератора вихідних кодів MVVM Toolkit 

Як вже згадувалося, цей новий випуск також містить значні оптимізації продуктивності MVVM Toolkit, щоб ще більше покращити UX для розробників, особливо при роботі над дуже великими проєктами.

Ось лише деякі з покращень у цьому напрямку:

1. Додано багатоцільове орієнтування для Roslyn 4.3 (#428, #462): генератори вихідних кодів MVVM Toolkit тепер використовуватимуть орієнтир на Roslyn 4.3, якщо він підтримується, щоб вони могли підключатися до деяких оптимізованих API, якщо хост це підтримує. Ця функція автоматично вмикається при зверненні до MVVM Toolkit.

 

2. Використання ForAttributeWithMetadataName<T> (#436): було переключено генератори на новий високорівневий API Roslyn для зіставлення атрибутів, що значно покращує продуктивність генераторів, які спрацьовують за певними атрибутами. Наприклад, [ObservableProperty] тепер використовує цю можливість.

3. Перенесено діагностику в діагностичні аналізатори (#433, #434): було перенесено майже всю діагностику в діагностичні аналізатори, які виконуються поза процесом і незалежно від генераторів вихідних кодів. Це значно зменшує накладні витрати при наборі коду, оскільки вся логіка діагностики тепер виконується в окремому процесі й не може сповільнювати роботу IntelliSense.

4. Припинено використання символів у інкрементних провайдерах (#435): було оновлено всі інкрементні провайдери, щоб більше не поширювати символи. Це може зменшити використання пам'яті, оскільки розповсюдження символів може призвести до того, що Roslyn надмірно викорінюватиме об'єкти компіляції.

5. Більше оптимізацій продуктивності (#447, #460, #469, #487, #489): було переглянуто всі інкрементальні моделі та інкрементальні конвеєри, що значно покращило продуктивність та зменшило виділення пам'яті.

Розширення месенджерів IObservable<T> 

 

Ще однією запитуваною функцією, особливо розробниками, які інтенсивно використовують API у стилі Reactive у своїх додатках, була можливість об'єднати функціональність API месенджерів у MVVM Toolkit. Тепер це підтримується завдяки новим розширенням IObservable<T> для інтерфейсу IMessenger. Їх можна використовувати наступним чином:

 

... Ось і все! Це розширення створить об'єкт IObservable<T>, який можна використовувати для підписки на повідомлення і динамічної реакції на них. Також підтримується вказівка різних токенів за допомогою окремих перевантажень. Ось ще один приклад, що демонструє наскрізне використання нового API:

Підтримка .NET 7 та C# 11 

Цей новий випуск .NET Community Toolkit також додає .NET 7 TFM до пакета HighPerformance і містить кілька змін, що дозволяють скористатися новими можливостями мови C# 11, зокрема, посиланнями на поля (ref fields).

Наступні типи більше не знаходяться у попередньому перегляді й були оновлені для використання нових правил безпеки ref-полів:

Приклад, де вони можуть бути використані, наведено нижче:

Тобто, тип NullableRef<T> фактично дозволяє методу мати параметр out ref T, який не може бути виражений в C# іншим чином. Планується також розширити поверхню API цих типів у майбутньому, щоб ці типи могли стати простою у використанні альтернативою GC-ref арифметиці з використанням типу Unsafe, яка також може бути візуально більш схожою на традиційну арифметику з вказівниками.

 

Крім того, всі типи ref-структур, яких ще не було у попередньому перегляді, було оновлено для внутрішнього використання полів ref для покращення продуктивності. До них відносяться:

Інші зміни 

У цьому новому випуску набагато більше змін!

Ви можете переглянути повний список змін на сторінці релізу на GitHub.

Розпочинайте прямо зараз! 

Ви можете знайти весь вихідний код у репозиторії GitHub, деякі рукописні документи на MS learn та повні посилання на API на вебсайті браузера .NET API. Якщо ви хочете зробити свій внесок, не соромтеся повідомляти про проблеми або ділитися з нами своїм досвідом! Щоб стежити за обговоренням у Twitter, використовуйте хештег #CommunityToolkit. Всі ваші відгуки дуже допомагають формувати напрямок розвитку цих бібліотек, тому обов'язково діліться ними!

Більше ресурсів 

Якщо ви хочете дізнатися більше про MVVM Toolkit, ви також можете переглянути це відео з нещодавньої конференції .NET Conf 2022, де показано, як можна використовувати MVVM Toolkit, новий генератор коду та всі нові функції в 8.1:

Існує ціла екосистема доступних Toolkit'ів з безліччю корисних API для створення .NET-додатків! Дізнайтеся більше про них у документації MS learn!

 

Вдалого кодування!

Source



Posted on 9. November 2022

Анонс .NET Community Toolkit v8.1.0 Preview 1

Анонс .NET Community Toolkit v8.1.0 Preview 1

 

Пропонуємо вашій увазі попередню версію 1 майбутнього релізу .NET Community Toolkit 8.1! Ця перша офіційна попередня версія містить кілька дуже запитуваних нових функцій, виправлення помилок і, найголовніше, значне покращення продуктивності генераторів вихідних кодів MVVM Toolkit, завдяки чому користувацький інтерфейс розробника при їх використанні навіть у дуже великих проєктах стане кращим, ніж будь-коли!

Що входить до інструментарію .NET Community Toolkit? 

 

Щоб дати короткий огляд того, що мстить інструментарій .NET Community Toolkit, наведемо перелік бібліотек, з яких він складається:

Бібліотеки також широко використовуються у деяких програмах вхідних повідомлень, що постачаються з Windows, таких як Microsoft Store! 🚀

Для більш детальної інформації про історію розвитку інструментарію .NET Community Toolkit, ознайомтеся з посиланням на попередній пост з анонсом версії 8.0.0.

Ось перелік основних змін, які ви можете очікувати в цьому новому випуску.

Користувацькі атрибути для [ObservableProperty

Однією з найбільш запитуваних функцій (див. #208, #217, #228) для генератора вихідного коду MVVM Toolkit була підтримка використання користувацьких атрибутів для [ObservableProperty]. Було запропоновано декілька проєктів для підтримки цього, і врешті-решт було вирішено використати наявну властивість: синтаксис у C#, який дозволяє розробникам позначати атрибути для розповсюдження на згенеровані властивості. Це дає нам декілька переваг:

 

  • Він використовує вбудований синтаксис C#, що робить функцію "рідною" і не потребує додаткових атрибутів
  • Це розв'язувати проблему анотування атрибутів, які можуть бути спрямовані лише на властивості, а не на поля
Тобто, у MVVM Toolkit 8.1 тепер підтримується наступний сценарій:
Після цього буде згенеровано наступну властивість за лаштунками:

 

Ви можете побачити, як згенерована властивість має два атрибути, які було вказано! Це забезпечує повну гнучкість в анотаціях для згенерованих властивостей, використовуючи вбудований синтаксис C# і без обмежень на типи атрибутів, які підтримуються цією функцією. 🙌

Примітка: згенерований код дещо відрізняється і містить додаткові оптимізації продуктивності, які тут не показано.

Ви можете знайти всі документи про нові генератори вихідних текстів тут, а якщо ви віддаєте перевагу відеоверсії, Джеймс Монтемагно також зробив кілька відео про них, наприклад, це.

Оптимізація генератора вихідних текстів MVVM Toolkit 

Як вже було сказано, ця нова попередня версія також містить значну оптимізацію продуктивності MVVM Toolkit, щоб ще більше покращити UX для розробників, особливо при роботі над дуже великими рішеннями. Команда провела багато часу, покращуючи архітектуру всіх генераторів і спілкуючись з інженерами з команди Roslyn, щоб переконатися, що виконується все можливе, щоб отримати від них максимальну продуктивність.

Ось лише деякі з удосконалень в цьому напрямку:

 

  • Додано багатоцільове націлювання для Roslyn 4.3 (#428, #462): генератори вихідних текстів MVVM Toolkit тепер використовуватимуть ціль Roslyn 4.3, якщо воно підтримується, щоб вони могли підключитися до деяких оптимізованих API, якщо хост це підтримує. Це автоматично вмикається при посиланні на MVVM Toolkit.
  • Використано ForAttributeWithMetadataName<T> (#436): було переключено генератори на новий високорівневий API Roslyn для зіставлення атрибутів, що значно покращує продуктивність генераторів, які спрацьовують за певними атрибутами. Наприклад, [ObservableProperty] тепер використовує це.
  • Перенесено діагностику в діагностичні аналізатори (#433, #434): перенесено майже всю діагностику в діагностичні аналізатори, які виконуються поза процесом і незалежно від генераторів джерел. Це значно зменшує накладні витрати при наборі тексту, оскільки вся логіка діагностики тепер виконується в окремому процесі й не може сповільнювати роботу IntelliSense.
  • Припинено використання символів у інкрементних провайдерах (#435): оновлено всі інкрементні провайдери, щоб більше не поширювати символи. Це може зменшити використання пам'яті, оскільки розповсюдження символів може призвести до того, що Roslyn надмірно викорінюватиме об'єкти компіляції.
  • Більше оптимізацій продуктивності (#447, #460, #469, #487, #489): переглянуто всі наші інкрементні моделі та інкрементні конвеєри, щоб значно покращити продуктивність та зменшити виділення пам'яті.

 

Розширення месенджерів IObservable<T> 

 

Ще однією функцією, яку просили розробники, особливо ті, що активно використовують API у стилі Reactive у своїх додатках, була можливість об'єднати функціональність API месенджерів у MVVM Toolkit. Тепер це підтримується завдяки новим розширенням IObservable<T> для інтерфейсу IMessenger. Ви можете використовувати їх наступним чином:
...І це все! Це розширення створить об'єкт IObservable<T>, який можна використовувати для підписки на повідомлення і динамічної реакції на них. Також підтримується вказівка різних токенів за допомогою окремих перевантажень. Ось ще один приклад, що демонструє наскрізне використання нового API:

Підтримка .NET 7 та C# 11 

Цей новий попередній випуск .NET Community Toolkit також додає .NET 7 TFM до пакета HighPerformance і містить кілька змін, що дозволяють скористатися новими можливостями мови C# 11, зокрема, полями посилань.

Наступні типи більше не знаходяться в режимі попереднього перегляду, вони були оновлені відповідно до нових правил безпеки арбітрів:
Приклад того, де вони можуть бути використані, наведений нижче:
Тобто, тип NullableRef<T> фактично дозволяє методу мати параметр out ref T, який не може бути виражений в C# іншим чином. Також планується розширити поверхню API цих типів у майбутньому, щоб ці типи могли надавати просту у використанні альтернативу GC-реф-арифметиці з використанням типу Unsafe, яка також може бути візуально більш схожою на традиційну арифметику з вказівниками.

Інші зміни 

У цьому новому випуску набагато більше!

Ви можете переглянути повний список змін на сторінці релізу на GitHub.

Почніть вже сьогодні! 

Ви можете знайти весь вихідний код у репозиторії GitHub, деякі рукописні документи на MS learn та повні посилання на API на вебсайт браузера .NET API. Щоб стежити за обговоренням у Twitter, використовуйте хештег #CommunityToolkit. Всі ваші відгуки дуже допомагають формувати напрямок розвитку цих бібліотек, тому обов'язково діліться ними!

Більше ресурсів 

Якщо ви хочете дізнатися більше про MVVM Toolkit, ви також можете переглянути це відео з останньої конференції .NET Conf Focus on MAUI, яка відбулася раніше в цьому році, де показано, як можна використовувати MVVM Toolkit і всі нові функції генератора вихідних кодів для створення MAUI-додатків:

Існує ціла екосистема доступних наборів інструментів з безліччю корисних API для створення .NET-додатків! Налаштуйтеся на майбутню конференцію .NET Conf 2022, щоб дізнатися більше!

Вдалого кодування! 





Posted on 18. June 2018

Windows Template Studio 2.2

Microsoft рады объявить о новом выпуске Windows Template Studio, версии 2.2!

Microsoft продолжают работать над следующими обновлениями, в которых будут добавлены новые страницы и небольшие исправления, поскольку Microsoft также работает над добавлением поддержки для нескольких проектов для версии 3.0 и корректирует шаблоны, которые будут поддерживать эту возможность. Это действительно тяжелая работа, но Вы можете быть уверенны, что проект будет улучшаться с каждым обновлением. 

Microsoft будут рады Вашим предложениям. Если Вы заинтересованны в проекте, перейдите на страницу Windows Template Studio на Github.

Что нового:

Вы можете ознакомиться с полным списком улучшений в версии 2.2 на странице Windows Template Studio на Github.

В этой версии:

 

  • Функция 3D-запуска
  • Улучшения Wizard
  • Улучшенная документация
  • Улучшенное тестирование
  • Общее исправление ошибок

 

Обновления на платформе разработчиков: 

 

  • Обновлена Microsoft.NETCore.UniversalWindowsPlatform до 6.15
  • Обновлен Newtonsoft.Json до 11.0.2
  • Обновлены Microsoft.Toolkit.Uwp, Microsoft.Toolkit.Uwp.Notifications и Microsoft.Toolkit.Uwp.UI.Controls до 3.0.0
  • Обновлен Telerik.UI.for.UniversalWindowsPlatform до 1.0.1

 

Как получить обновление:

Есть две возможности обновления к новой сборке.

 

  • Уже установлено: Visual Studio автоматически обновляет расширение. Для принудительного обновления, откройте «Инструменты» --> «Расширения и обновления». Затем перейдите на вкладку слева «Обновление расширителя», там Вы увидите «Windows Template Studio», после чего нажмите «Обновить».
  • Не установлено: Перейдите на https://aka.ms/wtsinstall, нажмите «загрузить» и дважды щелкните по VSIX установщику.

 

Что будет в следующих версиях?

Microsoft ценит Ваше участие и поддержку в сообществе. Кроме того, на данный момент ведется активная работа над возможностями, которые будут добавлены в будущих обновлениях:

  • Шаблон навигации в стиле Menubar
  • Интеграция пакета WinUI Library nuget
  • Улучшения Fluent Design в шаблонах
  • Поддержка нескольких проектов в одном решении
  • Ink шаблоны
  • API активности пользователей для Timeline поддержки
  • Улучшения опции «Right-click->add support for existing projects»

В  партнерстве с сообществом, Microsoft продолжит работу над добавлением и улучшением функций и функциональности. Команда Windows Template Studio всегда рада новым людям, которые готовы помочь, и если Вам интересно, пожалуйста, перейдите на GitHub --> https://aka.ms/wts. Если у Вас есть идеи по добавлению новых функций, пожалуйста, отправьте Ваш запрос!



Posted on 5. June 2018

Windows Community Toolkit v3.0

Windows Community Toolkit v3.0

 

Microsoft рады объявить о самом большом обновление Windows Community Toolkit - версии 3.0.

Несколько недель назад Microsoft объявили об изменении названия инструментария сообщества для того, чтобы еще больше Windows разработчиков присоеденились к сообществу, и уже в этом блог посте, Вы сможете изучить функции самого большого обновления Windows Community Toolkit:

  • Новый пакет для всех WPF и WinForms разработчиков, который включает в себя новый Edge WebView
  • Новый пакет для всех XAML UWP разработчиков с технологией отслеживания глаз по API в XAML
  • Новый пакет для всех .NET UWP разработчиков, который поможет с написанием Runtime API Проверок
  • Новый пакет с элементами управления для доступа к Microsoft Graph
  • Новые элементы управления и API в существующих пакетах
  • Fluent Design в уже существующих элементах управления с поддержкой светлой и темной темы
  • Обновленная документация и примеры кода в Visual Basic
  • Дополнительные улучшения и исправления ошибок

Давайте рассмотрим некоторые из этих обновлений более подробно.

Новый и современный WebView для .NET и WPF приложений

Microsoft добавили новый инструмент Microsoft Edge рендеринга для .NET WinForms и WPF приложений. Тем не менее, работа с WebViewControl и WebView API может быть неизвестна .NET разработчикам, поэтому Microsoft создали дополнительные элементы управления, чтобы упростить опыт работы и предоставить более привычную среду разработки.  Эти элементы управления обертывают WebViewControl, чтобы сделать элемент управления больше похожим на .NET WinForms или элемент WPF управления, а также предоставить подмножество членов этого класса.

На сегодняшний день WinForms и WPF элементы управления доступны в Microsoft.Toolkit.Win32.UI.Controls пакете. Это означает, что переход с Trident-powered WebBrowser на EdgeHTML-powered WebView в Вашем WinForms или WPF приложение может быть таким же простым, как перетаскивание нового элемента управления из панели инструментов.

Прочтите эти документы и ознакомтесь с полной документацией.

Новая Gaze Interaction Library с интеграцией отслеживания глаз в XAML приложениях

Gaze input - это мощный инструмент с технологией отслеживания глаз и использования Windows и UWP приложений, эта технологния особенно полезна для пользователей с нейро-мышечными заболеваниями (такими как БАС) и другими нарушениями, связанными с атрофией мышц или центральной нервной системы. Обновление Windows 10 April 2018 Update теперь поддерживает Windows технологию отслеживания глаз по API. Чтобы разработчики использовали эти API в своих XAML приложениях, Microsoft добавили Gaze Interaction Library в пакет Microsoft.Toolkit.Uwp.Input.GazeInteraction. Например, для того чтобы включить технологию отслеживания глаз на Вашей xaml странице, добавьте следующее свойство:

 

xmlns:gaze="using:Microsoft.Toolkit.Uwp.Input.GazeInteraction"
        gaze:GazeInput.Interaction="Enabled"

 

API позволяет Вам контролировать настройку того, как технология отслеживания глаз взаимодействует с Вашим пользовательским интерфейсом.  Прочтите этот блог пост, чтобы узнать больше и ознакомиться с полной документацией

Platform Specific Analyzer

При написании адаптивного кода платформы разработчики должны убедиться, что код проверяет наличие API перед его вызовом. Специфичный анализатор платформы, доступный в Microsoft.Toolkit.Uwp.PlatformSpecificAnalyzer nuget пакете, представляет собой Roslyn анализатор для C# и Visual Basic, который может обнаруживать, когда Вы используете API, которые теперь стали доступны для всех Windows 10 версий и помогут Вам добавить соответствующие проверки кода.

Просто добавьте nuget пакет в Ваше приложение, и анализатор автоматически проверит Ваш код в процессе разработки.

Элементы управления Microsoft Graph

В новом Microsoft.Toolkit.Uwp.UI.Controls.Graph пакете Microsoft добавили четыре новых элемента управления, чтобы предоставить разработчикам доступ к Microsoft Graph в их XAML приложениях.

ProfileCard и AadLogin

Элемент управления ProfileCard - это простой способ отображения пользователя в нескольких разных форматах с использованием комбинации имени, изображения и электронной почты. Элемент управления AadLogin использует службу Microsoft Graph для включения процесса входа в Azure Active Directory (AAD) систему.

PeoplePicker

Элемент управления People Picker позволяет выбирать одного или нескольких пользователей из организационного AD.

SharePointFileList

Элемент управления SharePointFileList позволяет пользователю перемещаться по папке и файлам и отображает простой список SharePoint файлов.

Новые элементы управления и помощники

В дополнение к новым пакетам, в инструментарий также были добавлены новые элементы управления и помощники для уже существующих пакетов, о которых стоит упомянуть.

CameraHelper и CameraPreview

CameraHelper предоставляет вспомогательные методы для простого использования доступных в рамках камеры источников для предварительного просмотра видео, захвата видеокадров и растровых изображений программного обеспечения. С одной строкой кода разработчики могут подписываться и получать видеофрагменты в реальном времени и растровые изображения программного обеспечения по мере их поступления из выбранного источника камеры.

Элемент управления CameraPreview XAML использует CameraHelper для удобного просмотра видеофрагментов в Ваших приложениях.

В xaml:

 

<controls:CameraPreview x:Name="CameraPreviewControl" /> 

 

В С#:

 

await CameraPreviewControl.StartAsync(); 
CameraPreviewControl.CameraHelper.FrameArrived += CameraPreviewControl_FrameArrived;

 

 

Прочтите эти документы и ознакомтесь с полной документацией.

UniformGrid

Элемент управления UniformGrid - это гибкий элемент управления макетами, который упорядочивает элементы в равномерно распределенном наборе строк или столбцов, чтобы заполнить общее доступное пространство дисплея. Каждая ячейка в сетке будет одинакового размера по умолчанию. Если Вы перемещаете UniformGrid XAML из WPF, просто добавьте префикс пространства имен в инструментарий.

      
   <controls:UniformGrid>
      <Border Background="AliceBlue" Grid.Row="1" Grid.Column="1"><TextBlock Text="1"/></Border>
      <Border Background="Cornsilk"><TextBlock Text="2"/></Border>
      <Border Background="DarkSalmon"><TextBlock Text="3"/></Border>
      <Border Background="Gainsboro"><TextBlock Text="4"/></Border>
      <Border Background="LightBlue"><TextBlock Text="5"/></Border>
      <Border Background="MediumAquamarine"><TextBlock Text="6"/></Border>
      <Border Background="MistyRose"><TextBlock Text="7"/></Border>
    </controls:UniformGrid>   
    

Прочтите эти документы и ознакомтесь с полной документацией.

InfiniteCanvas

Элемент управления InfiniteCanvas представляет собой новый canvas, который поддерживает бесконечную прокрутку, inking, форматирование текста, масштабирование, отмену и повтор, а также экспорт и импорт canvas данных.

Прочтите эти документы и ознакомтесь с полной документацией.

И еще...

Обязательно просмотрите информацию о выпуске, чтобы изучить полный список обновлений в этой версии. Сообщество Windows Community Toolkit продолжает работать над улучшениями, чтобы предоставить лучшие функции для всех Windows разработчиков, и, на данный момент, версия 3.0 - это самое большое обновление. Новый инструментарий был бы невозможен без Вашего участия и вклада в проект.

Напоминаем, что Вы можете начать работу, следуя этому руководству, или изучить новые  функции, установив UWP Community Toolkit Sample App приложение из Microsoft Store. Если Вы хотите внести Ваш вклад, присоединяйтесь к Windows Community Toolkit на GitHub! Чтобы присоединиться к беседе в Twitter, используйте хэштег #windowstoolkit.

Источник



Posted on 3. May 2018

Новое имя UWP Community Toolkit: Windows Community Toolkit

Уже в следующем обновлении UWP Community Toolkit будет переименован на Windows Community Toolkit. Это действительно большой шаг в развитии инструментария и сообщества.

Впервые инструментарий был выпущен более полутора лет назад с 26 различными функциями. С тех пор Microsoft добавили пять новых пакетов в девять новых выпусков, каждый из которых включает в себя новые элементы управления, помощники, службы, расширения, объектные модели и многое другое - большинство из элементов поступает сразу из сообщества. Сегодня существует более 100 различных функций. Вы можете сравнить количество элементов управления (и категорий) на примере приложения с первоначальной версии:

UWP Community Toolkit Sample App (версия 1.0)

UWP Community Toolkit Sample App (версия 2.0)

Когда Microsoft выпустили UWP Community Toolkit, было много отзывов о добавление возможности для разработчиков, поделиться компонентами инструментария с другими инфраструктурами, такими как WPF, WinForms, Xamarin, .NET Core и другими. С помощью сообщества, в версии 2.0 Microsoft идентифицировали компоненты, которые могли быть учтены в библиотеках .NET Standard, и создали новые пакеты .NET Standard для того, чтобы все разработчики могли воспользоваться преимуществами работы сообщества. Сегодня многие из сервисов, помощников и парсеров являются кросс-платформенными и могут использоваться везде. Более того, Microsoft продолжает работать над тем, чтобы добавить еще больше преимуществ.

 

Главная цель сообщества - привлечение большего количества разработчиков, поэтому, начиная со следующей версии Windows Community Toolkit, Microsoft предоставят возможность другим Windows разработчикам, работающим на Windows 10 платформе, использовать все преимущества компонентов инструментария. Таким образом, новое имя привлечет всех Windows разработчиков.

Microsoft с энтузиазмом работает над следующим обновлением инструментария, которое планируется на конец мая. Работа над обновлением доступна для всех, и Microsoft приглашает всех разработчиков принять участие и внести свой вклад. Чтобы начать работу с самым грандиозным обновлением уже сегодня, посетите GitHub репозиторий и погрузитесь в код. Или, если Вы предпочитаете работать с NuGet пакетами, они будут опубликованы для предварительного просмотра в NuGet перед конференцией Microsoft Build. Microsoft будет обновлять документацию и пример приложения одновременно, пожалуйста, обратите внимание, что это пакеты предварительного выпуска, и они могут измениться в окончательной версии. 

Чтобы присоединиться к беседе в Twitter, используйте хэштег #windowstoolkit. Microsoft также будут рады видеть Вас на конференции Microsoft Build 2018!