C#Windows桌面应用程序

C#Windows桌面应用程序

问题描述:

现在是2012年,C#Windows Desktop App使用哪种技术进行开发?
1)Windows Forms ----我正在用它来学习C#,并使用VS2008 + Windows xp + SQL2005;
2)Windows Presentation Foundation(WPF)--- Windows Forms是新技术吗?
3)将来还有另一个吗?
我需要同时学习Windows Forms和WPF for Desktop App吗?
谢谢!

Now Year 2012,C# Windows Desktop App use which technology to develope?
1)Windows Forms ----I am using it for learning C#,and use VS2008 + Windows xp+SQL2005;
2)Windows Presentation Foundation(WPF)--- Is the Windows Forms new technology?
3)The another one in the future ?
DO I need learn both Windows Forms and WPF for Desktop App?
Thanks !

现在,您可以从桌面开发]
Well for now you can start from Here[Desktop Development]


唯一有效的答案是:这完全取决于您.

我的一般建议是,专注于编程的基本方面,并节省您追逐每个酷"趋势的时间.

一些注意事项:

微软做出了不俗的举动,退出了Windows. WPF并不完全是类似于Forms的新表单.它与Windows技术(如消息)几乎没有关系-仅在*窗口级别,它不使用GDI,并且基于DirectX.而硬件支持是用户.微软已经开发了名为Singularity的操作系统,该操作系统基于HAL之上的纯CLR,据报道,该操作系统正在基于相同方法的Windows后代号为"Midory"的系统上工作.由于大多数Windows旧版将被丢弃,因此得知Forms库已被删除,我不会感到惊讶.
另一方面,称为Mono的CLR的免费开源实现支持Forms而不是WPF,这主要是由于WPF代码量巨大.即使原始的Forms实现与原始Windows API紧密绑定,Mono仍可以在Linux,Mac OS X和其他平台上成功实现它.我在Windows上开发的Forms应用程序可以在Linux机器上运行,而无需重新编译.

我对 Metro Style应用程序没有任何意见.请自己看看:
http://msdn.microsoft.com/en-us/windows/apps/ [ ^ ],
http://msdn.microsoft.com/zh-我们/library/windows/apps/br230302%28v=vs.110%29.aspx [
The only valid answer will be: it''s totally up to you.

My general advice would be to concentrate on fundamental aspects of programming and save your time on chasing every "cool" trend.

A few notes:

Microsoft made a decent move out of Windows. WPF is not exactly a new form similar to Forms. It has very little to do with Windows technologies like messages — only at the level of the top level window, it does not use GDI and is based on DirectX; and the hardware support is user. Microsoft already developed the OS named Singularity with is based on pure CLR on top of HAL, and is reportedly working on the post-Windows system codenamed "Midory" which is based on the same approach. As most of Windows legacy will be thrown out, I would not be surprised to learn that Forms library is dropped.

From the other hand, the open source free implementation of CLR called Mono supports Forms and not WPF, mostly because of huge volume of WPF code. Even though original Forms implementation is tightly bound with raw Windows API, Mono successfully implements it on Linux, Mac OS X and other platforms. The Forms applications I develop on Windows run on my Linux box without recompilation.

I have no certain opinion on the Metro Style applications. Please see by yourself:
http://msdn.microsoft.com/en-us/windows/apps/[^],
http://msdn.microsoft.com/en-us/library/windows/apps/br230302%28v=vs.110%29.aspx[^].

—SA


我使用WPF,由于对MVVM应用程序的支持,对于复杂的应用程序,它比WinForms更好.我使用了与WinForms for WPF一起使用的更传统的编程,并且由于这样做而受到诅咒,尽管我是从一个简单的应用程序开始的,因为我使它变得更强大,但它却比MVVM维护起来困难得多.应用. WPF的问题在于它的学习曲线要​​陡峭得多,并且由于程序员不了解WPF,因此存在很多不良的WPF应用.现在,我对WPF非常满意,因此与WinFOrm相比,创建WPF应用程序要容易得多,因此我从WinForm开始.被警告说,我花了大约一年时间才变得如此舒服.

在WPF中工作的最大好处是需求很大,因为很少有人能胜任,但是使用WinForms似乎有更多职位可用,原因是遗留应用程序,并且不愿意采用新的应用程序.新应用的技术.
I work with WPF, and it is a lot better for complex applications than WinForms because of the support of the MVVM application. I have used more traditional programming that is used with WinForms for WPF, and I have cursed myself for doing it becasue, even though I started out with a simple application, as I made it more capable, it was much harder to maintain than an MVVM application. The trouble with WPF is it is a much steeper learning curve, and there are an awful lot of bad WPF applciations out there because programmers doe not understand WPF. Now I am comfortable enough with WPF so that it is easier for me to create a WPF application than a WinFOrm, and I started with WinForm. Be warned that it took me about a year to get so comfortable.

The great thing about working in WPF is that there are lot of demand because there are few people that are good at it, but it seems like there are a lot more positions available using WinForms becuase of legacy applications, and unwillingness to take on a new technology for new applications.