Как предоставить веб-интерфейс для приложения.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 на другие серверы в будущем.

Другие вопросы по тегам