WcfService -> WebApi
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 09.12.19 07:01
Оценка:
Приветствую.
Не застал вэб программирование как программист. В качестве хобби немного писал WcfService.
Было просто: создал проект-сервис, в клиенте добавил соединение, студия создала всё необходимое, пользуюсь. Изменил апи сервиса — обновил соединение и опять пользуюсь. Вообще не думал об этой части. Ну, только когда аутентификацию делал — покопал немного (нашёл в инете готовое решение )

Решил попробовать Core. Создал клиент WPF на Core. Пытаюсь подключить существующий сервис, и столько ошибок валит, что появляется намек, что технология устарела.
Решил попробовать новомодный WebApi. И сразу "в шоке" Тут вообще всё надо прописывать руками. Роутинги какие-то. Один GetPost создал, второй — уже ambiguous.
Реально всё так плохо?
Вселенная бесконечна как вширь, так и вглубь.
Re: WcfService -> WebApi
От: takTak  
Дата: 07.02.20 15:11
Оценка: 2 (1)
R3>Приветствую.
R3>Не застал вэб программирование как программист. В качестве хобби немного писал WcfService.
R3>Было просто: создал проект-сервис, в клиенте добавил соединение, студия создала всё необходимое, пользуюсь. Изменил апи сервиса — обновил соединение и опять пользуюсь. Вообще не думал об этой части. Ну, только когда аутентификацию делал — покопал немного (нашёл в инете готовое решение )

R3>Решил попробовать Core. Создал клиент WPF на Core. Пытаюсь подключить существующий сервис, и столько ошибок валит, что появляется намек, что технология устарела.

R3>Решил попробовать новомодный WebApi. И сразу "в шоке" Тут вообще всё надо прописывать руками. Роутинги какие-то. Один GetPost создал, второй — уже ambiguous.
R3>Реально всё так плохо?

спеациально для "тебя и меня" создали gRPC: там всё почти всё так, как в WCF, и скорость исполения- в разы более шустрая, чем в Web API

https://docs.microsoft.com/en-us/dotnet/architecture/grpc-for-wcf-developers/migrate-request-reply
https://stackoverflow.com/questions/35694273/whats-the-difference-between-grpc-and-wcf
Re[2]: WcfService -> WebApi
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 15.05.20 08:50
Оценка:
Здравствуйте, takTak, Вы писали:

T>спеациально для "тебя и меня" создали gRPC: там всё почти всё так, как в WCF, и скорость исполения- в разы более шустрая, чем в Web API


Краем глаза посмотрел — там какой-то описательный файл надо создавать. Это то же далеко от WCF.
Вселенная бесконечна как вширь, так и вглубь.
Re[3]: WcfService -> WebApi
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 15.05.20 09:30
Оценка:
Здравствуйте, Real 3L0, Вы писали:

R3>Здравствуйте, takTak, Вы писали:


T>>спеациально для "тебя и меня" создали gRPC: там всё почти всё так, как в WCF, и скорость исполения- в разы более шустрая, чем в Web API


R3>Краем глаза посмотрел — там какой-то описательный файл надо создавать. Это то же далеко от WCF.


https://stackoverflow.com/questions/58768379/how-do-i-generate-proto-files-or-use-code-first-grpc-from-c-sharp-classes

По gRPC это еще не до конца реализованная технология.

gRPC для ASP.NET Core сейчас не поддерживается в Службе приложений Azure и служах IIS. Реализация HTTP.sys по протоколу HTTP/2 не поддерживает заголовки в конце HTTP-ответа, которые необходимы gRPC. См. дополнительные сведения на сайте GitHub.


В браузерах есть ограничения.

https://docs.microsoft.com/ru-ru/aspnet/core/grpc/browser?view=aspnetcore-3.1
Вызвать службу HTTP/2 gRPC из приложения на основе браузера невозможно. gRPC-Web — это протокол, позволяющий приложениям JavaScript и Blazor на основе браузера вызывать службы gRPC.


Ксамарин тоже урезанный
https://docs.microsoft.com/ru-ru/aspnet/core/grpc/client?view=aspnetcore-3.1

Вызов gRPC через HTTP/2 с Grpc.Net.Client в настоящее время не поддерживается в Xamarin. Мы работаем над улучшением поддержки HTTP/2 в будущих выпусках Xamarin. Grpc.Core и gRPC-Web являются приемлемыми работающими альтернативами, которые доступны на сегодняшний день.

и солнце б утром не вставало, когда бы не было меня
Re[3]: WcfService -> WebApi
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 15.05.20 09:33
Оценка:
Здравствуйте, Real 3L0, Вы писали:

R3>Здравствуйте, takTak, Вы писали:


T>>спеациально для "тебя и меня" создали gRPC: там всё почти всё так, как в WCF, и скорость исполения- в разы более шустрая, чем в Web API


R3>Краем глаза посмотрел — там какой-то описательный файл надо создавать. Это то же далеко от WCF.

А в чем сложность файл создать?
https://docs.microsoft.com/ru-ru/aspnet/core/grpc/basics?view=aspnetcore-3.1
В совокупности один .proto написать проще, чем классы, service contract, service class. А главное gRPC кроссплатформенный, в отличие от WCF. То есть тот же .proto файл можно использовать для создания клиента на C++ например.
Re[3]: WcfService -> WebApi
От: takTak  
Дата: 15.05.20 09:43
Оценка:
T>>спеациально для "тебя и меня" создали gRPC: там всё почти всё так, как в WCF, и скорость исполения- в разы более шустрая, чем в Web API

R3>Краем глаза посмотрел — там какой-то описательный файл надо создавать. Это то же далеко от WCF.


чего-то не туда ты смотрел...

недели четыре назад я подобное уже делал


https://protobuf-net.github.io/protobuf-net.Grpc/gettingstarted
https://github.com/protobuf-net/protobuf-net.Grpc
Re[4]: WcfService -> WebApi
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 15.05.20 10:39
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>В совокупности один .proto написать проще, чем классы, service contract, service class. ...


В WCF я ничего этого не писал. Может студия писала.
Единственное, что писал — преобразование данных между клиентом и сервером. Хотя в каких-то случаях можно и без этого обойтись.
Вселенная бесконечна как вширь, так и вглубь.
Re[4]: WcfService -> WebApi
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 15.05.20 10:42
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>В совокупности один .proto написать проще, чем классы, service contract, service class. А главное gRPC кроссплатформенный, в отличие от WCF. То есть тот же .proto файл можно использовать для создания клиента на C++ например.


Ну вообще то WSDL тоже кроссплатформенный. Другое дело, что WCF сервер в Коре не будут портировать.
Кроме того уже по существующим классам создать прото. Как Wsdl или swagger https://docs.microsoft.com/ru-ru/aspnet/core/tutorials/getting-started-with-nswag?view=aspnetcore-3.1&tabs=visual-studio
и солнце б утром не вставало, когда бы не было меня
Re[5]: WcfService -> WebApi
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 15.05.20 11:01
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, gandjustas, Вы писали:



G>>В совокупности один .proto написать проще, чем классы, service contract, service class. А главное gRPC кроссплатформенный, в отличие от WCF. То есть тот же .proto файл можно использовать для создания клиента на C++ например.


S> Ну вообще то WSDL тоже кроссплатформенный.

Да, только WFC это не WSDL, а гораздо шире. Если оставаться в рамках basicHttpBinding, то WFC не особо нужен.

S> Другое дело, что WCF сервер в Коре не будут портировать.

Для коре есть WCF клиент. Который правда только с basic и дружит.

S>Кроме того уже по существующим классам создать прото. Как Wsdl или swagger https://docs.microsoft.com/ru-ru/aspnet/core/tutorials/getting-started-with-nswag?view=aspnetcore-3.1&tabs=visual-studio

swagger\openapi надо отдельно подключать, он по умолчанию не включен. И, несмотря на крутость этой возможности, мало кто использует swagger в своих проектах.
Re[6]: WcfService -> WebApi
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.05.20 08:15
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, Serginio1, Вы писали:


S>>Здравствуйте, gandjustas, Вы писали:



G>>>В совокупности один .proto написать проще, чем классы, service contract, service class. А главное gRPC кроссплатформенный, в отличие от WCF. То есть тот же .proto файл можно использовать для создания клиента на C++ например.


S>> Ну вообще то WSDL тоже кроссплатформенный.

G>Да, только WFC это не WSDL, а гораздо шире. Если оставаться в рамках basicHttpBinding, то WFC не особо нужен.

S>> Другое дело, что WCF сервер в Коре не будут портировать.

G>Для коре есть WCF клиент. Который правда только с basic и дружит.

S>>Кроме того уже по существующим классам создать прото. Как Wsdl или swagger https://docs.microsoft.com/ru-ru/aspnet/core/tutorials/getting-started-with-nswag?view=aspnetcore-3.1&tabs=visual-studio

G>swagger\openapi надо отдельно подключать, он по умолчанию не включен. И, несмотря на крутость этой возможности, мало кто использует swagger в своих проектах.

Поискал .Net Core Soap Service

Нашел

No one has any doubt about the extensibility of Dotnet Core. That’s one of the reasons that right after the launch of Dotnet Core, developers stated moving from .Net to .Net Core, knowing that .Net Core is missing some of the great Features of .Net Framework.
Soap Web Services or WCF was one of that feature that was missing in .Net Core from his earlier release. It was one of the most requested & searched features of .Net Core Framework. So, after 3 months of Dotnet Core release, Mike from Microsoft wrote a blog post about implementing a middleware component for handling SOAP requests & also provided a functional version of the blog’s sample code here: https://github.com/DigDes/SoapCore.
In this article, I’m going to Develop Soap Web Services using .Net Core. A NuGet package is also available for SoapCore. Using this we can take all the advantages of top features such as routing and filters.


Ну и https://github.com/DigDes/SoapCore соответственно. Так, что можно портировать basicHttpBinding WCF
и солнце б утром не вставало, когда бы не было меня
Re[4]: WcfService -> WebApi
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 20.05.20 07:42
Оценка: 2 (1)
Здравствуйте, gandjustas, Вы писали:


T>>>спеациально для "тебя и меня" создали gRPC: там всё почти всё так, как в WCF, и скорость исполения- в разы более шустрая, чем в Web API


R3>>Краем глаза посмотрел — там какой-то описательный файл надо создавать. Это то же далеко от WCF.

G>А в чем сложность файл создать?
G>https://docs.microsoft.com/ru-ru/aspnet/core/grpc/basics?view=aspnetcore-3.1
G>В совокупности один .proto написать проще, чем классы, service contract, service class. А главное gRPC кроссплатформенный, в отличие от WCF. То есть тот же .proto файл можно использовать для создания клиента на C++ например.

Есть https://github.com/Cysharp/MagicOnion

Контракт выглядит так
public interface IMyFirstService : IService<IMyFirstService>
{
    UnaryResult<string> SumAsync(int x, int y);
    Task<UnaryResult<string>> SumLegacyTaskAsync(int x, int y);
    Task<ClientStreamingResult<int, string>> ClientStreamingSampleAsync();
    Task<ServerStreamingResult<string>> ServertSreamingSampleAsync(int x, int y, int z);
    Task<DuplexStreamingResult<int, string>> DuplexStreamingSampleAync();
}


.proto генерится
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.