2016-05-09 5 views
1

Я совершенно не знаком с Xamarin и мобильной разработкой. Мой первый вопрос - разумная архитектура - хорошая практика использовать существующий Rest api для переноса данных с конца мобильного клиента.Лучший способ общения с сервером в Xamarin?

Я копаю Google, документы Xamarin Azure, но не нашел удовлетворенной статьи. Кроме того, у нас есть приложение для внешнего интерфейса, которое потребляет REST apis от Azure.

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

Благодаря

несколько ссылок, которые я прошел через

https://azure.microsoft.com/en-us/documentation/learning-paths/appservice-mobileapps/

http://www.davevoyles.com/asp-net-web-api-vs-azure-mobile-services/

https://azure.microsoft.com/en-us/blog/azure-mobile-services-why-should-asp-net-developers-care/

http://weblogs.asp.net/scottgu/azure-virtual-machine-machine-learning-iot-event-ingestion-mobile-sql-redis-sdk-improvements

https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-value-prop/

https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-ios-get-started/

https://azure.microsoft.com/en-us/documentation/articles/partner-xamarin-mobile-services-ios-get-started/

+1

Нет «лучшего», это зависит от контекста ваших других потребностей. Xamarin толкает Azure, что означает, что вы получите хорошую поддержку в этом маршруте. Конечно, нет хороших способов. Услуги WCF, работающие на iOS, интересны, как минимум. –

+1

Всё зависит от меня. Если у вас есть существующий бэкэнд с услугами REST, то очевидно, что клиент REST, вероятно, имеет смысл. Если у вас есть служба WCF, WCF-клиент имеет смысл. Если вы используете Azure/Google/Amazon, то использование соответствующей клиентской библиотеки имеет смысл. Во многих случаях достаточно простого HTTP-запроса. Это действительно зависит от требований проекта, от вашей ИТ-инфраструктуры и т. Д. Нет единого «лучшего» способа. – Jason

+0

Спасибо, ребята. Я немного смущен этим. Если я хочу использовать автономную синхронизацию, я считаю, что мне нужно использовать комплект sdk, не так ли.Итак, где же все бизнес-логики и вызов базы данных, запрос данных произойдет, если я не использовал rest apis? (очевидно, я считаю, что это в мобильном приложении, которое я не хочу делать.) в соответствии с вашим прошлым опытом, какой подход даст лучший пользовательский опыт? Я имею в виду подход API для отдыха или Azure-приложения ?. Мое приложение имеет небольшие транзакции данных через API. , исправьте меня, если я ошибаюсь в любом месте. Спасибо – PEO

ответ

2

Если вы просто хотите, чтобы потреблять ваш существующий сервер REST API, очевидный шаг заключается в создании клиента REST в Xamarin. Забудьте клиента Azure для мобильных служб для Xamarin или чего-нибудь связанного, потому что это потребует изменений на вашем сервере.

Что касается создания клиента REST, существует несколько альтернатив, но я рекомендую Refit как более простой и быстрый способ сделать это. Например, вы объявляете свои методы REST в простом интерфейсе:

public interface IGitHubApi 
{ 
    [Get("https://stackoverflow.com/users/{user}")] 
    Task<User> GetUser(string user); 
} 

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

var gitHubApi = RestService.For<IGitHubApi>("https://api.github.com"); 
var octocat = await gitHubApi.GetUser("octocat"); 

Минус не использует клиент Azure Mobile Service является то, что если вам нужно любым автономным/онлайн Syncronization У Вас будут сделать это по своему усмотрению. Но, по моему опыту, синхронизация данных клиент-сервер является краеугольным камнем, который не нужен вообще в подавляющем большинстве приложений.

+0

круто спасибо xleon. Это то, чего я ожидал. спрятанный ответ, почему я должен использовать или не мобильную услугу. – PEO

Смежные вопросы