0

几年前,我什么时候作为网络开发人员在公司工作。它有我的第一个 Sirius Web 开发工作 (ASPx/C#),所以它非常令人兴奋,从开发人员的角度来看,我学到了很多关于这个世界的知识。

在那个组中,我们对加载在页面 UC(用户控件)中的页面有一个概念,我不知道在每个使用每种语言的 Web 开发团队中是否都相同,我假设是这样。

合同结束,我回来开发win32“winForm”应用程序。

但是自从他们开始我尝试将相同的原则应用到我在那里学习的 win32 开发中,这意味着我在表单中加载了一堆 UC(视觉用户控件)。它们是常规的可视化组件,没有加载到工具箱中,代码在项目中可用,但组件不是以表单开发的,它们是在那里加载的。

我想知道关于这种方法的意见,其他人在做什么与此类似或更好,以及可以帮助我们加快开发速度和增加代码重用的改进,因为这就是全部内容。

4

1 回答 1

1

如果您在 Winforms 中使用布局组件,这可能是一种可以接受的方法,尽管我认为区分 Web 和 Windows 窗体(注意:不是 WPF!)是在前者中你做了很多“合成”这就是为什么 UserControl 概念如此有用,而在后者中,您可以在非常复杂的控件上进行操作(例如,第 3 方 - 在我的上一次演出中,我们通过一家名为Infralution的小公司使用了令人难以置信的网格控件)

我会看到的主要问题是布局,因为渲染模型与 Web 有点不同。我对您的应用程序一无所知,但如果它“有效”,那才是最重要的。我假设在这种情况下,您可以正确使用 FlowLayoutPanel 和 TableLayoutPanel 之类的东西。

如果您想走更规范的路线,请看一下如何使用继承模型以更健壮的方式组合您的应用程序的简单创建组件 - 拥有一个基础 Form 类,其中包含您的“UserControl”类型的容器组件去,然后在应用程序运行时使用某种基于接口的依赖注入来交换它们。

最后,看看那里的一些开源 Windows 窗体应用程序,看看您是否对自己过于苛刻,因为通用 UI 和可重用组件是每个应用程序的目标。尽管我一直认为 Microsoft 的 Patterns & Practices 东西有些臃肿,但还是有一些好的想法,你应该学习他们提出的Composite UI Application Block的一些方法。

好吧,不是最后,我还想补充一件事:仔细研究 WPF,它将带回您在 Web 开发时代的许多概念,并在桌面应用程序中为您提供那种强大的功能。

于 2009-02-13T13:26:00.360 回答