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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Excel(エクセル) エクセル・スプレッドシートで、一定数を超えたらゼロから再累計する方法 8 2022/05/28 03:52
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- 戸籍・住民票・身分証明書 マイナンバーカードの更新について教えてくださいな マイナンバーカード更新の時期が来たので携帯で済ませ 2 2023/07/31 01:47
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(教育・科学・学問) 受験 1 2022/05/12 11:09
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
【ASP.NET】 独自で作成したクラスが認識されない
その他(プログラミング・Web制作)
-
[ASP.NET]DropDownListのDB連携のやり方。
Microsoft ASP
-
ASP内で他のASPファイルを読み込む方法
Microsoft ASP
-
-
4
ASP.NETのコントロールの値をJavaScriptで取得
JavaScript
-
5
ASP.netで、CheckBoxListのSelectedIndexChangedが発生しません!
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ラッパークラス」の存在意義...
-
interface,extend,implementの...
-
C# 「データが失なわれる可能性...
-
メソッドの引数にクラス名を渡す
-
オーバーライドとラッパーの違い
-
setTextについて
-
絶対パス ⇒ フォルダかファイル...
-
compareToにおける「自然順序付...
-
インターフェースの利点は?
-
vb.net 自作プロパティの削除に...
-
抽象クラスからオーバーライド...
-
抽象クラスをJUNITでテストする...
-
ASP.NETでの共通コードの書き方...
-
c++でのヘッダーファイルの循環...
-
Javaのインスタンス化の構文の...
-
「IOException は対応する try ...
-
エクセルVBAで、条件に一致する...
-
「タイプ初期化子が例外をスロ...
-
オブジェクト指向プログラミン...
-
生成したインスタンスを削除す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
(vba)他のアプリケーションの右...
-
抽象クラスをJUNITでテストする...
-
「ラッパークラス」の存在意義...
-
ASP.NETでの共通コードの書き方...
-
JTextFieldの入力制限
-
「継承されたメソッドの可視性...
-
VB DLLプロジェクトについて
-
C# 「データが失なわれる可能性...
-
c++でのヘッダーファイルの循環...
-
【C#】クラスのコンストラクタ...
-
「IOException は対応する try ...
-
メソッドの引数にクラス名を渡す
-
ファイルパスが取得出来ない(P...
-
ゲッターを使わないで変数にア...
-
Javaのインスタンス化の構文の...
-
オーバーライドとラッパーの違い
-
vb.net 自作プロパティの削除に...
-
なぜインタフェースを使うのか?
-
VBがオブジェクト指向言語でな...
おすすめ情報