Дротик:io и дартс: HTML является взаимоисключающим

Я столкнулся с ситуацией, аналогичной этой главе, где я хотел бы иметь dart:io и dart:html в одном приложении. Я знаю, что dart:io - это библиотека на стороне сервера, а dart:html - это сторона клиента. Моя ситуация следующая. У меня есть программа для вывода огромного количества текста в файл журнала. Я обнаружил, что Дарт отлично справляется с манипуляциями с текстом. Я хотел взять текст файла журнала, манипулировать им, поместить некоторую информацию в заголовки текстовых полей для удобства чтения и т. Д. И просмотреть страницу.

У меня нет намерений размещать это в Интернете. Это только для моего рабочего компьютера. Мне просто нужны возможности загрузки файлов в dart:io и приятное отображение dart:html. Предыдущий пост был в апреле, а разработка Dart идет быстро. Есть ли сейчас другой способ делать то, что я хочу?

Я знаю, что мог бы написать программу для создания файла HTML с измененным текстом в соответствующих полях, а затем открыть этот файл HTML, но мне эта идея не очень нравится. Есть ли другой способ?

2 ответа

Решение

Вы можете рассмотреть возможность использования этой библиотеки html5lib в приложениях на стороне сервера для генерации вывода HTML. Тогда это просто вопрос открытия файла в браузере. Это также можно автоматизировать, вызвав запуск процесса, который запускает браузер и указывает на созданный вами HTML-файл.

html5lib все еще находится в стадии разработки, но я уверен, что они хотели бы услышать ваши отзывы.

Я согласен с тем, что если все, что вы хотите сделать, это создать статическую веб-страницу, то лучше использовать библиотеку наподобие html5lib. Тем не менее, если вам нравится делать что-то большее, я думаю, что лучше всего подумать о дротике на стороне сервера как о модели, а о стороне клиента как о "отдыхе". Что остальное зависит в основном от того, любите ли вы MVC, MVP, ...

Я был близок к разработке настольного приложения в дартс, но я все еще не нашел достаточно интересный пример, чтобы заставить меня работать. Я думал о том, как бы это сделать, и считаю, что, соединяя две стороны (модель и "остальные") с веб-сокетом, создав простой протокол сериализации (например, json), вы можете легко создать RPC с оберткой на стороне клиента с помощью noSuchMethod() в качестве прокси и на стороне сервера вы используете зеркала. Вы можете создавать обратные вызовы другим способом, если вам нравится использовать веб-сокет. Я полагаю, что Гилад упомянул похожую технику rpc между изолятами в своем выступлении на HTML5 Dev Conf.

Во всяком случае, то, что вы получите, это оба dart:io а также dart:html в том же "приложении", но приложение будет состоять из стороны сервера и стороны клиента. Это то, что я попробую для моего следующего настольного приложения, что бы это ни было:)

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