我应该使用什么平台?

汤姆·卡扬

新成员
已加入
2020年6月2日
留言内容
1
编程经验
Beginner
大家好,
我想问您关于如何进行我的第一个C#项目的建议,因为我根本不知道如何开始。

我的想法是构建一个脱机桌面应用程序,该应用程序可搜索大量.csv文件,从中收集值并将它们写入网格,并绘制其中一些值的图表。

我参加了C#课程,我会说我了解大多数C#语法和思想,那不是问题。

但是我不知道应该使用哪个平台。我最初以为我会使用WPF,但后来意识到它是用于Web开发的,而我并不关心我的应用程序是用于Web的。当时以为Winforms会很好,但是我读到很多意见,认为它们已经过时了,"dead"

您会建议使用哪个平台来构建此类应用?感谢您的任何建议。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
WPF是Windows Presentation Foundation,顾名思义,它专门用于Windows开发。 ASP.NET是Web开发的首要技术。 Windows Forms仍然可以完成许多人想要的所有操作,但是它确实有各种限制,并且Microsoft并未积极开发。 WPF更像Web开发,因为UI由XAML定义(类似于HTML),然后具有C#代码来实现该功能。 WPF的学习曲线更陡峭,但总体上会更有意义,因此,除非您有使用WinForms的特殊原因,否则我建议WPF给刚起步的人。如果需要,您可以使用与WinForms几乎相同的方式来使用它,但是,如果要充分利用WPF,请务必学习MVVM设计模式,该模式与MVP和MVC非常相似,但它是专门为WPF开发的。
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,926
地点
英国
编程经验
10+
考虑到WPF的覆盖面,这可能是我将撰写的有关WPF的最公正的文章,所以在我们开始之前,请喝杯茶,因为我们可能会在这里呆一会儿……哈哈!我会鼓励并拥抱WPF的学习曲线。如果您决定适应Windows Forms的工作方式,则会导致您养成许多习惯,这些习惯在WPF应用程序的创建和构建中无法应用或适应。您还将发现在Winforms中编写代码的方式,与在WPF中编写方式的方式不同。如;调用控件,而在Win Forms中,您可以调用Invoke,但是在WPF中,您需要首先调用Dispatcher,并且还有更多类似这样的小例子。

WPF可以控制布局的布局,从而可以构建更健壮和优雅的应用程序,这是由于WPF使用Xaml的事实,正如JM所谈到的那样。比较如何比较Win Forms和WPF的设计结构;就像将html 2与html 5进行比较一样简单,将css 2与css 5进行比较。 WPF效率更高,更现代,风格更简单,更快捷,更高效,更出色;它的设计师比Win Forms更稳定。

虽然我必须在这里承认一些东西。过去,我曾强迫我的观点只应遵循模型-视图-视图模型方法。直到最近,我已经决定这完全是肚。这并不是说您不应该学习MVVM,因为您确实应该学习。但是MVVM不是您可以在WPF中使用的唯一模式。 MVVM主要是Microsoft推崇的另一种哲学,即鼓励和推动MVVM方法,因为该模式遵循所有类编码约定规则集,这是一件好事!

最近,我发现自己陷入了"tight bind",(无双关语),而我的数据层以及视图和表示层均已正确设置。简而言之,我的数据层正在将数据用于视图模型,因为另一个类需要它。是的,我们可以承认我创建了错误的设计模式,或者我只是接受了MVVM可能是在我的情况下使用的错误模式。因此,我并不是说MVVM是错误的。但是,它并非总是适用于每种情况的正确模式。我自己和跳伞运动员在前一天晚上进行了长时间而健康的讨论。我们讨论了替代模式。

我想与您分享MVVM和替代模式的好处: 始终在WPF应用程序中使用MVVM,或者替代模式仍然实用/有用吗? -有时在某些情况下MVVM不是最佳使用模式,并且坦率地说,我错过了像以前在Win Forms中那样更新UI的想法。无论是什么,您还需要了解和学习其他模式,例如MVP和MVC。也有其他的,但是出于理智的考虑,您可能应该从需要它的教程项目中的MVVM开始。您可以在此处找到有关模式的更多信息: C#和VB.NET中的.NET设计模式-四人帮(GOF)-doFactory.com了解MVC,MVP和MVVM设计模式之间的差异

我认为我在WPF中的经验是7.5或8.5(满分10分)。我的经验使我认为,他们是更新UI的其他方法,实际上他们也不必使用模式化方法。在长时间使用WPF之后,我发现了许多错误,设计缺陷,但它们都是次要问题。微软在为我们带来WPF方面做得非常出色。 Win Forms已过时,过时,逐渐被淘汰,因此人们不鼓励使用WPF进行现代应用程序开发。这是一个有趣的话题,给出了开始使用WPF的10个理由: 切换到WPF的10个理由-DZone Web Dev - After reading that... in the next breath their are people who still believe Win Forms isn't 死 yet : WinForms的死亡已被大大夸大-SubMain Blog -但我离题了。

几年前,有一篇关于为什么不应该使用WPF的文章,鉴于这是一本古老的读物,现在大部分要点都不再相关了,因为抱怨的问题已经得到解决: 我讨厌WPF的5个理由-简单讲 -我的理论是,这个家伙不了解新设计师Xaml或如何有效利用它,他很可能是Win Forms的忠实粉丝。不用说我可以看到一些参数当时是有效的,但是我现在讨厌这篇文章,但是为了公平起见,我将其包含在内。您将了解到的有关WPF的大多数评论都是积极的,任何将WPF淘汰的人都是没有花时间去学习它,了解它的功能的人,或者是坚守Win Form支持者的人将WPF视为对未来Win Forms开发的威胁。

最后,我将为您提供另一篇很好的摘要,以选择您应该以的应用程序类型: 构建现代的桌面应用程序-WinUI 3.0是前进的方向吗?

希望您能找到有用的信息。对于我出门时即时写出的任何语法错误,我们深表歉意。 (y)
 
最佳 底部