ASP.NETでの共通コードの書き方を教えてください。
いつもお世話になっております。
最近、microsoft Accessで作成したシステムを、Visual Wev Developer 2008を利用して、asp.netに移行しようとしております。
そこで質問なのですが、VBAなどでは、各フォームで共通利用するグローバル関数(Function)をモジュールオブジェクトに作成できましたが、ASP .NETでは、各ページで共通利用する関数をどこに記載したらいいのでしょうか。(たとえば、共通の計算式など)
初歩的なことかもしれませんが、具体的な手順をご指導いただければ大変助かります。
よろしくお願いいたいします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
Web サイトで構築の前提で。
。。ソリューションエクスプローラで、プロジェクトを右クリックし、「ASP.NET フォルダの追加」メニューから「App_Code」フォルダを追加します。
このフォルダの中に、クラスファイルを追加します。クラスファイルの中では
Shared Sub New()
End Sub
と記載すると、共通利用できるようになります。グローバル関数は、
Public Shared Function XXXX() As String
End Sub
といった感じで記載します。
Web 開発に慣れておられるのであれば蛇足ですが、
このファイルにグローバル変数を定義して、複数ページから書き換えるような事をすると、複数ユーザ間でデータを共有してしまい滅茶苦茶な事になりますから、その辺り注意してください。
No.1
- 回答日時:
Windows FormやConsole Applicationでしたら、VBAと同じようにグルーバルモジュールが使えますが、ASP.NET Werb Formでは使えませんね。
。ASP.NETで共有コードモジュールを作るには、
1.別プロジェクト(クラスライブラリ)にクラスを作って共用(VWDでは不可)
2.別クラスに作って共用
3.基底クラスを作り継承して共用
のいずれかです。
1と2はVBのころからある方法です(あんまりクラス使ってなかったけど)。
実戦的には、この3者の組み合わせになるでしょう。
いずれも、オブジェクトメンバ呼出しでも、静的メンバ呼出しとしても、どちらでもかまいません。
【C# Webサイトプロジェクトでの例】
プロジェクト->新規エレメント追加->クラスとやると、"App_Code"に入れるよう推奨されるのでOKする。
(App_Code内のクラスはWebサイトプロジェクトで、実行前に自動コンパイルされるため)
2の例
public class Hoge
{
public void moge() {
// インスタンスメソッド
}
public static void smoge() {
// クラスメソッド
}
}
で、ASP.NET WebForm側から、
var hoge = new Hoge(); // インスタンス生成
hoge.moge(); // インスタンスメソッド呼出
Hoge.smoge(); // クラスメソッド呼出
3の例
Web Formの基底クラスである、System.Web.UI.Pageを継承するクラスを作り、各画面にそれを継承させる。
public class BaseForm : System.Web.UI.Page
{
protected void moge() {
}
}
以降の*.aspx.csファイルはすべて、
public class test : BaseForm{}
CodeFileを使わない場合でも、*.aspxのPageディレクティブで、
<@# Page....以降略.... inherits="BaseForm" />
とすれば、this.moge()をあたかも自身のメソッドのように使えます。
丁寧なご説明ありがとうございました。
私は、Webシステム開発初心者のため大変助かりました。
少し難しそうですが、これからやってみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JTextFieldの入力制限
-
JAVAでCPUなどのシリアル番...
-
抽象クラスをJUNITでテストする...
-
C# 「データが失なわれる可能性...
-
ASP.NETでの共通コードの書き方...
-
委譲って何ですか?
-
インターフェースとトレイトっ...
-
「IOException は対応する try ...
-
「継承されたメソッドの可視性...
-
compareToにおける「自然順序付...
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
-
変数名の付け方
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
-
コマンドプロンプト実行後に画...
-
C#でフォームのオブジェクト名...
-
複数の変数を宣言する時、同時...
-
どこからも呼ばれていない無意...
-
パワーポイントのVBAでテキスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ラッパークラス」の存在意義...
-
C# 「データが失なわれる可能性...
-
interface,extend,implementの...
-
(vba)他のアプリケーションの右...
-
VB DLLプロジェクトについて
-
委譲って何ですか?
-
JavaでのAPIの覚え方ってみさな...
-
setTextについて
-
c++でのヘッダーファイルの循環...
-
【C#】クラスのコンストラクタ...
-
ASP.NETでの共通コードの書き方...
-
C#からDLLを呼びたいのですが・...
-
「継承されたメソッドの可視性...
-
抽象クラスをJUNITでテストする...
-
Commons-Discovery.jarとは?
-
JTextFieldの入力制限
-
「IOException は対応する try ...
-
Javaのインスタンス化の構文の...
-
オーバーライドとラッパーの違い
-
メソッドの引数にクラス名を渡す
おすすめ情報