C#中最好的chioce、Windows窗体或WPF开发是什么?

C#中最好的chioce、Windows窗体或WPF开发是什么?,c#,sql,wpf,ms-office,C#,Sql,Wpf,Ms Office,学习C#语言时。现在所有的应用程序都在开发中。我最好专注于windows窗体开发还是WPF开发。我想开发使用ADO.net访问SQL Server数据库的软件。还可以使用独立应用程序与Microsoft Office集成,以创建图表和图形等。我将使用WPF,因为它还允许您使用相同的XAML标记执行Silverlight应用程序 话虽如此,课程中有马,所以你需要为工作选择合适的工具。这意味着您需要了解这两者才能做出明智的决定。:) WPF的学习曲线肯定要陡峭得多-同时,您可以轻松地在Windows

学习C#语言时。现在所有的应用程序都在开发中。我最好专注于windows窗体开发还是WPF开发。我想开发使用ADO.net访问SQL Server数据库的软件。还可以使用独立应用程序与Microsoft Office集成,以创建图表和图形等。

我将使用WPF,因为它还允许您使用相同的XAML标记执行Silverlight应用程序


话虽如此,课程中有马,所以你需要为工作选择合适的工具。这意味着您需要了解这两者才能做出明智的决定。:)

WPF的学习曲线肯定要陡峭得多-同时,您可以轻松地在Windows窗体中创建一些简单的UI,以满足您对ADO.net或SQL Server数据库访问的需求。一旦你将图表/图表添加到组合中,你就会想亲手学习WPF


另外,您可能还想看看Lightswitch,它解决了Silverlight/WPF的一些复杂性。

虽然WPF是未来的趋势,它给您带来了很多灵活性,但我不建议完全切换到WPF。此外,如果您有一个能够处理设计部分的设计师,您将能够充分利用WPF。我并不是说你需要一个设计师,但根据我对WPF的经验,如果你想开发一个看起来像杀手的应用程序,你肯定需要有一个知道WPF的位和字节的设计师。正如BrokenGlass所说,WPF的学习曲线太陡了。所以,做一个渐进的切换。如果您已经有一些Windows窗体应用程序,请尝试在WPF中重写其中的一些应用程序。

您尝试使用WinForms和WPF都可以完成这类操作。WinForms是一个更为熟悉的范例,但(大但)XAML一般来说,特别是WPF,不是未来,而是在.NET中执行Windows UI的当前方式,WinForms是过去,它基本上处于维护模式(对现有应用很好,我敢说对新应用已经过时)。是的,XAML的学习曲线有点陡峭,但是你所获得的能力是值得付出努力的,此外,XAML/WPF/Silverlight上有越来越多的资源(书籍、图书馆),而WinForms有很多,但停滞不前(我在几年内没有看到任何新版本的WinForms书籍)。值得注意的一点是XAML的数据绑定能力,它提供了许多不必要的代码,将数据从对象/数据集移动到可视化控件。

尽管在Windows UI中,两者可以实现相似的结果,但它们的功能彼此独立,这是它们的目的

WinForms是经过验证的真实版本,由于其强大的根基,它不会进化。这并不意味着WinForms不受欢迎。这就意味着WiFras的基础类已经很好地建立和灵活。请记住,通过控件类和深度工程UI消息传递(通过WinForms类公开的句柄)扩展WinForms具有灵活性

然而,WPF是一个抽象层,用于设计用户界面,不一定或仅限于Windows用户界面。最难跨越的障碍是从基于坐标的用户界面(像素/位图/索引)的思想过渡到基于向量的用户界面,WPF可以适应几乎任何大小控制或渲染平面


WPF的好处是,您正在学习应用程序的三个不同目标—Windows UI、SilverLight,现在是Windows Phone。WinForms的目标是Windows UI和Windows Mobile(CE)。基于通用小部件的干净UI在WiFr窗体中具有适当的基础。如果你的目标是定制的动态用户界面,那就试试WPF吧。

因为你的主要目标是学习C语言,你应该更多地关注语言特性,而不是用户界面。您应该尝试学习和使用C#的各种功能,以及它支持什么以及如何支持。学习(C#)将更多地用于开发应用程序的业务层和数据层,而不是UI;因此,您应该首先集中精力构建这些层(使用任何表示框架)

我不确定您以前是否有任何控制台应用程序、WinForms、WPF或ASP.net方面的经验,但出于学习目的,您应该选择您最熟悉的一种。如果你要开始一个新的工作,那么我建议你首先从WinForms开始,因为你将在WinForms中编写大量C#代码,然后在WPF中编写,然后再学习WPF


我的回答完全集中在一个事实上,即您的主要目标是学习C#,而不是学习哪个UI框架更好等等。

WPF和XAML是一条学习曲线,但我的经验是,您可以在更短的时间内构建更强大、更简洁、更受支持的应用程序。可以将XAML从一个页面复制并粘贴到另一个页面。在Windows窗体上,我放弃了将UI元素从一个页面(窗体)复制到另一个页面(窗体),因为它多次锁定了整个应用程序。双向数据绑定是一个梦想。WPF UI具有更商业级的外观。可移植到Silverlight。对我来说,C++的98%是我努力的一部分。

我觉得太陡了一点。在XAML/WPF中确实有很多东西需要学习,但我不会说这是无法克服的:几个月前,我帮助一个以前没有XAML经验的团队学习,然后通过Silverlight 4应用程序,这有时是一个滑坡,但项目完成得很好,团队学习了XAML:-)谁不喜欢我的答案?我是一个生活开发者。我没有说任何绝对的,只是我的意见。是什么给了我一个否定的答案?