• 締切済み

ASP.NETでの共通コードの書き方を教えてください。

ASP.NETでの共通コードの書き方を教えてください。 いつもお世話になっております。 最近、microsoft Accessで作成したシステムを、Visual Wev Developer 2008を利用して、asp.netに移行しようとしております。 そこで質問なのですが、VBAなどでは、各フォームで共通利用するグローバル関数(Function)をモジュールオブジェクトに作成できましたが、ASP .NETでは、各ページで共通利用する関数をどこに記載したらいいのでしょうか。(たとえば、共通の計算式など) 初歩的なことかもしれませんが、具体的な手順をご指導いただければ大変助かります。 よろしくお願いいたいします。

みんなの回答

noname#259269
noname#259269
回答No.2

Web サイトで構築の前提で。。。 ソリューションエクスプローラで、プロジェクトを右クリックし、「ASP.NET フォルダの追加」メニューから「App_Code」フォルダを追加します。 このフォルダの中に、クラスファイルを追加します。クラスファイルの中では Shared Sub New() End Sub と記載すると、共通利用できるようになります。グローバル関数は、 Public Shared Function XXXX() As String End Sub といった感じで記載します。 Web 開発に慣れておられるのであれば蛇足ですが、 このファイルにグローバル変数を定義して、複数ページから書き換えるような事をすると、複数ユーザ間でデータを共有してしまい滅茶苦茶な事になりますから、その辺り注意してください。

msdesoft
質問者

お礼

丁寧なご説明ありがとうございました。 私は、Webシステム開発初心者のため大変助かりました。

すると、全ての回答が全文表示されます。
  • aspnet
  • ベストアンサー率79% (72/91)
回答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()をあたかも自身のメソッドのように使えます。

msdesoft
質問者

お礼

丁寧なご説明ありがとうございました。 私は、Webシステム開発初心者のため大変助かりました。 少し難しそうですが、これからやってみたいと思います。

すると、全ての回答が全文表示されます。

関連するQ&A