Как предоставить веб-интерфейс для приложения.Net
У меня есть приложение.Net (C#) с графическим интерфейсом WinForms. Кроме того, я хочу предоставить дополнительный веб-интерфейс, чтобы приложением можно было управлять с другого компьютера у себя дома.
Таким образом, часть веб-страниц (значений) должна быть заполнена приложением.
Веб-интерфейс должен работать "из коробки", поэтому пользователь не должен устанавливать или настраивать стороннее программное обеспечение.
Как лучше всего это осуществить?
И второй вопрос: как только это будет реализовано, и я хочу запустить свое приложение на сервере и предоставить доступ нескольким пользователям в Интернете, могу ли я легко перейти на более производительный веб-сервер?
2 ответа
Вот несколько подходов, которые вы можете использовать:
облегченный
Вы можете использовать легкую веб-инфраструктуру, такую как Nancy, для обслуживания страниц и получения данных из вашего приложения / базы данных. Нэнси была разработана для работы в любом месте, что делает ее более подходящей для создания настольных приложений. Вы можете прочувствовать синтаксис Нэнси, прочитав Зачем использовать NancyFx.
Asp.net
Asp.net обычно используется с IIS, но его можно развернуть как настольное приложение. Этот пост в блоге "Лунная лягушка" описывает, как вы можете это сделать. В нем упоминается IIS Express, который необходимо установить на компьютер пользователя с помощью официального установщика.
Если вы не занимались разработкой веб-приложений, лучше всего следовать Руководству по Asp.net и сначала создать фиктивное приложение.
Я не использовал ни себя. Asp.net - лучший выбор для большинства разработчиков на C#, и он поможет вам лучше узнать о структурировании веб-приложения. (REST, Контроллеры, Шаблоны / Представления и т. Д.) Но более легкое решение поможет вам быстрее начать работу и может быть более подходящим для настольного приложения.
Обе опции могут быть запущены на отдельном сервере, но будьте осторожны, чтобы отделить бизнес-логику и поиск в базе данных от двух внешних интерфейсов (Gui и веб). Нэнси даже утверждает, что работает на Linux!
Вам также нужно будет выбрать между отображением данных в шаблон или использованием javascript для извлечения данных.
Шаблоны / Просмотр двигателей
И Asp.net, и Нэнси имеют свои собственные предпочтительные механизмы просмотра, такие как NHaml или TextTemplatingFilePreprocessor. Нэнси описывает тех, кого она поддерживает здесь.
Javascript & JSON
В качестве альтернативы вы могли бы создать API, который возвращает JSON, и использовать для этого эти данные, используя интерфейс Javascript, например Ember.js, Knockout.js или Angular.js.
Веб-API ( http://www.asp.net/web-api) может выполнить все, что вам нужно здесь.
В идеале (и в большинстве случаев) ваше приложение WinForms должно сохранять все свои данные в базе данных (желательно через API), и ваш Web Api будет взаимодействовать с базой данных, а не с приложением WinForms.
Да, вы можете перенести Web API на другие серверы в будущем.