Цель этого поста — создать стартовый проект для серверной части веб-сервиса.
Позже мы создадим клиент дополненной реальности для Windows 8.
- Давайте начнем с облачного сервера.
- Мобильное приложение отправит GPS-координаты облачного приложения Azure.
- Облачное приложение будет использовать координаты для поиска на Google.com или Bing.com, чтобы найти дополнительную информацию об этих координатах.
- Например, он может искать города и окрестности.
- Облачное приложение вернет эти данные клиенту для отображения на экране с наложением фотографии.
Обратите внимание, что мы выбираем приложение MVC Web API.
- Важно понимать, ПОЧЕМУ я выбираю тип проекта MVC Web API .
- Существует два основных варианта создания проекта веб-сервисов:
- Используйте Windows Communication Foundation — WCF — или
- Используйте ASP.NET Web API , который входит в MVC версии 4.
- Предоставление услуг через WCF также легко сделать.
- Но для этого конкретного сценария мы будем использовать более новый, более современный подход, который ASP.NET Web API привносит в таблицу, по- настоящему охватывая концепции HTTP (URI и глаголы).
- MVC Framework позволяет нам создавать сервисы, которые легче используют некоторые функции HTTP, такие как заголовки запроса / ответа, а также конструкции гипермедиа.
- Оба проекта могут быть протестированы на одной машине во время разработки.
- Посмотрите следующее 1,5-минутное видео, чтобы узнать, как создать облачное приложение MVC4.
Общие сведения о типах ролей для проекта Windows Azure. Что означают эти параметры
- ASP.NET веб-роль
- Это старые школьные веб-формы.
- Это очень устоявшийся шаблон для создания современных веб-приложений.
- Существует хорошо отлаженная экосистема инструментов, документации и ресурсов.
- Но это не подходит для модульного тестирования.
- В нем нет четкого разделения кода и разметки.
- Многие разработчики перешли на ASP.NET MVC, как описано далее.
- ASP.NET MVC3 / 4 веб-роль (что мы выбираем в этих сообщениях)
- Это популярный и мощный фреймворк от Microsoft.
- Это платформа веб-приложений, которая реализует шаблон модель-представление-контроллер (MVC).
- Он также предоставляет возможность через веб-API создавать веб-службы на основе REST. -Мы выберем эту опцию.
- Может проводить модульное тестирование и имеет четкое разделение проблем.
- Веб-роль службы WCF
- Windows Communication Foundation (или WCF) — это среда выполнения и набор API в .NET Framework для создания подключенных, ориентированных на службы приложений.
- Он активно использовался для приложений типа SOA, но дал начало веб-API, поскольку популярность архитектур на основе REST возросла.
- Это вполне приемлемое решение и единственное решение, если вам необходимо поддерживать многие передовые стандарты веб-служб (WS), такие как WS-Addressing, WS-ReliableMessaging и WS-Security.
- В последующих версиях NET Framework 4.0 WCF также предоставляет службы RSS Syndication, WS-Discovery, маршрутизацию и улучшенную поддержку служб REST.
- Рабочая роль
- До сих пор мы занимались веб-ролями. Веб-роли по умолчанию включают в себя Internet Information Server (IIS) внутри ОС Windows Server внутри виртуальной машины, работающей на одном физическом ядре.
- Рабочие роли — это то же самое, что и веб-роли, за исключением того, что IIS отсутствует.
- Это позволяет облачным приложениям запускать фоновые процессы, обычно читая сообщения, помещенные в очереди веб-ролями.
- Рабочие роли могут использовать Windows Azure Storage, как веб-роли.
- Роль рабочего кэша
- Windows Azure Caching supports the ability to host Caching services on Windows Azure roles.
- In this model, the cache can join memory resources to form a cache cluster.
- This private cache cluster is available only to the roles within the same deployment.
- Your application is the only consumer of the cache.
- There are no predefined quotas or throttling.
- Physical capacity (memory and other physical resources) is the only limiting factor.
- Other features include named caches, regions, tagging, high availability, local cache with notifications, and greater API symmetry with Microsoft AppFabric 1.1 for Windows Server.
Understanding VisualController is a key starting point
- VisualController.cs is a file we need to modify.
- It contains the code that will execute when the Windows 8 client submits an HTTP request against the web service.
- This HTTP request will include GPS data.
- This is where we will add some of our code to return the JSON data required by the Windows 8 application.
- The ValuesController class is generated by Visual Studio, and it inherits from ApiController, which returns data that is serialized and sent to the client, automatically in JSON format.
- We will test this file before modifying it. We need to learn how to call methods inside of VisualController.cs
public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string Get(int id) { return "value"; } // POST api/values public void Post(string value) { } // PUT api/values/5 public void Put(int id, string value) { } // DELETE api/values/5 public void Delete(int id) { } }
Key Http Support | Note that the methods above — Get(), Post(), Put(), Delete(). These methods map to specific CRUD operations and HTTP verbs executed by the Windows 8 application. Because it is based on REST, any client capable of http can call into these methods. | |||
Automatic routing of web requests | This is the magic of the ASP.NET Web API framework: it automatically routes the HTTP verbs used by the client directly to the methods defined in the VisualController class, minimizing potential programming mistakes. | |||
Our LocationWebService project is ready to run right now. | The methods in the ValuesController class are self-documenting.
Note that the Get() method in the code below gets called when the client issues the HTTP verb get using the following URL: http://127.0.0.1:81/api/values (The port differs from system to system. If we deploy to a data center, this port is not relevant. The port matters only if you run your project locally on your development machine)
|
Note the video which shows us exactly how to call into a web service method
- Let us now use a browser to test our web service.
- Any browser can be used for this purpose.
- To test the Web Service from a browser, perform the following steps:
- In Visual Studio, click on the Debug menu and choose Start Debugging.
- This will start the various emulators to allow us to run our application on our local dev machine.
- There is a Compute Emulator
- Runs our MVC WebAPI app
- There is a Storage Emulator
- We are not using storage today for this app
- There is a Compute Emulator
- You should see the screen above.
- Notice the web address of http://128.0.0.1:81
- That is port 81 on my machine (yours may differ)
- Notice the web address of http://128.0.0.1:81
- We can call the get() method by simply issuing the following url
- http://127.0.0.1:81/api/values
- This will trigger the ASP.NET Web API application to send the two strings:
- value1 and value2
- This will trigger the ASP.NET Web API application to send the two strings:
- http://127.0.0.1:81/api/values
- Watch the video that illustrates this application running and returning value1 and value2
- We just ran a simple intro sample before we do the real work.
- Now should starting to see that we can call into the cloud application quite easily. We just need to use a URL from a Windows 8 Application.
- We can pass parameters and receive data back.
- The data we pass will be GPS coordinates.
- The data we get back will be location information, such as neighborhood, city, etc.
- We have successfully tested an MVC Web API based cloud project.
- The next step is to enhance it to call another web service to get location information based on GPS coordinates
- This is Step 3
- Question
- Should I keep doing quick videos? Are they helpful?
- No voice yet. Pretty self-explanatory what I’m doing.
- Comments Welcome.