2012-05-02 13 views
0

私の修士論文の一部として、私はアパートの熱最適化のためのソフトウェアを開発するつもりです。このソフトウェアは中規模になり、顧客向けのWebベースのインターフェースとセンサーへのインターフェース(アパートメントに配置されています)を備えています。私は多層アーキテクチャを考えています。システム内の多くのオブジェクトには独自のデータベーステーブルがあります。これは、オブジェクトの保存と取り出しのためのたくさんのコードとSQ​​L文(および時間)を意味します。これはまだソフトウェアを開発する標準的な方法ですか?N-Tierアーキテクチャと冗長データベースアクセス

私はNHibernateを使用すると考えましたが、私には疑問があります。主な理由は次のとおりです。 私はソフトウェア開発にあまり経験がありません。
セッション処理は非常に複雑です。特に、Webインターフェイスとセンサインターフェイスの両方に機能を提供するビジネスレイヤが必要な場合は、非常に複雑です。レイジーローディングのために、これらのインターフェイスでセッションをアクティブにする必要がありますが、プレゼンテーションレイヤーは望ましくないデータアクセスレイヤーを認識します。

他の選択肢はありますか?私はMySql 5.5とC#を使用しています。

+0

いくつのアパートメントがありますか?各アパートにはいくつのセンサーがありますか? –

+0

まだ明確ではありません。おそらくテスト段階で約100であるが、システムははるかに大きなサイズまでスケーラブルでなければならない。各アパートメントには、各部屋に少なくとも1つのセンサーがあります。 – olif

答えて

0

ウェブ開発における現在の正統性は、MVCです。マイクロソフトの土地では、それはASP.Net MVCを意味します。 MSサイトには、ビジネスドメインを表す「モデル」クラスをデータベースと統合する方法を説明する素晴らしいチュートリアルがあります。

ASP.Net MVCでは、Web APIを構築する方法も提供されています。これにより、センサーが同じ基本モデルクラスを使用してアプリケーションと通信できるようになります。

+0

問題は、アプリケーションが主にWebアプリケーションではないということです。重い最適化アルゴリズムが含まれています。 Webパーツは、アパートの温度のログなどの情報を顧客に表示するためのものです。これがn層アーキテクチャを検討している理由です。 Web、最適化アルゴリズム(ビジネスロジックの一部)、センサーとの通信で、同じ基本ロジックとデータベースを使用することができます(コード量を削減し、システムの保守性を向上させる)。 – olif

+0

これは、MVCのポイントのようなものです。「モデル」レイヤーを抽象化することで、ビジネスロジックをドメインモデルに集中させ、特定のビューやコントローラーを追加することで、複数の方法で対話できます。 –

0

repositoryを使用すると、セッションをラップしてレイヤーで結束を促進します。これはquestionを確認できます。あなたはNHibernateのは少し複雑と思われる場合

することは、あなたはEntityFramework 4.3

0

を使用することができますが、1層へのセンサ・データベース通信の抽象化につながるはず固有の論理パーティションを持っている私には思える、と顧客とデータベースの間の通信を別の層に移す。センサー側では、顧客側に情報を提供するための読み取り専用のインターフェースを提供することができますが、熱最適化作業の中核機能は本質的に中間にあります。

これらの部分をどのように分割するべきか考えて、両者の間にきれいなインターフェースを定義できるようにする場合は、プロジェクト全体の複雑さが少なくともいくらか軽減されるはずです。

0

"私はソフトウェア開発にあまり経験がありません"と言ったらNHibernateを注意深く検討します。それは驚くべきツールであり、非常に強力ですが、学習曲線は急峻であり、学習にどれくらいの時間を要しているかによって異なります。しかし、私はそれに本当に満足しています。