C# 请告诉我要在Windows窗体项目中使用的体系结构
我想要一个架构,使我的UI与数据库交互,而不必为UI编写多余的代码…即。隐藏的代码…伙伴您可以使用前置架构: 业务对象层 业务逻辑层 数据访问层C# 请告诉我要在Windows窗体项目中使用的体系结构,c#,winforms,architecture,C#,Winforms,Architecture,我想要一个架构,使我的UI与数据库交互,而不必为UI编写多余的代码…即。隐藏的代码…伙伴您可以使用前置架构: 业务对象层 业务逻辑层 数据访问层 UILayer伙计,您可以使用前置架构: 业务对象层 业务逻辑层 数据访问层 UILayer是你应该研究的东西。这将引导你进行更多的研究,但你肯定会了解你需要的员工。这是你应该研究的问题。这将引导你进行更多的研究,但你肯定会了解你需要的员工。一个起点是定义一些简单的经验法则。一个好的经验法则是表单类中的代码尽可能少。Form类中的所有代码都应该是基本的
UILayer伙计,您可以使用前置架构: 业务对象层 业务逻辑层 数据访问层
UILayer是你应该研究的东西。这将引导你进行更多的研究,但你肯定会了解你需要的员工。这是你应该研究的问题。这将引导你进行更多的研究,但你肯定会了解你需要的员工。一个起点是定义一些简单的经验法则。一个好的经验法则是表单类中的代码尽可能少。Form类中的所有代码都应该是基本的UI映射 我个人喜欢使用数据库管理器来组织我的数据库访问逻辑。该模式巧妙地封装了访问和存储数据的代码,因此可以轻松地进行切换和更改。根据数据库的复杂性,通常每个表有1个DAO,但对于简单数据库,每个数据库甚至可能只有1个DAO 是一种流行的分离表示和其他逻辑的方法,但对于一个简单的项目来说可能有些过头了。也是封装逻辑并将其从表单中分离出来的好方法 关于基本框架的示例,请参见下面的注释:不完整!阅读完整的DAO文章以正确地实现它。这段代码的要点是显示Form类中没有数据库逻辑,当单击按钮或将UI映射到动作时,它是一个简单的单行程序。如果您决定从数据库存储交换到文件存储,那么编写一个FileMyDAO:IMyDAO类并让工厂返回它并不困难。请注意,如果您这样做,则所有UI代码都不会更改
public interface IMyDAO
{
void InsertData(int data);
}
public class SqlMyDAO : IMyDAO
{
public void InsertData(int data) { throw new NotImplementedException(); }
}
public class DAOFactory
{
public static IMyDAO GetMyDAO() { return new SqlMyDAO(); }
}
public class MyForm : Form
{
private void Button_Click(object sender, EventArgs e)
{
DAOFactory.GetMyDAO().InsertData(123);
}
}
一个起点是定义一些简单的经验法则。一个好的经验法则是表单类中的代码尽可能少。Form类中的所有代码都应该是基本的UI映射 我个人喜欢使用数据库管理器来组织我的数据库访问逻辑。该模式巧妙地封装了访问和存储数据的代码,因此可以轻松地进行切换和更改。根据数据库的复杂性,通常每个表有1个DAO,但对于简单数据库,每个数据库甚至可能只有1个DAO 是一种流行的分离表示和其他逻辑的方法,但对于一个简单的项目来说可能有些过头了。也是封装逻辑并将其从表单中分离出来的好方法 关于基本框架的示例,请参见下面的注释:不完整!阅读完整的DAO文章以正确地实现它。这段代码的要点是显示Form类中没有数据库逻辑,当单击按钮或将UI映射到动作时,它是一个简单的单行程序。如果您决定从数据库存储交换到文件存储,那么编写一个FileMyDAO:IMyDAO类并让工厂返回它并不困难。请注意,如果您这样做,则所有UI代码都不会更改
public interface IMyDAO
{
void InsertData(int data);
}
public class SqlMyDAO : IMyDAO
{
public void InsertData(int data) { throw new NotImplementedException(); }
}
public class DAOFactory
{
public static IMyDAO GetMyDAO() { return new SqlMyDAO(); }
}
public class MyForm : Form
{
private void Button_Click(object sender, EventArgs e)
{
DAOFactory.GetMyDAO().InsertData(123);
}
}
使用业务对象/用户界面/业务逻辑/数据访问架构
BO------UI
| |
--------BL
| |
--------DA
使用业务对象/用户界面/业务逻辑/数据访问架构
BO------UI
| |
--------BL
| |
--------DA
那里已经开发了免费的架构框架,等待使用。。检查 -更灵活,但仅适用于您的后端体系结构 或
那里已经开发了免费的架构框架,等待使用。。检查 -更灵活,但仅适用于您的后端体系结构 或
从提到代码隐藏,我们是否应该假设这是webforms?请注意,这是一个非常广泛的问题…你在寻找什么?模型视图控制器?最有价值球员?被动视图?不只是一个简单的窗口表单…从后面提到的代码来看,我们应该假设这是webforms吗?请注意,这是一个非常广泛的问题…你在寻找什么?模型视图控制器?最有价值球员?被动视图?不只是一个简单的窗口窗体。。。