gpt4 book ai didi

c# - 为 ASP.NET 网站编写可重用的 C# 代码

转载 作者:太空狗 更新时间:2023-10-29 17:37:22 24 4
gpt4 key购买 nike

这几天我一直在学习 C#,以便使用 ASP.NET 来创建网站。

我是 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 WebForms 和可重用性,不得不说最常见的问题在于在代码隐藏文件中放入了过多的逻辑。程序员,尤其是 ASP.NET WebForms 的新手,倾向于将部分业务逻辑甚至数据库访问代码放在那里。一段时间后,它会将他们的应用程序变成一个巨大的难以维护的广告。

将您的业务逻辑提取到一个单独的层中。从代码隐藏访问它。只是访问,而不是直接实现它。远离数据库。只应允许业务层与其对话。

您甚至可以将业务逻辑和领域模型实体放入单独的类库中。这就是它如何变得可重用。

这是在您开始认真编写代码之前首先要考虑的简单问题。

.NET 中的可重用性技术主要围绕将通用代码搁置到类库中以供各种应用程序使用。

应用于 Web 应用程序 (ASP.NET) 的可重用性通常是通过 UserControls (*.ascx) 实现的,用于表示部分并通过 Web 服务公开部分应用程序。

还可以提到将业务逻辑移至数据库层(将其放入存储过程),但如今这通常被认为是有争议的。

关于c# - 为 ASP.NET 网站编写可重用的 C# 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4216584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com