販売するWebベースのアプリケーションを開発する際に考慮すべき一般的な事項は何ですか[非公開]

StackOverflow https://stackoverflow.com/questions/189644

質問

社内顧客向けのアプリケーションを開発しています。要件の1つは、他の組織に販売される可能性があるような方法で開発されることです。このアプリケーションは、寄付、寄付者、参加者、イベントを管理する資金調達組織の追跡アプリケーションです。認証用のプラグインアーキテクチャを開発し(承認は内部で処理されます)、外部ディレクトリから人口統計データを取得する必要があることは既に知っています。

アプリケーションはASP.NET/C#/Linq/SQL Server上に構築されます。現時点では、代替データベースをサポートすることはあまりありませんが、必要に応じて、異なるLinqドライバーを使用して将来これを行うことができると考えています。

これまでに作成したすべてのWebアプリケーションはカスタム実装であるため、プラグインや構成アイテムを介して対処する必要がある他のものがあるかどうかを知りたいです。任意の入力が役立ちます。

ありがとう。

役に立ちましたか?

解決

「すべてを行う」ことを試みないように注意してください。フレームワーク。これは、多くの開発者が最初のいくつかのマスマーケットソフトウェアアプリを構築しようとするときによくある間違いです。

既に顧客がいて、おそらく彼らはアプリケーションの初期バージョンをバンクロールしています。この顧客が必要とするものをできるだけ早く提供する必要があります。そうしないと、大衆市場について考える前に失敗します。

自分自身に感謝し、これがアプリケーションをこれまでに使用または購入する唯一の顧客であることを期待してください。過去に他のカスタムアプリを設計した場合とまったく同じように、アプリケーションを設計します。

後から他の顧客にスケールアウトするために必要なことは、asp.netの標準の機能にできるだけこだわり、できるだけシンプルで無駄のない状態に保ち、できるだけ多くの"高度な"バージョン1.xの機能を使用できます。

1.xが試験場になります。最初の顧客が必要としていることを実行し、非常に適切に実行するアプリケーションを必ず配信してください。

成功し、1.xが最初の顧客の要件のほとんどを実際に満たす場合、顧客のほとんどのニーズを満たすアプリケーションもあることがわかります。おめでとうございます、あなたはすでに実行可能な商業市場のアプリケーションを持つためのほとんどの方法です!

注意すべき事項:

  1. 本当に複数のデータベースプラットフォームをサポートする必要がありますか?もちろん、「一部」があるかもしれません。 「好む」かもしれない顧客MySqlからSQL Server。いくつかの設定オプションを変更するか、インストーラーで正しい選択を行うだけで、Oracle、MySQL、VistaDB、SQL Serverなどをサポートできる魔法のDALを作成しようとするでしょう。しかし、実際には、この種の「プラットフォーム」は中立性は設計に非常に複雑さを追加し、利用する機能に厳しい制限を課します。プロバイダーの設計パターンのようなものは、この種の設計はそれほど難しくないと思うようにあなたをだますかもしれません...しかし、あなたは間違っているでしょう。潜在的な市場の90%で受け入れられるように、実用的でアプリケーションを設計してください。特にデータアクセスでは、ASP.NETアプリケーションをインストールして実行する市場の90%以上が、SQLExpressまたはSQL Serverを使用する能力もあり、喜んで使用していると言っても安全です。ほとんどの場合、複数のデータベースをサポートすることで追加の販売を行うよりも、SQLサーバーのみを設計することで、はるかに多くのお金と時間を節約できます。

  2. 「すべて」を作成しないようにしてください。オンライン管理ツールで設定可能。たとえば、アプリケーション内のすべてのテキストを管理ツールで構成できるようになります。それは素晴らしいことですが、高価です。開発に時間がかかります。アプリケーションの範囲を広げて、他の方法では必要のない管理ツールを大量に含める必要があります。また、顧客の90%がアプリケーションをより複雑で使いにくくします。デフォルトのテキストは気にしません。

  3. ローカライズを慎重に検討してください。もしあなたが一つの言語に固執する大きな国際市場を持つとは思わないなら。ローカライズはそれほど難しくありませんが、コードのすべての側面を少し複雑にします...そして、それはどんなサイズのアプリケーションでも大きくなります。私の経験則では、最初の市場の言語のみを対象としています。アプリが他の市場に興味を持っている場合、バージョン1.0からいくらかの現金を回収し、アプリケーションが最初に実行可能な市場を持っていることを証明した後、バージョン2.xでローカライズを行います。ただし、複数の言語または文化に参加することがわかっている場合は、ローカライズを最初からサポートしてください。

  4. バージョン1.0の場合、心配しないでくださいm

他のヒント

最も重要なことは、完全に汎用的であるように設計することです。つまり、クライアント固有の情報がハードコーディングまたは埋め込まれていないことです。

クライアント固有のものはすべて、メタデータを介して構成可能でなければなりません。これを行う方法は完全にあなた次第ですが、主な方法はXML、データベース、またはプロパティファイルを使用することです。

このように設計すると、それぞれが独自の構成ファイルまたはデータを持つ任意の数のクライアントに販売される可能性があります。

Abaraxはすばらしい答えを出しました。話し言葉(英語、フランス語、ドイツ語など)と組織の言語の両方で、ローカライズを検討する必要があることを強調します。タイムシート、ドケット、または作業指示書と呼ばれる場所もあります。すべてが常に何かと呼ばれているものと一致しない場合、それぞれが泣き叫び声をあげます。

オープンソーステクノロジーを使用している場合は、すべてのライセンス情報を1か所に保持するために少し時間を費やしてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top