C# 请告诉我要在Windows窗体项目中使用的体系结构

C# 请告诉我要在Windows窗体项目中使用的体系结构,c#,winforms,architecture,C#,Winforms,Architecture,我想要一个架构,使我的UI与数据库交互,而不必为UI编写多余的代码…即。隐藏的代码…伙伴您可以使用前置架构: 业务对象层 业务逻辑层 数据访问层 UILayer伙计,您可以使用前置架构: 业务对象层 业务逻辑层 数据访问层 UILayer是你应该研究的东西。这将引导你进行更多的研究,但你肯定会了解你需要的员工。这是你应该研究的问题。这将引导你进行更多的研究,但你肯定会了解你需要的员工。一个起点是定义一些简单的经验法则。一个好的经验法则是表单类中的代码尽可能少。Form类中的所有代码都应该是基本的

我想要一个架构,使我的UI与数据库交互,而不必为UI编写多余的代码…即。隐藏的代码…

伙伴您可以使用前置架构:

业务对象层 业务逻辑层 数据访问层
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吗?请注意,这是一个非常广泛的问题…你在寻找什么?模型视图控制器?最有价值球员?被动视图?不只是一个简单的窗口窗体。。。