我是一名C ++ / Java开发人员,不了解.Net或GUI。我需要为2000 / XP / Vista / 7开发一个Windows应用程序。
我想我已经得出结论,C#是最好的和最快的方式(如果我错了,请纠正我)。您有什么推荐的吗?我应该学习哪种GUI方法? (表格?还有其他东西吗?)
这是在.Net 2.0模式下编译的最佳方式吗?它将成为公众下载的应用程序。
答案 0 :(得分:17)
对于桌面应用程序,基本上有两种选择; WinForms和Windows Presentation Foundation(WPF)。
WinForms更传统的构建,因此更容易学习。因此,WinForms可能是一个更简单的开始,但如果您计划实际使用您在.NET开发GUI中获得的知识,我会说您最好从一开始就深入研究WPF。这是一个更丰富的框架,也是微软为桌面应用程序付出努力的地方。它也类似于Silverlight,这意味着当您了解WPF时,您也可以轻松进入Silverlight。
答案 1 :(得分:10)
在我的个人开发经验中,Windows Forms与在Windows上快速部署GUI应用程序时一样容易。 WPF当然是另一种选择,但使用它可能需要您花一些时间熟悉XAML。 Windows Forms的外观和感觉就像Java的许多可用GUI选项一样,在我看来,它比大多数更好。
如果您希望在.NET中尽可能快地进行GUI开发,那么Windows Forms就是它。
答案 2 :(得分:8)
是。在.NET开发方面,C#是首选语言。既然你已经用Java编程了,你会发现这个语言看起来非常熟悉(虽然看起来有点干净,并且有一些非常好的功能,比如委托,你甚至可以使用指针,如果你真的想要,尽管你不会需要在大多数情况下)。
它是SWF(系统Windows窗体)或MWF(托管Windows窗体 - 使用System.Drawing在托管代码中编写的SWF的轻量级版本 - 它将您从基础经典SWF的WinAPI中解放出来)。
还有GTK-Sharp,一种用于C-Sharp的GTK +绑定,但是由于您正在为Windows开发,用户会发现为您的应用程序安装第三方GUI框架很奇怪。
我不建议使用WPF。它直接调用底层图形硬件,这意味着它非常快,但根本不可移植。它只能在具有DirectX兼容硬件渲染单元(图形卡)的x86系统(不是SPARC等)上运行,并且不能在具有强大硬件抽象的系统上运行(如大多数Unices,如BSD或Linux或Solaris)。
Novell还表示,由于它强大的硬件依赖性(Novell希望Mono可以跨多个处理器平台移植),他们将在不久的将来永远不会实施WPF。不要使用WPF。软件不再仅仅是一种抛弃产品,而在涉及操作系统时,我们正处于旋转时代。您今天运行的平台不一定是您明天要运行的平台。 WPF是由Microsoft和Intel开发的专利和专利保护技术。如果您使用它,您将发现自己处于一个非常好的Win32-on-x86供应商锁定中。这意味着您肯定会发现自己迟早会完全重写您的应用程序。即使您今天不需要可移植性,也只需从头开始编写便携式软件。我从经验告诉你,明天你需要携带。绝对!
答案 3 :(得分:3)
您可以使用Windows窗体或Windows Presentation Foundation来开发GUI;虽然,Windows Forms可能会让您更熟悉。如果您在Google上搜索 Windows Forms教程,您将获得许多入门选项。
如果您需要使用.NET 2.0,则仅限于Win Forms。 WPF需要.NET 3.5。
我建议下载微软的免费Visual Studio Express Edition以用于开发。它包括一个出色的拖放式GUI设计工具。
答案 4 :(得分:3)
我不同意WinForms的所有支持者。这并不容易。对于具有GUI编程传统经验的人来说可能更容易,但这张海报没有那个。
WPF有一个更好的设计故事,数据绑定比WinForms好多了。您可以在WinF上启动和运行至少与WinForms一样快,然后在不遇到WinForms的限制的情况下更进一步。将此与VS 2010中的设计时数据绑定相结合,我想说任何开始进行GUI开发的人都应该完全绕过Winforms。
答案 5 :(得分:2)
我建议先学习Winforms,然后再移动WPF。 Winforms更容易学习并且可以快速完成工作。然而,未来是WPF,所以我不会把它留在黑暗中。我发布了一些关于GUI开发工作的好书和链接。
Don't Make Me Think
About Face 3.0
The Inmates Are Running the Asylum
GUI Bloopers
答案 6 :(得分:1)
C#WinForms在实现快速实用的GUI方面将是最快的。虽然如果您考虑制作复杂的GUI,动画,3D等,WPF会更好。
您可以使用CodePlex找到一些好的工作项目,以便在WinForms和WPF的最佳实践方面进行学习。
您还可以查看here以获取WPF和WinForms上的一些好书。
答案 7 :(得分:1)
用c#'
阅读petzold的编程窗口或者只是潜入视觉工作室。使用VS创建GUI非常简单 - 您会喜欢它
你会发现从java到c#的langauge过渡非常简单(不是gui bit tho)
答案 8 :(得分:-3)
我想我已经得出结论,C#是最好的和最快的方式(如果我错了,请纠正我)。你推荐什么?
就个人而言,我会坚持使用Java。我们(意为OffByZero,我共同创立的公司)发布了一个名为OBZVault的加密文本编辑器,它是用Java编写的。
我们最初在Linux中编写它,然后移植到Mac OS X和Windows。我们发现Windows端口提供了一个完全可以接受的外观和感觉 - 几乎(但不完全)像本机Windows应用程序。
我们使用InnoSetup构建了一个原生的Windows安装程序,并发现它非常好。
结论:除非你想学习一门新语言&平台,或者您对.NET等不同平台提供的功能有特定需求,也适用于Windows开发的Java。您需要学习Java GUI框架,但如果您切换到.NET,则必须学习WPF或WinForms。
对于经验丰富的.NET开发人员来说,在WinForms或WPF中构建Windows应用程序可能会更快,但如果您已经精通Java,我会坚持使用这些工具(语言,库) ,IDE),你知道。