Приложение .NET для написания и создания другого приложения. - PullRequest
0 голосов
/ 16 августа 2010

В своем постоянном стремлении к обещаниям и чрезмерным поставкам я стремлюсь создать инструмент .Net для создания простых приложений .Net, которые могут использовать начальство непрограммиста. Как мне написать и скомпилировать код?

Объяснение намерений: Я хочу, чтобы мои начальники вместо того, чтобы просить меня создать приложение с этикеткой со штрих-кодом, выбрать несколько вариантов, сделать несколько пробных отпечатков, а затем создать и подготовить приложение к повторному использованию. , Но как мне написать выходное приложение для повторного использования на других машинах?

Кроме того, это ужасная идея или какая-то заслуга?

Редактировать: Всем тем, кто предлагает возможность конфигурирования поверх моего первоначального вопроса: все приложения, которые мы выпускаем для внутреннего использования, используются, по сути, в качестве дневного труда, и мои начальники предпочитают, чтобы приложения были статичными и не настраиваемыми. При этом, некоторые из наших приложений не изменились за 5 или 6 лет, потому что они были сделаны в соответствии с требуемыми спецификациями. За последние несколько недель они запросили 2 новых приложения со штрих-кодом, третье - мимоходом.

Ответы [ 4 ]

2 голосов
/ 16 августа 2010

Это возможно, хотя много работы.

Я сам не пробовал, но я скажу, что самый простой способ создать такое приложение (технически известный как «язык, специфичный для предметной области») - это начать с некоторого динамического языка (такого как IronPython или Boo) и создайте свой язык поверх него (динамические языки позволяют добавлять новые команды)

Мой друг, которого зовут Ayende Rahien, даже написал книгу о том, как именно: "DSL в Boo: специфичные для домена языки в .NET"

1 голос
/ 16 августа 2010

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

Если это так, я бы рекомендовал рассматривать все выбираемые параметры как данные. Создайте приложение-генератор, которое позволит вам легко выбирать что угодно и записывать это в файл данных. Создайте второе приложение, которое будет читать в файле данных и позволит пользователю создавать штрих-коды. Это второе приложение вместе с файлом данных является вашим сгенерированным приложением, и вы развертываете его вместе с приложением-генератором. Затем генератор может позволить пользователям выбрать имя выходного файла и скопировать второе приложение вместе с файлом данных в это место. Это двухфайловое решение, однако оно позволяет «создавать» и развертывать пользовательские приложения для печати штрих-кодов.

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

Если это примерно больше , т. Е. Вы хотите, чтобы пользователи могли добавлять функции, о которых вы не думали, вам, возможно, повезет больше с языками сценариев, как объясняет Джеймс Керран.

0 голосов
/ 16 августа 2010

Хорошо, если вам не понравилась моя первая идея о DSL на динамическом языке, то вы должны создать весь свой язык с нуля.Это означает:

  • Определение синтаксиса.
  • Разбор и токен исходного кода.
  • Создание инструкций значения из дерева разбора.(т. е. «компилировать его»)
  • сгенерировать код IL из этих инструкций.

Это значительный объем работы, хотя есть некоторые инструменты, которые могут помочь:

  • Ирония выполняет большую часть работы по синтаксическому анализу и части компиляции и генерации кода.
0 голосов
/ 16 августа 2010

Разве вы не имеете в виду настройку приложения?

Дайте пользователю варианты, о которых вы говорите, и позвольте им сохранить их в базе данных, чтобы другие пользователи могли воспользоваться этими настройками,

...