0

約束を下回り、成果を上げようとする私の絶え間ない努力の中で、プログラマーではない上司が使用できる単純な .Net アプリケーションを作成するための .Net ツールを作成しようとしています。コードを作成してコンパイルするにはどうすればよいですか?

意図の説明:バーコード ラベル アプリを作成し、いくつかのオプションを選択し、いくつかのテスト印刷を行ってから、アプリケーションを作成して再利用できるようにするように依頼するのではなく、上司に依頼してほしい。しかし、他のマシンで再利用する出力アプリケーションを作成するにはどうすればよいでしょうか?

また、これはひどい考えですか、それともメリットがありますか?

編集:私の元の質問よりも構成可能性を提案するすべての人へ: 内部使用のためにリリースするすべてのアプリは、基本的に日雇い労働者によって使用されており、上司はアプリケーションが静的で構成不可能であることを好みます。そうは言っても、私たちのアプリの中には、必要な仕様に合わせて作成されているため、5、6 年変更されていないものもあります。ここ数週間で、彼らは 2 つの新しいバーコード アプリをリクエストし、3 つ目のアプリをリクエストしました。

4

4 に答える 4

2

大変な作業ですが、これは可能です。

私はこれを自分で試したことはありませんが、そのようなアプリケーション (技術的には「ドメイン固有言語」として知られています) を作成する最も簡単な方法は、動的言語 (IronPython や Boo など) から始めて、その上に言語 (動的言語を使用すると、新しいコマンドを追加できます)

Ayende Rahien という名前の私の友人は、まさにそれを行うことについての本を書いています: 「Boo の DSL: .NET のドメイン固有言語」

于 2010-08-16T14:15:07.073 に答える
1

基本的に、アプリの外観とバーコードの印刷方法を選択し、そこから機能する新しいアプリを生成しますか? つまり、さまざまな (カスタマイズされた) 種類のバーコード プリンター アプリを作成したいだけですか?

もしそうなら、選択可能なすべてのオプションをデータとして扱うことをお勧めします。何でも簡単に選択できるジェネレーター アプリを作成し、それをデータ ファイルに書き込みます。データ ファイルを読み取り、ユーザーがバーコードを作成できるようにする 2 つ目のアプリを作成します。この 2 番目のアプリとデータ ファイルは、生成されたアプリケーションであり、ジェネレーター アプリと共にデプロイします。ジェネレーターは、ユーザーが出力ファイル名を選択できるようにし、2 番目のアプリをデータファイルと共にその場所にコピーします。これは 2 ファイルのソリューションですが、カスタム バーコード印刷アプリを「作成」して展開することができます。

絶対に単一ファイルのソリューションでなければならない場合は、リソース API を確認してください。これにより、2 番目のアプリのリソースを更新できる可能性があるため、データ ファイルを実行可能ファイルに挿入できます。

これがより多くのことである場合、つまり、ユーザーが考えもしなかった機能を追加できるようにしたい場合は、James Curran が説明するように、スクリプト言語の方がうまくいく可能性があります。

于 2010-08-16T14:32:47.840 に答える
0

アプリケーションを構成するという意味ではありませんか?

話しているオプションをユーザーに提供し、それらをデータベースに保存して、他のユーザーがこれらの設定を利用できるようにします。

于 2010-08-16T14:15:59.813 に答える
0

OK、動的言語の DSL に関する私の最初のアイデアが気に入らなかった場合は、言語全体をゼロから作成する必要があります。つまり:

  • 構文を定義します。
  • ソースコードを解析してトークン化します。
  • 構文木から意味命令を作成します。(つまり、「コンパイルする」)
  • これらの命令から IL コードを生成します。

これはかなりの量の作業ですが、役立つツールがいくつかあります。

  • Ironyは、構文解析の作業の多くと、コンパイルとコード生成の一部を行います。
于 2010-08-16T15:04:20.167 に答える