• 締切済み

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

  • asp.netに必要な環境

    asp.netでwebページを作成する場合、 Microsoft Visual Basic 2008 Express Editionは必要ですか? Microsoft Visual Web Developer 2008 Express Editionと .NET Framework 3.5 だけインストールすれば大丈夫ですか? VBのソフトはなくてもVBの知識があればいいのでしょうか?

  • ASP.netについて

    OS:win2k VS.net dev はじめまして。 ASP.net初心者です。 aspでは<!-- #Include File="xxx.asp" -->として 共通モジュールは外部ファイルにして使えましたが ASP.netの場合はどのようにすれば 宜しいのでしょうか? ご存知の方ご教示宜しくお願い致します。

  • レガシーaspのデバッグ

    「Visual Web Developer 2010」でレガシーaspのデバッグをしたいのですが、 どうやってすればよいのでしょうか? 2008ならできそうな投稿をみつけたのですが、「Visual Web Developer 2010」では見つけることができませんでした。実践された方、是非教えていただけないでしょうか? また、Visual Web Developer 2010のヘルプが.net向けの為、レガシーaspで使える部分がよくわかりません。レガシーaspで使える操作周囲のわかりやすい入門書や手引きがないでしょうか?

  • asp.netのクラスについて

    いつもお世話になっております。 asp.netの動作環境検証テストをしているのですが、クラスの動作で躓いております。 -------------------------------------------------- ≪テスト内容≫ visual web developer 2008にて作成したサイトのファイルをサーバ上へコピーしてテストしています。 App_Codeフォルダ内へclass1.vbファイル作成 フォームの'Dim test As New Class1'を記述 IISの仮想ディレクトリへサイトファイルを丸ごとコピー ブラウザで実行 -------------------------------------------------- ≪サーバ環境:≫ OS:windows server 2008 1. 以下をインストール asp.net .NET framework 2.0 2. IISマネージャのwebサービス拡張の画面で Active server pages ASP.NET 1.14… ASP.NET 2.0… を許可する 3. サイトのプロパティにてバージョンをASP.net2.0へ変更 -------------------------------------------------- ≪詳細≫ ローカル(開発環境)環境ではvisual web developerでのデバッグはエラーが出ないのですが、サーバへコピーすると以下のエラーが出てしまいます。 また、開発環境側では、他の開発環境(vb6等)が入っているため、'msgbox'が動作するなどサーバ環境へファイル移行した時と動作が違っている部分はあります。 ●ブラウザに表示されるエラー内容 説明: この要求を送信するために必要なリソースをコンパイル中に、エラーが発生しました。以下のエラーの詳細を確認して、ソース コードを修正してください。 コンパイル エラー メッセージ: BC30002: 型 'Class1' が定義されていません。 ソース エラー: 行 22: Dim test As New Class1 -------------------------------------------------- 今いち基本的なことを理解していないため、サイトの側の記述に問題があるのか、サーバ環境に問題があるのかの判断もつかない状況です。 見当違いな質問をしている可能性があるのですが、ご存知の方いらっしゃいましたらご教授頂けますようよろしくお願いいたします。

  • 【初心者です】VB.NETとASP.NET、何が違う?

    今までASPでWeb開発を行っていた者です。 最近顧客の方で「Microsoft Visual Basic .NET Standard Version 2003」を 購入したらしく、これからはVB.NETでWeb開発することとなりそうです。 そこで、.NETについて疑問点があります。 (1)VB.NETで、Web画面の開発って可能なのでしょうか?  私は過去にVB6.0で開発を行ったことがあったのですが、  VB6.0ではWindowsのアプリケーションを作成するための開発ソフト  だと思っていたのですが、VB.NETからはWindowsのアプリケーションだけでなく、  Web画面も開発可能になったということでしょうか? (2)「Visual Studio .NET 2003」の内容は、、、   ・ Visual Basic .NET 2003   ・ Visual C# .NET 2003   ・ Visual C++ .NET 2003   ・ Visual J# .NET 2003  になってますが、何故ASP.NETが入ってないのでしょうか?  (そもそも、ASP.NETの開発ツールは無いのでしょうか?) 考えれば、考えるほどわからなくなりそうです。 どうぞ、宜しくお願い致します。

  • ASP.NETを学習する方法は?

    WEBアプリケーションに興味を持ち、ASP.NETで開発ができるように学習しようと考えています。しかし、何から手をつけてよいのか迷っています。 そこで、開発環境が使えるように、visual web developer 2008 express edition 入門という本を買って一通りやってみたのですが、詳しい内容ではなかったためか、あまり身になりませんでした。 もしかして、先にVBプログラミングを学習すべきだったでしょうか?aspをやりながらVBを覚えるのは邪道でしょうか? accessVBAはある程度使えるのですが、VBは未経験です。 今のところ別のasp.netの本を買ってみようと思っていますが、何かお勧めはありますでしょうか?よろしくお願いします。

  • ASP.NETにおける共有モジュール

    今までASPで開発を行ってきましたが、その際、共有のモジュールを*.incで作成し、以下の記述にて読み込んで行ってきました。 <!--#INCLUDE FILE = "./config.inc"--> ASP.NETの開発を今後行っていくわけですが、共有モジュールは、どのように扱えばよいかがヘルプ等見ても分かりませんでした。ASPのように別ファイルにて作成しておき、冒頭で読み込むといったやり方でよいのでしょうか??またそれでよいのであれば、記述法を教えていただけないでしょうか?

  • サブルーチン(共通の処理)の作り方

    VB6.0の時までは、標準モジュールやフォームモジュールにサブルーチン(共通の処理)を作って、他のフォームモジュールから呼び出しができるようになっていましたが、VisualBasic2005ではできないのでしょうか?共通のサブルーチンを作成する方法を教えてください。よろしくお願いします。

  • ASP.NETからエクセルを呼び出せますか?

    VS2003でASP.NETのプログラムを作成しているのですが、ASP.NETからexcel.exeなどのexeプログラムは呼び出せるのでしょうか? shell関数を使っても、何も反応がありません。 すいませんが、出来る方法を教えて下さいますようお願いします。

  • ASP.NET(C#)で共通ルーチンの分け方

    こんにちは。 ASP.NET2.0(C#)を使っています。 ASPのサイトで以下のような構成の時、 A.aspx-A.aspx.cs B.aspx-B.aspx.cs (A.aspx,B.aspxがそれぞれaspのページ、A.aspx.cs,B.aspx.csが、それらに対するコードファイルとなります。A.aspx.csとB.aspx.csとは同じディレクトリにあります。) A.aspx.csとB.aspx.csとで同じ関数があるので、その関数を別のファイルに抜き出して、A.aspx.csとB.aspx.cs双方から共通に使えるようにしたいのですが、こういった場合はどのようにするのがよいのでしょうか?

専門家に質問してみよう