.NET 是不是与 Delphi 的 VCL 组件模型等效?
Posted
技术标签:
【中文标题】.NET 是不是与 Delphi 的 VCL 组件模型等效?【英文标题】:Does .NET have an equivalent to Delphi's VCL component model?.NET 是否与 Delphi 的 VCL 组件模型等效? 【发布时间】:2011-06-19 16:09:10 【问题描述】:请原谅“双关语”,但我是一名(长期)Delphi 开发人员。我现在一直使用版本 6,因为它是我开发所需的一切。但是,最近我一直在考虑进入 .NET,因为这似乎是 Win32/64 EXE 开发的主要方向。我最担心的是 .NET 中的某些东西相当于 Delphi 中的 VCL 组件模型。
让我这样解释我最大的担忧。在 Delphi 中,我可以创建一个自定义组件,一旦完成,它将成为 Delphi 组件面板(“小部件”面板)的完整成员,我可以在设计时将其拖放到表单上,并使用 IDE 的属性检查器/编辑器来填写与组件相关的属性,甚至更好的是,为各种程序员定义的事件处理程序填写代码存根(后者就像 VB 和许多其他 IDE,我知道。)但最重要的是,我可以创建起作用的组件作为其他组件的容器。在设计时,我可以添加与父组件不同类型的子组件,并使用与***组件相同的属性编辑器范例方便地为子实例填写属性和事件处理程序。我开始喜欢这种能力,我想知道 .NET 在设计时是否可以同样轻松地管理/编辑包含其他组件的组件。
【问题讨论】:
是的,您可以在 .Net 中创建一流的公民组件。要了解它是什么样的,您可以试用 Visual Studio、Mono Develop 或 SharpDevelop 的 express 版本之一。 你在说什么“双关语”? (long long) 表示我已经使用 Delphi 编程很长时间了。 【参考方案1】:假设我正确理解您的请求,那肯定是 .NET / Visual Studio 功能集的一部分。
使用 WinForms(最常用于桌面应用程序开发的项目类型,尽管 WPF 正在取得进展),您可以创建组件,然后可以将其作为子组件添加到可视控件(或称为窗体的窗口)或其他组件。
【讨论】:
【参考方案2】:Windows Forms 基本上类似于 .NET 的 VCL。它以非常相似的风格(尽管不同的框架)提供了与您在 VCL 中习惯的大部分相同的基于组件的行为。
话虽如此,如果您打算跳槽,您可能需要考虑查看 WPF 和 Silverlight。它们为应用程序开发提供了一个更好的(一旦你克服了学习的困难)模型。这确实是 .NET 的首选开发模型(尽管 Windows 窗体仍然很流行),因为它提供了许多好处。
【讨论】:
你确定吗?据我所知,WPF 和 Silverlight 对于桌面开发基本上已经死了,只真正专注于 Windows Phone 7 平台的开发,这也基本上死了。 @Mason:不知道你从哪里听说的,但那完全是假的。 确实如此。作为一个长期拒绝使用 MFC 的 BCB 用户,我最初对 WinForms 与 VCL 的相似之处感到震惊。但是有一个good reason for that。 可以使用 WinForms 来创建作为子组件容器的组件,如上所述? @罗伯特:是的。有可能这样做。 WinForms 确实受到 VCL 的启发,并且几乎是 VCL 的扩展——考虑到上面 Stephen 的链接,这是有道理的......【参考方案3】:你可以试试 Delphi Prism。它生成 .NET 可执行文件。 http://www.embarcadero.com/products/delphi-prism 和 http://en.wikipedia.org/wiki/Delphi_Prism
【讨论】:
以上是关于.NET 是不是与 Delphi 的 VCL 组件模型等效?的主要内容,如果未能解决你的问题,请参考以下文章
可以将 WinForms 嵌入到 VCL Delphi 应用程序中吗?
在 Delphi VCL 中通过组合两个控件(TEdit 和 TTrackBar)创建一个新组件