我想要一个架构来使我的UI与数据库交互,而无需为UI编写多余的代码......即,后面的代码...请告诉我一个在Windows窗体项目中使用的体系结构
1
A
回答
3
啊哥们,使用架构
BO------UI
| |
--------BL
| |
--------DA
0
哥们,你可以使用premitive架构:
BusinessObjectLayer BusinessLogicLayer DataAccessLayer UILayer
1
Data Binding的东西,你应该看看。这会引导你学习更多,但你一定会了解你需要的员工。
2
一个起点是定义一些简单的经验法则。一个很好的经验法则是在Form类中尽可能少的代码。 Form类中的所有代码都应该是基本的UI映射。
我个人喜欢用DAO pattern来组织我的数据库访问逻辑。这种模式巧妙地封装了访问存储数据的代码,因此可以轻松切换和更改。根据数据库的复杂性,我通常每个表有1个DAO,但对于简单的数据库,每个数据库甚至可能只有1个DAO。
MVC是一种非常流行的方式来分离演示文稿和其他逻辑,但也可能是一个简单的项目矫枉过正。 Use cases也是封装逻辑并将其从表单中分离出来的好方法。
下面是一个基本框架的例子,请看下面(注意:不完整!请阅读完整的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);
}
}
0
相关问题
- 1. Windows Azure项目体系结构
- 2. Python项目体系结构
- 3. iPhone中的项目的体系结构
- 4. Windows窗体中的三层体系结构
- 5. 在Windows窗体项目上使用DataAnnotations
- 6. 从同一解决方案中的另一个Windows窗体项目引用Windows窗体项目
- 7. Java EE项目的体系结构
- 8. iOS项目的体系结构
- 9. 在S#arp中使用wcf服务体系结构项目
- 10. 一个项目与多角应用程序体系结构
- 11. Windows Mobile UI体系结构
- 12. 用于Windows Mobile的SWT:UI体系结构
- 13. 在一个像体系结构的插件中使用Ninject
- 14. 在我的项目中添加一个窗体到另一个项目
- 15. 使用消息队列的项目体系结构
- 16. 在结构体内使用结构体
- 17. Windows操作系统体系结构书
- 18. 调用冻结我的Windows窗体
- 19. C++ Windows窗体的typedef结构语法?
- 20. 使用SpecFlow进行项目体系结构(MVP-VM)
- 21. 在C#中使用Windows窗体创建多个窗体?
- 22. ASP.NET Web窗体和ASP.NET MVC中的MultiTenant体系结构
- 23. 用另一个结构体初始化一个结构体
- 24. 在Visual C++ 2010中使用HTML Tidy Windows窗体项目
- 25. 用一个包含结构体的结构打包一个结构体
- 26. 在Windows Installer中查找系统的体系结构
- 27. 在结构体中初始化一个结构体?
- 28. 如何在VHDL体系结构中使用实体
- 29. 使用XML创建一个Windows窗体
- 30. JPEG解压缩在Windows体系结构中不一致
从提到“后面的代码”,我们应该假设这是webforms?请注意,这是一个*非常广泛的问题... – 2010-11-09 08:47:38
你在找什么?模型 - 视图 - 控制器? MVP?被动观点? – 2010-11-09 08:53:30
不只是一个简单的窗口窗体... – Genius 2010-11-09 08:56:19