ASP.NET Web サイト用の再利用可能な C# コードの作成
-
26-09-2019 - |
質問
私はここ数日間、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");
}
}
}
}
これは期待どおりに機能しますが、私が知りたいのは次のことです。
- 再利用可能なコードを作成するより良い方法はあるでしょうか?
- 再利用可能なコードをどのように設計しますか?
もっと良い方法があるはずですが、自分では思いつきません。
解決
ASP.NET Webフォームについてと再利用性と、それがコードビハインドファイルにあまりにも多くのロジックを置くことで、最も一般的な問題の嘘と言うことがあります。プログラマは、特にASP.NET Webフォームに新しいものは、ビジネスロジックとさえデータベース・アクセス・コードのそこの部分を置く傾向があります。しばらくして、それは巨大なハード・ツー・維持宣伝文句に自分のアプリケーションをオンにします。
別のレイヤーにあなたのビジネスロジックを離れて抽出します。コードビハインドからアクセス。ただ、アクセス、直接それを実装していません。データベースから近づきません。唯一のビジネス層は、それまでの話を許可する必要があります。
あなたも、別のクラスライブラリにあなたのビジネスロジックとドメインモデルのエンティティを置くことができます。そして、それが再利用可能になっ方法です。
あなたには、いくつかの深刻なコーディングます。で手の汚れを取得する前にすなわち、まず、単純な考慮事項をです
.NETの再利用技術は主に様々なアプリケーションで使用するクラスライブラリに共通のコードを棚の周りに公転。
再利用Webアプリケーション(ASP.NET)に適用されるが、通常は、プレゼンテーション部にユーザーコントロール(*た.ascx)で達成し、ウェブサービスを介してアプリケーションの一部を露出されている。
はひとつも(ストアドプロシージャにそれを置く)データベース層にビジネスロジックを移動言及でしたが、この1つは、一般的に物議を醸す、これらの日として認識されます。
他のヒント
ASP.NET があるため、ログインは悪い例かもしれません。 これを行うための組み込みの方法, 、しかし、一般的には正しい道を進んでいます。再利用したいビジネス ロジックは、ページ自体に含めるのではなく、いくつかのクラスに含めてください。これには、コードをより論理的な方法で構造化できるという追加の利点があります。ユーザー インターフェイス関連のものは ASPX ページ (および分離コード) にあり、プログラム ロジックは別のクラスに存在します。最終的には、これらのクラスの一部を別のライブラリ プロジェクトに移動し、さまざまな Web アプリケーションからリンクできるようにする必要があります。
ASP.NET ユーザー インターフェイス要素を再利用したい場合は、次のように書くことができます。 ASP.NETサーバーコントロール, これをライブラリに追加して、ASP.NET ページで次のように使用します。
<asp:Content ContentPlaceHolderID="column1" runat="server">
<custom:MyCustomLoginControl runat="server"
OnSuccessRedirectTo="myStartPage.aspx" />
</asp:Content>
ASP.NET でコードを再利用するには簡単な解決策があります。
調査した結果、次の 2 つの解決策が見つかりました。
- 仮想ディレクトリを操作する、または
- コンテンツ全体をルート ディレクトリに移動します。
2 つのソリューションを確認すると、実際に何を行う必要があるかが特定されました。を設定するだけで十分です BIN
ルート ディレクトリをターゲットにするプロジェクトのフォルダー (C:\inetpub\wwwroot\bin
).
添付ファイルの簡単な例を次に示します。 LibExemplo.zip.
現在私が使用しているのは シャープ開発 時間のかかるインストールや構成は必要ありません。
よろしくお願いします。
レイナルド・フェルナンド