为CRUD创建.NET自定义控件按钮

时间:2009-05-27 10:07:13

标签: c# .net asp.net design-patterns delegates

我正在考虑创建一个自定义控件按钮,它可以为我执行CRUD任务。让我详细说明一下:

我想要一些节省时间来在CRUD任务的每个UI上编写代码。我在这里因为我想确保在我花费数小时并承受压力之前应该验证我采取的方法。

自定义(可以是用户控件)控制按钮,它将采用代理。该委托将有一个Custom EventArg获取业务类引用,以及一个CRUD枚举(创建,读取,更新,删除)。每个业务类都将实现一个接口,该接口将强制定义4个函数(CRUD函数)。现在,一旦你在一个表单上拖动这个控件,你需要做的是创建一个委托,它需要业务类引用和CRUD枚举来执行一个CRUD函数。

我不确定我采取的方法是否正确。但它看起来会让我的生活更轻松,代码可以管理。请帮助我,你认为这会治愈我或诅咒我:)。

P.S:如果解释附带一个示例,我将不胜感激。感谢。

2 个答案:

答案 0 :(得分:1)

我会在4个单独的命令中分离CRUD。所以一个用于Create,一个用于Read ...然后我将在按钮使用的表单上实现button.Click事件。如果我将执行正确的CRUD命令。

示例:

public interface ICommand
  {
    void Execute ();
  }

  public class UpdateCommand : ICommand
  {
    public UpdateCommand ()
    {
      // Maybe some business logic has to be passed in the ctor.
    }

    public void Execute ()
    {
      // Do the update stuff here
    }
  }

  // somewhere in the Form:

  public void Button_Update_Click(object sender, EventArgs e)
  {
    UpdateCommand command = new UpdateCommand();
    command.Execute()
  }

也许this link会帮助您理解命令模式。

它可以帮助您分离功能并使用TDD轻松测试它。

答案 1 :(得分:0)

您可以使用内置的ObjectDataSource和DetailsView或FormView控件执行非常类似的操作。我会坚持用这些而不是写自己的。如果您真的想节省一些时间,请查看ASP.NET动态数据站点。