1

複数のモジュールで構成されるC#プロジェクトを最初から開始して、3Dオブジェクトの表示と2Dおよび3DCADファイルの作成を管理する既存のPHP/ ASP / MySQL / Oracle /MSSQLアプリケーションのモジュールで販売できるようにします。ユーザーがすべてのものを作成するために使用できるWebアプリから。

私の質問は、ゼロから始めて、「販売」の観点から始めると、実装、パターンの設計、単体テストなどの優れたプログラミング方法である必要があります...それらを適用する方法をどのように知ることができますか、そして良いチュートリアル/「道を教えて」のようなものはありますか?

  • モジュールで拡張性を提供できるように、クライアントがオーバーライドできるようにするには、どのクラスを使用できるようにする必要がありますか?
  • 「売る」にはどのような「パッケージ」を使うべきですか?DLL、CAB、MSI?
  • ユーザーが独自のDALを生成できるように、SubSonic / NHibernateを使用する必要がありますか?プロトタイプの実装では、Oracleのみを使用します。

私は今ちょっと迷っています、私は何をすべきかを知っていますが、それをどのように達成できるかはわかりません(この完璧なコーディングパスを念頭に置いて)。

良いプログラミングのアイデアは喜んでありがたいです:)

4

6 に答える 6

3

あなたの明確な質問のそれぞれの簡単なヒットについて、私は言います。

統合の方法については、制御プリンシパルの反転と、それが拡張目的でどのように使用されるかを学びます。MEF (Microsoft Extensibility Framework) に注目してください。何に関しては、統合ポイントは、作成しているアプリケーションの種類と対象ユーザーによって大きく異なります。また、サードパーティにどの程度の制御を与えたいかによっても異なります。たとえば、Reflector は、優れた、ほとんど広く開かれたプラグイン構造を備えています。

DLL と CAB は、それぞれライブラリとストレージ形式です。単独では、彼らは多くのことをしません。MSI はインストーラーの 1 つの形式であり、アプリケーションを構成する DLL を含めることができます。使用しているインストーラーの種類に関係なく、使いやすいほど、より多くの人が製品を試すようになります。

データ層自体は必ずしもそれほど重要ではありません。人々はおそらくあなたのアプリケーション用に独自のデータ層を作成することはありません。作成したとしても、拡張フレームワークが機能していれば、好きなものを何でも使用できるはずです。さらに重要なことは、決定した DAL が何であれ、それがあなたにとって重要である場合は、異なるデータベースで実行できるかどうか、およびどれだけの作業が必要かを確認する必要があるということです。また、DAL で使用する機能が、サポートするすべてのデータベースで機能することを確認する必要もあります。NHibernate には、動作するすべてのデータベースで機能しない機能がいくつかあります。

于 2008-11-19T19:51:44.207 に答える
2

アプリケーションは、そのライフサイクルで少なくとも 1 回は書き直します。価値を確立するために何かを手に入れてから、コードがどれほどきれいかを心配してください。

誰も使いたがらない完全にコーディングされたアプリケーションを作成するのに 1 年を費やすこともできますし、2、3 か月を費やして残りの 1 年間をアプリケーションの改善に費やすこともできます。

于 2008-11-19T19:55:46.397 に答える
1

まず第一に、それがどれほど拡張可能であるべきかを考えてください。完全な拡張性を提供するだけでは、安全性と不安定性が失われる危険があります。クラスのオーバーライドを許可できますが、正しいメソッドのみを「仮想」としてマークするようにしてください。販売するパッケージの種類は、ターゲット ユーザーによって異なります。パワー ユーザーをターゲットにしている場合、DLL は「OK」である必要があります。ただし、使いやすいシステムが必要な場合は、MSI またはその他のインストーラーを使用する方が賢明です。

DAL に関しては、それぞれの長所と短所を分析して、適切なものを選択する必要があります。

必ず拡張可能にしてください。ただし、フィードバックを待って、公開する部分を指定することもできます。

于 2008-11-19T19:52:52.173 に答える
1

私はこの本を買うつもりだと思います.それは「それを達成する方法」に関する私の懸念に対処し、ブラッド・エイブラムスの観点からは非常に良いです:)

于 2008-11-20T18:55:45.050 に答える
0

私はあなたが正しいアプローチを取っているとは思わない。「販売」の観点からソフトウェアを設計するべきではありません。ビジネスモデルとそのルールに必要な仕事をするためのソフトウェアを設計します。したがって、「販売」の観点からは、最初に優れた製品を用意することを心配していると思います。ソフトウェア(それがどれほど優れていても、どれほどうまく書かれていないかは関係ありません)が次に来て、あなたは金持ちになります。ソフトウェアが仕事を成し遂げて、あなたの製品がヒットするので。

eBayがどのように始まったかについて聞いたことがありますか?長い間、彼らは非常に成功しましたが、それでも本当に悪いC ++コードを持っていました(そして誰が他に何を知っているか)。

于 2008-11-19T20:23:16.340 に答える
0

最初に機能するものを作成し、次に潜在的な顧客からフィードバックを得ます。

于 2008-11-19T19:51:12.427 に答える