87

Open Source .Net клиент для работы с сервисом DaData

Я тут на днях сгорел от реализации официальных, этого и вот этого ... клиентов... И взял, да и сделал нормальный, полноценный, .Net клиент для работы с API сервиса DaData.ru


Я реализовал все методы для работы с API. Также есть поддержка платформ .Net Core и .Net Standart 1.3+. Пакет есть на Nuget. Подробнее можно почитать тут (там же исходники). Всем бобра.


P.S

На хабр подобное постить думаю будет перебором, как по мне, он достаточно простой. А где подобное обычно постят, я хз  ¯\_(ツ)_/¯ Но вещь нужная, думаю многие в какой-то момент сталкивались с проблемой отсутствия нормального клиента. (На данный момент уже почти 800 загрузок за 2 недели)

для C#.

P.P.S

Я не являюсь сотрудником компании и целью данного поста не является реклама сервиса (хотя он действительно хорош для России). Все под лицензией MIT.

Open Source .Net клиент для работы с сервисом DaData

GNU/Linux

1.2K поста15.6K подписчика

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

1
Автор поста оценил этот комментарий

Hу да, после такого ответа ты 100% не пиаришь сайт. :D

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Ну его нечего пиарить. Когда люди сталкиваются с задачами по поиску адреса и стандартизации, у них не такой уж и большой выбор. С одной стороны не понятно, что с api 2gis, с другой yandex maps - будь добр использовать их виджет и только на открытых страницах, с третьей - google maps - который хорош, только вот плохо работает с российскими адресами + его использование недавно сильно подорожало ¯\_(ツ)_/¯ 

0
DELETED
Автор поста оценил этот комментарий
А можно немного объяснить про dotnet?
Типа есть .net framework, в нём много стеков технологии (типа winform, wpf, asp..) на винду + nuget пакеты - типа библиотечек для твоего приложения.
Есть mono - почти аналог framework (оба принадлежат microsoft)
и.. есть .net core тоже реализация .net, тоже кроссплатформ (как mono)
А ещё у корпорации есть xamarin.
зачем такое большое разнообразие? В чём отличия? И что нужно использовать?
раскрыть ветку (1)
3
Автор поста оценил этот комментарий

.Net Framework - это платформа для разработки только под Windows с закрытым исходным кодом.

.Mono - это кроссплатформенный фреймворк для разработки под Linux, Mac и Windows с закрытым исходным кодом, но у него есть проблемы с производительностью .

.Net Core - это уже современная опен сорс платформа для разработки кроссплатформенных приложений.


WinForm, Wpf - это инструменты для создания граф. приложений только под Windows, основанные на .Net Framework. Asp - это технология для разработки веб приложений. Есть Asp Net старый - только для винды и Asp Net Core - кроссплатформенный современный фреймворк.


Xamarin на сколько я знаю используется для разработки мобильных приложений, не работал с ним никогда.


Nuget - это система управления пакетами для платформ разработки, которая позволяет расшаривать пакеты для подключения к проектам. Поддержка для такого большого числа платформ и была добавлена с расчетом на широкое использование, что позволит использовать ее в старом коде, где есть ограничения на версии платформ


Для разработки под PC сейчас стоит использовать .Net Core, либо .Net Framework последних версий. Под мобилки - Xamarin. Для разработки веб приложений - Asp .Net Core

показать ответы
0
Автор поста оценил этот комментарий

Я вот первый раз слышу об этом сервисе.


Если это не пиар, зачем автор тут об этом пишет, сделал обертку для апи - молодец, попроси сервис разместить ссылку у себя на сайте

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Уже отправил, сказали посмотрят. Я не совсем согласен с StenFredd касаемо того, что о нем все знают. Я бы сказал, что о нем знает очень большой процент людей, которые хотя бы раз в россии делали что-нибудь с поддержкой подсказок по адресу (их по идее не мало, многим сайтам нужен такой поиск). При поиске готовых решений, гарантировано наткнутся.


Я именно поэтому и пишу здесь, потому что тупо не знаю, где подобное размещать. Для хабра это слишком, на реддите? А смысл, там русских мало. Пытаюсь спасти людям время и нервы на написание своих костылей)

показать ответы
1
Автор поста оценил этот комментарий
"обновлять версии пакета по чаще". Отлично.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

я время от времени правлю баги и вношу улучшения. Хотя сейчас это мб уже не настолько важно). Он уже более чем работоспособен, надо будет удалить эту строчку

показать ответы
Автор поста оценил этот комментарий

Как еще называть сервис который пытается даже на пикабу насрать инфой о себе


Зачем 1с сторонний говноапи да еще и за деньги, берется база фиас и за пару дней выкатывается свой апи и бесплатный

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

я не имею отношения к сотрудникам компании или рекламе, я простой разработчик. Единственное общение которое я имел с ними, так это с их тех поддержкой. По поводу 1с, я не знаю, наверно им виднее, хотя они думаю могли бы сделать подобный функционал (мб и уже есть, хз). Ну или мб они просто сочли что им дешевле платить небольшие по меркам подобных сервисов деньги за год (вроде что-то около 400к рублей), чем разрабатывать и поддерживать что-то свое

9
Автор поста оценил этот комментарий
Не знаю, что такое DaData, но допустим, молодец)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Спасибо, вот, можете посмотреть, если интересно  https://dadata.ru/suggestions/

показать ответы
0
Автор поста оценил этот комментарий

Я не про то, не на каждый запрос клиент поднимать, а при инициализации создать один экземпляр и передавать его в остальные подсистемы. Результат в целом один - один экземпляр. Смысл - нет случайных зависимостей от этого класса. PR для вещи которую я бы спроектировал подругому изначально, к сервису которым не пользуюсь, для платформы под которую я сейчас не пишу - это для меня слишком сильный шаг, сорян=)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

именно так и было реализовано раньше. В апи клиенте создавался один экземпляр HttpClient и передавался по цепочке вызовов, чтобы в конце вызвать httpClient.SendAsync - моей реализации

0
Автор поста оценил этот комментарий

HttpClientSingleton.cs - вот этот момент не нравится, по правильному ты создаешь экземпляр хттп ходилки при инициализации клиента и затем передаешь его во все нижележащие элементы.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

раньше так было, это было довольно медленно. Когда я сделал его сингелтоном, то неплохо поднялась производительность. См. время тестов у релизов на гите. Ну и в целом я склоняюсь к тому, что его использование тут оправдано. В скором времени собираюсь добавить несколько очередей сообщений, они вместе будут отлично кореллировать. Если что, вы всегда можете сделать пулл реквест)

показать ответы
1
Автор поста оценил этот комментарий

Это все дело привычки. Я одно время много занимался Qt, мне очень нравилось. Есть только два минуса: не получится просто так развернуть свое приложение - надо еще кучу dll в комплекте иметь, потому что Qt обычно у клиента не установлен (в линуксе проще), и переход на новую версию часто приводит к необходимости переписывать часть кода. QML, кажется излишне запутанным, но, повторюсь, это все вопрос привычки. Попробуйте просто так накидать разметку для iOS - тоже дичь какая-то. Все вроде бы понятно, когда инструкцию читаешь, а на практике все расползается непонятно куда.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

для меня, как человека который много работал с WPF местная разметка выглядит ну очень ущербно. Да и все там как то через не то место работает по ощущениям

показать ответы
0
DELETED
Автор поста оценил этот комментарий
Можно ссылки на подобные новости? И вообще какой курс развития у .net core?(желательно, тоже с ссылками =))
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

msdn наше все https://docs.microsoft.com/en-us/dotnet/core/whats-new/ Авалония : https://github.com/AvaloniaUI/Avalonia Сейчас курс таков, что они реализовывают все то, что есть в .Net Framework, чтобы полностью прировнять их. Попутна вводя новые фишки и тп.

0
Автор поста оценил этот комментарий

В майкрософт напиши, обычно там все ищут обертки для апи ну и тут конечно тоже

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

хм, интересно, не знал, посмотрю. Спасибо

0
Автор поста оценил этот комментарий
Вы не поняли. "Почаще", в данном случае пишется слитно. Иначе получается, например, "обновлять версии пакета по лесной чаще!".
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

UPD: исправил

0
Автор поста оценил этот комментарий
Вы не поняли. "Почаще", в данном случае пишется слитно. Иначе получается, например, "обновлять версии пакета по лесной чаще!".
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

а, ок. Извиняюсь, не силен в письме:) Спасибо за поправку

Автор поста оценил этот комментарий

Прекащай мы уже поняли за кого ты и просто как все раньше жили без этого говносервиса не понятно

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

не буду продолжать пытаться вас переубедить, может если вы когда-нибудь займетесь задачей поиска адресов, поймете о чем я. А вообще называть сервис говном, ни разу с ним не поработав, такой себе подход. Он весьма известен среди людей, работающих с адресами и рос. базами данных. Например 1C использует их апи для поиска адресов

показать ответы
0
Автор поста оценил этот комментарий

А чем ненавистный? Вроде норм инструмент для мультиплатформенной разработки. Да и с++ ненамного хуже с#.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Вы когда-нибудь пробывали использовать QML?) Ну или хотя бы, на сколько редко вы находили моменты, что пример из документации не работает, потому что функционал изменился. Или вообще новый - сломал старый. Ну и куда же без Qt Creator:)

показать ответы
Автор поста оценил этот комментарий

Реклама какого-то говносервиса, на кой фиг оно тута.


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

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну я аналогов не знаю, да и у них все самое дешевое, если посмотреть. Ну и основная их функциональность - подсказки (до 10к запросов в сутки бесплатно), при этом им все-равно где ты их будешь использовать. Также они работают с рос. базами данных, в целом неплохо поддерживают актуальность, да и поддержка нормально работает (пока делал нашел несколько ошибок в документации). Почитайте ограничения на использование Yandex Maps например))

показать ответы
0
DELETED
Автор поста оценил этот комментарий
В mono есть гуи. И сейчас у меня на линуксе минимум 3 проги через него.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

ага, есть такое:) Если мне память не изменяет, еще вроде Unity с ним работает. Но это все до поры до времени. Сейчас делают System.Drawing и на нем же создают Avalonia - это грубо говоря кроссплатформенный WPF, обещает быть хорошей штукой)

показать ответы
0
Автор поста оценил этот комментарий

.Net Core это получается замена mono? А mono будет дальше развиваться? И что с ним вообще сейчас происходит?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну он вроде как еще живой, что с ним сейчас происходит не в курсе, но по факту в нем сейчас не много смысла есть, с учетом наличия Net Core

показать ответы
0
Автор поста оценил этот комментарий

В 2018 стоит использовать линукс и qt


/шутка

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Qt - это мой самый любимый ненавистный инструмент

показать ответы
1
Автор поста оценил этот комментарий

С кором нужно быть аккуратней. Для серьезных проектов рановато его имхо.
Начали пилить приложение на core 1.0 -  с месяц назад пришлось повозиться чтобы перетянуть на 2.1

Имхо пока он не устаканится - в ентерпразе его использовать не стоит. Думаю еще год-два.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну он уже далеко не сырой, я работаю с ним с первых релизов, в целом проблем не было. Чего там сейчас реально не хватает, так это System.Drawing :(. А так все гуд и он очень быстро развивается. 2.1 рановато, согласен, а вот 2.0 стабильная очень. Что меня больше всего напрягает, так это EF Core. У него нет хороших реализаций провайдеров к популярным БД вроде постгреса, монго и тп.