Можете ли вы создать веб-интерфейс с помощью .Net? - PullRequest
0 голосов
/ 17 октября 2010

У меня есть приложение WPF, которое я хочу преобразовать в приложение, запущенное из браузера. Причина в том, что WPF не работает на Mac / Linux, а Silverlight не подходит из-за ограничений безопасности.

Основная идея - превратить приложение в приложение, похожее на веб-сервер, и полностью обрабатывать пользовательский интерфейс в формате html / ajax. Этот «веб-сервер» не зависит от WPF / Winforms, поэтому может работать и на Mono. И вы даже можете управлять приложением со своего устройства Android / iOS, находясь в дороге.

Мой вопрос: возможно ли создать этот пользовательский интерфейс с помощью .NET? Код для части веб-сервера не является проблемой, но я борюсь с фактическим HTML, который обслуживается. Например, когда кто-то нажимает кнопку, мне нужно привязать событие к этому. Я должен написать много javascript для всех этих маленьких «событий», для простых элементов управления, таких как списки, индикаторы выполнения и т. Д. Было бы намного проще, если бы я мог разработать веб-интерфейс из VS. Хотя он поддерживает ASP, я не могу использовать его конструктор страниц, потому что у конечного пользователя не будет запущен сервер ASP на настольном ПК.

Итак, каков наилучший подход для разработки этих динамических страниц с использованием .NET? Или это просто невозможно?

РЕДАКТИРОВАТЬ: Чтобы было понятнее, это не интернет-приложение. Пользователь запускает серверную часть локально и подключается к 127.0.0.1:80 для просмотра пользовательского интерфейса приложения.

РЕДАКТИРОВАТЬ II: Поскольку они, кажется, много путаницы, позвольте мне привести пример похожего приложения: SABnzbd. Это бинарный репортер новостей, который вы устанавливаете как «Службу Windows», и им можно управлять через веб-браузер. Он мультиплатформенный и написан на Python. Я хочу принять тот же подход, только с использованием (VB) .NET

Ответы [ 6 ]

1 голос
/ 17 октября 2010

Если вы готовы переписать графический интерфейс, почему бы просто не использовать GTK # или Winforms?Оба работают на Windows + Linux.Проверьте В чем разница между GTK # и Windows Forms? для сравнения.

1 голос
/ 17 октября 2010

Позвольте мне начать с да:Вы можете создать веб-интерфейс, используя .Net.

Во-вторых, позвольте мне сказать, что в вашем вопросе так много неверного, что трудно понять, с чего мне начать.


Silverlight недоступен из-за ограничений безопасности

Да?!?


Код для части веб-сервера непроблема

Зачем вам писать свой собственный веб-сервер?И почему вы знаете, как это сделать, и не знаете, что такое ASP.Net?


Хотя он поддерживает ASP, я не могу использовать его конструктор страниц, потому что конечный пользовательна их настольном ПК не будет работать ASP-сервер.

Ха?!?Во-первых, какое отношение имеет дизайнер страниц к тому, как визуализированный html достигает пользователя?Во-вторых, вашим пользователям не нужно будет запускать сервер на своей машине.Ваш веб-сервер является сервером.Вашим пользователям потребуется только браузер.


Самый простой способ преобразовать ваше существующее приложение WPF в веб-приложение - это преобразовать его в Silverlight.Если (как вы говорите) вы не хотите этого делать, то я предлагаю вам заглянуть в ASP.Net.Если вы устанавливаете IIS (бесплатно с Windows Server), вы можете легко и бесплатно развернуть ASP.Net.Это позволит передавать контент на компьютеры Mac, Windows, Linux и т. Д. Вашим пользователям не нужно будет запускать сервер ASP на своих компьютерах.Им нужен только браузер.

ASP.Net позволяет привязывать обработчики событий к таким событиям, как нажатия кнопок.Это также позволяет вам динамически генерировать ваши страницы.

РЕДАКТИРОВАТЬ (чтобы ответить на отредактированный вопрос)

РЕДАКТИРОВАТЬ: чтобы сделать это более ясным, это неинтернет-приложение.Пользователь запускает демон веб-сервера / http локально и подключается к 127.0.0.1:80 для просмотра пользовательского интерфейса приложения.

Если пользователь запускает веб-сервер и клиентское приложение локально, точто ты приобрел?Если вы хотите, чтобы это приложение работало на нескольких платформах, вам все равно придется написать свое приложение для поддержки этих платформ (независимо от того, пишете ли вы веб-сервер или графический интерфейс).

0 голосов
/ 05 марта 2011

Теперь вы заявляете, что будете использовать silver-light для веб-приложения. Разве это не избавляет от всей причины, по которой вы выбрали архитектуру клиент-сервер? Серьезно, сколько телефонов работает на Silverlight? Вы по-прежнему можете использовать другие компьютеры, но это, похоже, не так полезно, как телефоны. Как и некоторые другие предложили, используйте Gtk # для пользовательского интерфейса. Вам придется писать порты Android / iOS в любом случае.

0 голосов
/ 17 октября 2010

Все время я думал только о двух возможных решениях:

  • Клиент HTML5 / AJAX + серверное приложение .NET (моносовместимое)
  • Приложение Silverlight (из браузера +Повышенное доверие)

Проблема с решением HTML5 / Ajax заключалась в том, что .NET не предлагает никакого способа разработки пользовательского интерфейса.

Проблема с решением Silverlight заключалась в том, что «повышенное доверие» все еще не давало мне достаточно разрешений.

CodeInChaos и Blindy указали мнеправильное направление, третье решение:

  • Клиент Silverlight + серверное приложение .NET

Я буду использовать Silverlight только для клиентской части, а не для всего приложения.И общаются с сервером .exe через localhost-соединение (JSON или что-то подобное).Таким образом, я могу спроектировать пользовательский интерфейс, используя .NET, не имея ограничений Silverlight и полный доступ к файловой системе / реестру / сокетам.

0 голосов
/ 17 октября 2010

Почему бы не создать клиентское приложение, которое использует GTK # для пользовательского интерфейса?- тогда он будет использоваться на всех платформах.

0 голосов
/ 17 октября 2010

Безопасность 101 - клиент считается враждебным. Любой клиент, в любой архитектуре. В Silverlight нет ничего небезопасного , особенно , поэтому, если это отвечает вашим другим потребностям, используйте его. И проверить все на сервере; что вам нужно сделать в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...