Niedawno zainteresowałem się Airly, miałem ich aplikację na telefonie i zainteresowałem się czy mają API :D
Okazało się że tak i to na dodatek bardzo dobrze udokumentowane (link), bo mały re-search zobaczyłem że nie ma "wrapper'a" na to api w C# więc postanowiłem być pierwszy :P
Myśle że zrobiłem to dość dobrze zoptymalizowane, zaimplementowałem tam asynchroniczny handler wszystkich przepływających requestów od programisty (przez wywołanie metody), przez to zminimalizowałem możliwość powstawania freezow albo thread loopów w wrapperze. Ponad to dodałem kilka takich niestandardowych interfejsów które ułatwiają interakcje z api (np. branie wszystkich installacji na danej powierzchni poprzez specjalny interfejs). :) Klient pokrywa sie z dokumentacja w 100%
Sam projekt opublikowałem troche dawno ale wczoraj dałem go na nuget :D
Tutaj repozytorium, dodałem także dwa README jedno po angielsku i drugie po polsku (Airly jest głównie serwisem polskim ale posiada API także w języku anigelskim): Airly.Net (Github)
Za wszelkie recenzje oraz opinie szczerze dzięki ;)
Nowości w .NET 6 LINQ
int[] numbers = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
IEnumerable<int[]> numberChunks = numbers.Chunk(5) // {[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12]}
oraz
DistinctBy, ExceptBy, IntersectBy, MinBy, MaxBy
i więcej.
Continuing our series on the over 100 API changes in .NET 6, we look at extensions to the LINQ library.
https://www.infoq.com/news/2021/04/Net6-Linq/Te metody @deprecated
są wywalane po kilku latach od oznaczenia ich jako @deprecated
, dlatego zbiór metod jest trochę dynamiczny. Java, C#, etc natomiast starają się utrzymywać kompatybilność wsteczną praktycznie do końca świata, więc muszą się trochę powstrzymywać przed dodawaniem zbyt wielu metod, które będą tkwić niezmieniane (pod względem sygnatury) w bibliotece standardowej w nieskończoność.
Chunk i DistinctBy to powinien być od razu wprowadzony. Tak wiele lat trzeba było czekać. Tyle paczek, tyle własnych implementacji, tyle postów na SO :)
@Mondonno: Jeśli chcesz to mogę ci zrobić pull requesta w wolnym czasie zmieniając typ projektu na .NET Standard (bo powinno to pójść bez przeszkód jak tak przejrzałem zależności) i na nowy format .csproj :)