2011-06-30 9 views
1

私は.NETプラットフォーム(旧ASPer)を初めて使い、クエリーストリングのデータを取り込んで処理するシンプルな.aspxスクリプトをプロジェクトに持っています。彼らはどちらも同じSubs、関数を使用しているので、コードを共通のresource.vbファイルに移動したいのは当然です。いくつかの読書を済ませたら、自分のオプションがコードビハインドタイプの設定で、Subs、Functionsを.vbファイルに置き、そのファイルをApp_Codeに配置するように見えます。VB.Net:複数のファイルに共通のコードを含める

したがって、コードビハインドモデルは、両方のファイルで機能が共有されるため、ここでは意味をなさないようです。 /App_Code/resources.vbで潜水と機能を配置し、ルーチンのいずれかを呼び出すしようとしたとき、私は次のエラーを取得しています:

Statement is not valid in a namespace 

this answerを読むに、私は最後の解決策は大丈夫だろうと思ったが、そうではありません。すべてのポインタ?このソリューション全体は単純で移植性があり、誰かがファイルをアップロードするだけでドメインに展開できるため、移植性も重要です。

おかげで、

ポール

答えて

2

VB.NETの基本的なビルディングブロックは、クラス、あるいはモジュールです。関数をコードファイルにダンプするだけでは、クラスやモジュールに関連付ける必要があります。簡単な修正のために

、単にモジュール内に置く:

Module FooBar 
    ' Your methods here 
End Module 

しかし、それはコードのにおいがあり、それが手に負えなくなるせてはなりません。 .NETは本質的にオブジェクト指向であるため、各クラスに1つの責任があり、それに応じたアクションを実行する一貫したアーキテクチャを開発することにいくつか考えてください。

SOLID principlesを参照)

+0

ありがとう。それでは、「ヘルパー」機能のための規約は何ですか?それは私が持っているものです。ファイルの存在をチェックする、いくつかのハッシュを計算するなどの一般的なことです。 –

+0

@Paul規約はそれらを持つことではありません:ヘルパーメソッドは一般的にコードの匂いです。または、本当に必要な場合は、[拡張メソッド](http://msdn.microsoft.com/en-us/library/bb384936.aspx)(モジュールに存在)またはクラスまたはモジュールの共有メソッドとして。 –

関連する問題