1

1つのエントリページと1つの結果ページを持つExcelアプリケーションがあります。エントリページに入力されたデータと存在するいくつかの静的テーブルに基づいて、値を計算し、後で結果ページで合計する他のワークシートがいくつかあります。

このアプリケーションをWebアプリケーションに変換し、ロジック全体をExcelからC#に移動する必要があります。いくつかのUIページと1つの結果ページがあり、現在Excelアプリケーションで行われているワークシートの計算は別のC#クラスに移動されます。

このためのツールはありますか、それとも既存のロジックのすべての部分を手動でC#に変換する必要がありますか?手動で行う必要がある場合、ロジックを再構築するためにExcelで計算全体をバックトラックする必要がないように、テキストファイルにロジックを要約するのに役立つツールはありますか?

4

4 に答える 4

2

私はソリューションを「変換」しようとはしません。ゼロからC#でビルドします。それらは異なる言語で書かれており、UIを再利用することはできません。

于 2012-08-04T04:30:41.727 に答える
2

ツールがこれを行うのに役立つとは思えません。そのツールが存在する場合、結果のC#コードはかなり悪いものになると思います。Excelの力の1つは、非常に柔軟なプログラミングスタイルを可能にすることです。欠点は、結果として得られるコードの構造が非常に少ないことです。これにより、人間とマシンの両方にとって、追跡が困難になります。さらに、ロジックは、Excelの数式からVBAマクロまで、複数の形式をとることができ、問題が複雑になります。

対照的に、C#は、非常に特殊な責任を持つクラスの観点から世界を見る傾向があります。プログラムは基本的に、クラス間でのメッセージの受け渡しを調整して、クラスが「互いに話し合い」、協力して作業を完了できるようにします。

その文脈では、せいぜい、翻訳ツールがいくつかの不快なC#手順を生成することを期待します。結局、スプレッドシート(​​VBAなし)は、セル内に配置されてチェーン化された一連の関数であり、機能の一部を所有する意味のあるクラス/エンティティを抽出するための十分な構造が存在しません。

さらに、このアプリケーションを再考することはチャンスであると私は主張します。Webアプリは、Excelができないことを簡単に実行でき、その逆も可能です。「一言一句」の厳密な翻訳ではなく、アプリケーションの精神を維持することに重点を置きますが、元のExcelアプリケーションについてあまり考えずに設計します。

Excelアプリケーションを存在させることの利点は、概念実証がすでにあることです。コードを変換しようとする代わりに、他の計算フィールドに影響を与えるすべての入力ポイントを追跡し(おそらく監査を使用して)、何に影響を与えるかをリスト/図化します(単純なバブルと矢印の図を使用します)。そして、ユーザーが何をしようとしているのか、そして「エンティティ」の観点から何が起こっているのかをわかりやすい英語で説明しようとします。たとえば、ではなく、=A2*(1-A3)「製品の正味コストはそのコスト時間(1-割引率)」と言います。そして代わりに=SUM(A5:A32)、「ユーザーは、注文した製品のコストの概要を求めています。これには、注文の概要を表示できるように、注文の合計コストが表示されます」。ドメインの説明を適切な名前とユースケースで抽出できれば、開発者は、必要なプラットフォームで、これらの要件をサポートする最良のアプリケーションを作成するのに役立ちます。

于 2012-08-04T19:38:29.207 に答える
0

私はfabiopagotiに同意します。魔法の「コンバーター」が利用可能になったとしても、将来のアップデートでこのマシンごとにコード化されたアプリケーションを維持するために、あえて人間は何をしますか?

2番目の質問に答えて、別のヘルパーを探して、これを手に入れることができる[CTRL] + [`]キーの組み合わせを見つけました。このショートカットはすべての数式をセルに表示するので、より快適になります。後ろに何かを逃してはいけません。私は願います。

PS:テキストファイルに?ショートカットを適用して、シートをPDFファイルに「印刷」するだけです。

于 2012-08-04T04:46:21.913 に答える
0

Googleドキュメントを使用できるかもしれません。スクリプトを作成し、数式を使用することができます。

于 2012-08-04T12:13:15.867 に答える