2010-11-18 13 views
9

私は過去数日間ASP.NETでWebサイトを作成するためにC#を学んできました。ASP.NET Webサイト用の再利用可能なC#コードの作成

私はC#の新機能ですが、できるだけ再利用可能にするためにコードを書く方法について考えています。

簡単な例として、ユーザーのログインの詳細を確認するためのコードを作成して、いつでも別のサイトにドロップして、与えられたデータを使用できるようにしたいとしましょう。

私はこれを行うには、私のコードをレイアウトする方法が分からない、これは私が(私は擬似コードのいくつかの種類と短いそれを維持します)を思い付いたアイデアであることに留意する:

まず、私が作成クラス:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace Module { 
    public class Login { 
     public static bool check_login(string usernameCheck = "", string passwordCheck = "") { 
      if(usernameCheck == "user" && passwordCheck == "password") { 
       return true; 
      } 

      return false; 
     } 
    } 
} 

それから私は、ログインフォームは、例えば、行くだろうaspxページ必要があります:

<asp:Content ContentPlaceHolderID="column1" runat="server"> 
    <asp:TextBox ID="usernameInput" runat="server"></asp:TextBox> 
    <asp:TextBox ID="passwordInput" runat="server"></asp:TextBox> 
    <asp:Button OnClick="check_login" Text="Login" runat="server" /> 
</asp:Content> 

をして、ファイルの背後にあるコードは次のようになります。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace Module { 
    public partial class _default : System.Web.UI.Page { 
     protected void Page_Load(object sender, EventArgs e) { 

     } 

     protected void check_login(object sender, EventArgs e) { 
      if(Login.check_login(usernameInput.Text, passwordInput.Text)) { 
       Response.Redirect("some other place"); 
      } 
     } 
    } 
} 

これは期待通りに動作しますが、私が知りたいことは次のとおりです。

  • は、再利用可能なコードを作成するための良い方法はありますか?
  • 再利用可能なコードをどのように設計しますか?

私はこれを行うにはより良い方法が必要であると確信していますが、私は自分で考えることはできません。

答えて

13

ASP.NET Webフォームと再利用性に関して、最も一般的な問題は、コードビハインドファイルに多すぎるロジックを置くことにあります。プログラマー、特にASP.NET WebFormsを初めて使用するプログラマーは、ビジネスロジックの部分とデータベースアクセスコードを配置する傾向があります。しばらくすると、そのアプリケーションは巨大な保守的な宣伝に変わります。

ビジネスロジックを別のレイヤーに抽出します。コードビハインドからアクセスしてください。単にアクセスし、直接実装しないでください。データベースから離れてください。ビジネス層だけがそれに話すことが許されるべきです。

ビジネスロジックとドメインモデルエンティティを別々のクラスライブラリに配置することもできます。次に、それが再利用可能になる方法です。

これは、深刻なコーディングで手を汚す前の最初の簡単な考慮事項です。

.NETの再利用技術は、一般的に、さまざまなアプリケーションで使用される共通ライブラリをクラスライブラリに格納することを中心に展開されています。

Webアプリケーション(ASP.NET)に適用される再利用性は、通常、プレゼンテーションパート用にUserControls(* .ascx)を使用し、Webサービスを介してアプリケーションの一部を公開することで実現されます。

ビジネスロジックをデータベースレイヤーに移動して(ストアドプロシージャに入れる)こともできますが、最近は一般的に論争の的になっています。

+0

私は同意します! 3層またはn層の開発は多くのトリックを行います。初心者のための簡単な方法は、 "モジュール"を "App_Code"の中に配置してからそこから関数を呼び出すことです。コードビハインドで検証などをしないでください。実際のページコードからの「呼び出し関数」のみ。 – BerggreenDK

4

ログインが悪い例は、ASPがあるからです。NET built-in ways to do thisがありますが、一般的に正しい方向に向いています。再利用したいビジネスロジックをページに入れるのではなく、いくつかのクラスに入れてください。これは、コードを構造化するより論理的な方法:ユーザーインターフェイス関連のものはASPXページ(およびコードビハインド)にあり、プログラムロジックは別のクラスにあります。最終的には、それらのクラスのいくつかを別々のライブラリプロジェクトに移して、さまざまなWebアプリケーションとリンクさせることができます。

あなたはASP.NETユーザーインターフェイス要素を再利用したい場合、あなたはあなたのライブラリーに入れた、ASP.NET Server Controlsを書いて、このようなあなたのASP.NETページで使用する可能性を持っている:

<asp:Content ContentPlaceHolderID="column1" runat="server"> 
    <custom:MyCustomLoginControl runat="server" 
           OnSuccessRedirectTo="myStartPage.aspx" /> 
</asp:Content> 
1

最高私はWebFormsページを再利用することが判明しました。コードはMVPパターンを使用することです。古いWebサイトのいくつかのページのMVPをdescribed hereとして実装しました。そして、ASP.NET MVCに移行したとき、そのプロセスは本当に簡単だとわかりました。

+0

MVPは、@Developer Artが推奨することを助けるだけで、ビジネスロジックとコードビハインドコードを分離することができます。 –

0

ASP.NETでコードを再利用する単純なソリューションがあります。

  • 仮想ディレクトリでの作業、または
  • 移動ルートディレクトリにコンテンツ全体:

    研究した後、私は2つの解決策を見つけました。 2つのソリューションをチェック

、本当に何をすべきか特定した。それだけで、ルートディレクトリ(C:\inetpub\wwwroot\bin)を対象とする我々のプロジェクトのBINフォルダを設定するのに十分です。

添付ファイルの簡単な例を示します:LibExemplo.zip

現在、私は長時間のインストールや設定を必要としないSharpDevelopを使用しています。

よろしく、

レイナルドフェルナンド

関連する問題