(Windows)桌面应用程序开发的未来:WPF和Silverlight的未来

时间:2021-08-13 11:22:43

Recently I have read some articles/blogs/comments about the development and history of WPF and Silverlight. In some forums many developers and users criticize the performance of WPF applications (for example Visual Studio 2010). Actually the market share of Silverlight in comparison to Flash is not very high. At PDC 2010 Bob Muglia said something like "our Silverlight strategy and focus going forward has shifted...." and Microsoft wants to push HTML5 in the future.

最近我读了一些关于WPF和Silverlight的开发和历史的文章/博客/评论。在一些论坛中,许多开发人员和用户批评WPF应用程序的性能(例如Visual Studio 2010)。实际上,与Flash相比,Silverlight的市场份额不是很高。在PDC 2010上,Bob Muglia表示“我们的Silverlight战略和未来的重点已经发生了变化......”,微软希望在未来推动HTML5。

I have started learning WPF and Silverlight some months ago and now I must ask myself, if I should continue investing time in learning and practicing these (in my opinions) very nice and powerful technologies!? Do they have a future? Do (Windows) desktop (client) applications have a future? Do so-called "Rich Internet Applications" have a future? Or will HTML5 become the "absolute truth" - the main platform for software development?

几个月前我已经开始学习WPF和Silverlight,现在我必须问自己,我是否应该继续花时间学习和实践这些(在我看来)非常好的和强大的技术!?他们有未来吗? (Windows)桌面(客户端)应用程序有未来吗?所谓的“富互联网应用”有未来吗?或者HTML5会成为“绝对真理” - 软件开发的主要平台吗?

What is your opinion and what do you think?

你有什么看法,你怎么看?

4 个解决方案

#1


7  

I have very similar questions as yours. Since these questions are subjective, people tend to have different answers on the future of WPF and Silverlight. To me, HTML5 will never replace a technology like WPF. They say "never say never", but even if it is to replace it, it won't happen anytime soon. HTML5 looks to me like Silverlight and Flash. We won't need to install plugins (even this claim is subjective because both Silverlight and Flash are advancing, so will HTML5 really fully catch up with those?). Also, last time I checked out some HTML5 samples, I noticed that once you refresh your webpage, animations start from the beginning - something Flash is (to me) badly famous for.

我和你的问题非常相似。由于这些问题是主观的,人们往往对WPF和Silverlight的未来有不同的答案。对我来说,HTML5永远不会取代像WPF这样的技术。他们说“从不说永远不会”,但即使是要取而代之,也不会很快发生。 HTML5在我看来像Silverlight和Flash。我们不需要安装插件(即使这种说法是主观的,因为Silverlight和Flash都在推进,HTML5真的会完全赶上那些吗?)。另外,上次我查看了一些HTML5示例时,我注意到一旦你刷新了你的网页,动画从头开始 - 一些Flash(对我而言)非常着名。

WPF is a different technology. I am not a web developer myself, but honestly, I'd hate to have to have a bunch of tools in my toolbox like HTML, CSS, Javascript. You can use a single framework instead and develop what you want in WPF. It's a great technology yet to be discovered by many developers. Of course, that brings us to the question of "Do I go with the desktop or the web?"

WPF是一种不同的技术。我自己不是一个Web开发人员,但老实说,我不想在我的工具箱中拥有一堆工具,如HTML,CSS,Javascript。您可以使用单个框架,并在WPF中开发您想要的内容。这是许多开发人员尚未发现的伟大技术。当然,这带给我们的问题是“我选择桌面还是网络?”

As for the future of desktop development, it is not going anywhere anytime soon either. I see a growing tendency to develop web applications, but we have to realize that both desktop development and cloud development have their pros and cons. Right now, I find web apps slow and I am guessing web apps are not as capable as desktop apps. The future of Windows development depends on the market share of Windows. If Microsoft can keep up their monopoly and your application is useful and interesting, I don't think users will ignore it. I think the difference between desktop development and web development is blurring, and as physical machines get more and more powerful, there will be less users complaining about performance issues and frequent updates. Why do we even bother to ask users if they want to update their software? I think such prompts are annoying like hell. It should be more preferable to install the updates silently and let the user use the application next time they run it.

至于桌面开发的未来,它也不会很快到来。我看到开发Web应用程序的趋势越来越强,但我们必须意识到桌面开发和云开发都有其优点和缺点。现在,我发现网络应用程序速度很慢,我猜测网页应用程序不如桌面应用程序那么强大。 Windows开发的未来取决于Windows的市场份额。如果微软可以保持垄断,你的应用程序是有用和有趣的,我认为用户不会忽视它。我认为桌面开发和Web开发之间的差异正在变得模糊,并且随着物理机器变得越来越强大,将会有更少的用户抱怨性能问题和频繁的更新。为什么我们甚至懒得问用户是否要更新他们的软件?我认为这样的提示很像地狱一样烦人。最好以静默方式安装更新,并让用户在下次运行时使用该应用程序。

P.S. WPF will be more popular than WinForms, and hopefully MS will discontinue the latter one day. So, it gives you one more open door to invest in it.

附: WPF将比WinForms更受欢迎,希望MS有一天会停止后者。因此,它为您提供了一个更大的投资门户。

Also, I've always hated the idea of my application running inside a browser. I guess that makes me selfish, but I don't want to worry about browsers crashing, browser incompatibilites, browsers not yet supporting certain features of a technology, and so on.

此外,我一直讨厌我的应用程序在浏览器中运行的想法。我想这让我很自私,但我不想担心浏览器崩溃,浏览器不兼容,浏览器尚未支持技术的某些功能,等等。

#2


10  

This is extremely speculative, but a few key points:

这是极具推测性的,但有几点要点:

  1. There will never be a single "absolute truth" in software development. Different tools are used for different purposes to address different problems.
  2. 在软件开发中永远不会有一个“绝对真理”。不同的工具用于不同的目的以解决不同的问题。
  3. Do you enjoy writing software in WPF and Silverlight? Do you find them to be useful tools for crafting quality software? Are you good at it? If so, then why stop?
  4. 你喜欢在WPF和Silverlight中编写软件吗?您是否发现它们是制作高质量软件的有用工具?你擅长这个吗?如果是这样,那为什么要停止?
  5. Focus more on writing software and less on the tools you use. Familiarity with a wide selection of tools is important, but don't let the tools take your focus off of what you're doing... writing software. If the tool becomes a crutch, something is wrong. If you're making a career out of being familiar with a given tool, something is wrong. It's better to be a "software developer who knows Silverlight" than a "Silverlight developer."
  6. 更专注于编写软件而不是使用您使用的工具。熟悉各种工具非常重要,但不要让工具把注意力从你正在做的事情上移开......编写软件。如果工具变成拐杖,那就错了。如果你的职业生涯是因为熟悉某个特定的工具,那就错了。最好是成为“了解Silverlight”的“软件开发人员”,而不是“Silverlight开发人员”。

#3


3  

The quote from Bob Muglia was misunderstood and blown way out of proportion. Microsoft's focus has not shifted away from Silverlight as so many people assumed from his interview. It's just that Silverlight is now being used in different ways (business apps, apps for the phone, etc) and their focus has changed accordingly.

鲍勃·穆利亚(Bob Muglia)的引用被误解,并被吹得不成比例。正如许多人从他的采访中所假设的那样,微软的焦点并没有从Silverlight转移。只是Silverlight现在以不同的方式使用(商业应用程序,手机应用程序等),并且他们的重点也相应地发生了变化。

And then comparing to Flash is not really fair as Flash has had a huge head start. Flash was introduced in 1996 and has had a long time to spread. What I've looked at more is Silverlight growth over the years. RiaStats.com now shows a 63% adoption rate for Silverlight 4 which is quite good. There are still times when that adoption rate is a little low for a mainstream app. But the fact that it continues to grow shows promise for Silverlight's future.

然后与Flash比较并不公平,因为Flash已经有了一个巨大的先机。 Flash于1996年推出,并且有很长的篇幅。我多看了多年来Silverlight的增长。 RiaStats.com现在显示Silverlight 4的采用率为63%,非常好。对于主流应用,有时候采用率有点低。但它继续增长的事实显示了Silverlight未来的前景。

On a slightly more subjective note, I'm a fan of Silverlight's portability. The fact that it's still a ~5MB download and runs in or out of the browser on a PC or a Mac is very nice. And then Silverlight is also being used on WP7, and soon the XBOX as well. Just by learning Silverlight you open yourself up to develop for a variety of computers and devices.

在一个稍微更主观的说明中,我是Silverlight可移植性的粉丝。事实上它仍然是大约5MB的下载并在PC或Mac上运行或运行浏览器是非常好的。然后Silverlight也在WP7上使用,很快也在XBOX上使用。只需学习Silverlight,您就可以开发各种计算机和设备。

#4


2  

HTML imposes a significant layer of abstraction between the developer and the visual object model. The payoff for this abstraction is enormous. But the abstraction means that there's always going to be a substantial gap between what you can do in an HTML application and what you can do with technology that's designed to interoperate directly with the operating system.

HTML在开发人员和可视对象模型之间强加了一个抽象层。这种抽象的回报是巨大的。但抽象意味着,在HTML应用程序中可以执行的操作与使用旨在与操作系统直接互操作的技术所能做的事情之间总会存在很大差距。

WPF applications run under Windows. So do browser applications, but the difference is that WPF applications know it. You can build a WPF application that knows what resources are available to the currently logged in Windows user. You can build a WPF application that can interoperate with the file system, databases, message queues. Much of this can be done by HTML applications if they interoperate with web services, but that introduces even more layers of abstraction.

WPF应用程序在Windows下运行。浏览器应用程序也是如此,但区别在于WPF应用程序知道它。您可以构建一个WPF应用程序,该应用程序知道当前登录的Windows用户可以使用哪些资源。您可以构建可与文件系统,数据库和消息队列进行互操作的WPF应用程序。如果HTML应用程序与Web服务互操作,那么大部分可以通过HTML应用程序完成,但这会引入更多的抽象层。

In a very real sense, the question, "Does WPF have a future?" is really, "Does Windows have a future?" After all, if you're not going to use desktop applications, why do you need a desktop operating system? While I don't feel that this is a question whose answer is necessarily self-evident - maybe ChromeOS, which is to say, Android, is going to stun us all - I'm not losing a lot of sleep over it right now.

在一个非常真实的意义上,问题是,“WPF有未来吗?”真的,“Windows有未来吗?”毕竟,如果您不打算使用桌面应用程序,为什么还需要桌面操作系统?虽然我不认为这是一个问题,其答案必然是不言而喻的 - 也许ChromeOS,也就是Android,会让我们大吃一惊 - 我现在并没有因此而失去很多睡眠。

#1


7  

I have very similar questions as yours. Since these questions are subjective, people tend to have different answers on the future of WPF and Silverlight. To me, HTML5 will never replace a technology like WPF. They say "never say never", but even if it is to replace it, it won't happen anytime soon. HTML5 looks to me like Silverlight and Flash. We won't need to install plugins (even this claim is subjective because both Silverlight and Flash are advancing, so will HTML5 really fully catch up with those?). Also, last time I checked out some HTML5 samples, I noticed that once you refresh your webpage, animations start from the beginning - something Flash is (to me) badly famous for.

我和你的问题非常相似。由于这些问题是主观的,人们往往对WPF和Silverlight的未来有不同的答案。对我来说,HTML5永远不会取代像WPF这样的技术。他们说“从不说永远不会”,但即使是要取而代之,也不会很快发生。 HTML5在我看来像Silverlight和Flash。我们不需要安装插件(即使这种说法是主观的,因为Silverlight和Flash都在推进,HTML5真的会完全赶上那些吗?)。另外,上次我查看了一些HTML5示例时,我注意到一旦你刷新了你的网页,动画从头开始 - 一些Flash(对我而言)非常着名。

WPF is a different technology. I am not a web developer myself, but honestly, I'd hate to have to have a bunch of tools in my toolbox like HTML, CSS, Javascript. You can use a single framework instead and develop what you want in WPF. It's a great technology yet to be discovered by many developers. Of course, that brings us to the question of "Do I go with the desktop or the web?"

WPF是一种不同的技术。我自己不是一个Web开发人员,但老实说,我不想在我的工具箱中拥有一堆工具,如HTML,CSS,Javascript。您可以使用单个框架,并在WPF中开发您想要的内容。这是许多开发人员尚未发现的伟大技术。当然,这带给我们的问题是“我选择桌面还是网络?”

As for the future of desktop development, it is not going anywhere anytime soon either. I see a growing tendency to develop web applications, but we have to realize that both desktop development and cloud development have their pros and cons. Right now, I find web apps slow and I am guessing web apps are not as capable as desktop apps. The future of Windows development depends on the market share of Windows. If Microsoft can keep up their monopoly and your application is useful and interesting, I don't think users will ignore it. I think the difference between desktop development and web development is blurring, and as physical machines get more and more powerful, there will be less users complaining about performance issues and frequent updates. Why do we even bother to ask users if they want to update their software? I think such prompts are annoying like hell. It should be more preferable to install the updates silently and let the user use the application next time they run it.

至于桌面开发的未来,它也不会很快到来。我看到开发Web应用程序的趋势越来越强,但我们必须意识到桌面开发和云开发都有其优点和缺点。现在,我发现网络应用程序速度很慢,我猜测网页应用程序不如桌面应用程序那么强大。 Windows开发的未来取决于Windows的市场份额。如果微软可以保持垄断,你的应用程序是有用和有趣的,我认为用户不会忽视它。我认为桌面开发和Web开发之间的差异正在变得模糊,并且随着物理机器变得越来越强大,将会有更少的用户抱怨性能问题和频繁的更新。为什么我们甚至懒得问用户是否要更新他们的软件?我认为这样的提示很像地狱一样烦人。最好以静默方式安装更新,并让用户在下次运行时使用该应用程序。

P.S. WPF will be more popular than WinForms, and hopefully MS will discontinue the latter one day. So, it gives you one more open door to invest in it.

附: WPF将比WinForms更受欢迎,希望MS有一天会停止后者。因此,它为您提供了一个更大的投资门户。

Also, I've always hated the idea of my application running inside a browser. I guess that makes me selfish, but I don't want to worry about browsers crashing, browser incompatibilites, browsers not yet supporting certain features of a technology, and so on.

此外,我一直讨厌我的应用程序在浏览器中运行的想法。我想这让我很自私,但我不想担心浏览器崩溃,浏览器不兼容,浏览器尚未支持技术的某些功能,等等。

#2


10  

This is extremely speculative, but a few key points:

这是极具推测性的,但有几点要点:

  1. There will never be a single "absolute truth" in software development. Different tools are used for different purposes to address different problems.
  2. 在软件开发中永远不会有一个“绝对真理”。不同的工具用于不同的目的以解决不同的问题。
  3. Do you enjoy writing software in WPF and Silverlight? Do you find them to be useful tools for crafting quality software? Are you good at it? If so, then why stop?
  4. 你喜欢在WPF和Silverlight中编写软件吗?您是否发现它们是制作高质量软件的有用工具?你擅长这个吗?如果是这样,那为什么要停止?
  5. Focus more on writing software and less on the tools you use. Familiarity with a wide selection of tools is important, but don't let the tools take your focus off of what you're doing... writing software. If the tool becomes a crutch, something is wrong. If you're making a career out of being familiar with a given tool, something is wrong. It's better to be a "software developer who knows Silverlight" than a "Silverlight developer."
  6. 更专注于编写软件而不是使用您使用的工具。熟悉各种工具非常重要,但不要让工具把注意力从你正在做的事情上移开......编写软件。如果工具变成拐杖,那就错了。如果你的职业生涯是因为熟悉某个特定的工具,那就错了。最好是成为“了解Silverlight”的“软件开发人员”,而不是“Silverlight开发人员”。

#3


3  

The quote from Bob Muglia was misunderstood and blown way out of proportion. Microsoft's focus has not shifted away from Silverlight as so many people assumed from his interview. It's just that Silverlight is now being used in different ways (business apps, apps for the phone, etc) and their focus has changed accordingly.

鲍勃·穆利亚(Bob Muglia)的引用被误解,并被吹得不成比例。正如许多人从他的采访中所假设的那样,微软的焦点并没有从Silverlight转移。只是Silverlight现在以不同的方式使用(商业应用程序,手机应用程序等),并且他们的重点也相应地发生了变化。

And then comparing to Flash is not really fair as Flash has had a huge head start. Flash was introduced in 1996 and has had a long time to spread. What I've looked at more is Silverlight growth over the years. RiaStats.com now shows a 63% adoption rate for Silverlight 4 which is quite good. There are still times when that adoption rate is a little low for a mainstream app. But the fact that it continues to grow shows promise for Silverlight's future.

然后与Flash比较并不公平,因为Flash已经有了一个巨大的先机。 Flash于1996年推出,并且有很长的篇幅。我多看了多年来Silverlight的增长。 RiaStats.com现在显示Silverlight 4的采用率为63%,非常好。对于主流应用,有时候采用率有点低。但它继续增长的事实显示了Silverlight未来的前景。

On a slightly more subjective note, I'm a fan of Silverlight's portability. The fact that it's still a ~5MB download and runs in or out of the browser on a PC or a Mac is very nice. And then Silverlight is also being used on WP7, and soon the XBOX as well. Just by learning Silverlight you open yourself up to develop for a variety of computers and devices.

在一个稍微更主观的说明中,我是Silverlight可移植性的粉丝。事实上它仍然是大约5MB的下载并在PC或Mac上运行或运行浏览器是非常好的。然后Silverlight也在WP7上使用,很快也在XBOX上使用。只需学习Silverlight,您就可以开发各种计算机和设备。

#4


2  

HTML imposes a significant layer of abstraction between the developer and the visual object model. The payoff for this abstraction is enormous. But the abstraction means that there's always going to be a substantial gap between what you can do in an HTML application and what you can do with technology that's designed to interoperate directly with the operating system.

HTML在开发人员和可视对象模型之间强加了一个抽象层。这种抽象的回报是巨大的。但抽象意味着,在HTML应用程序中可以执行的操作与使用旨在与操作系统直接互操作的技术所能做的事情之间总会存在很大差距。

WPF applications run under Windows. So do browser applications, but the difference is that WPF applications know it. You can build a WPF application that knows what resources are available to the currently logged in Windows user. You can build a WPF application that can interoperate with the file system, databases, message queues. Much of this can be done by HTML applications if they interoperate with web services, but that introduces even more layers of abstraction.

WPF应用程序在Windows下运行。浏览器应用程序也是如此,但区别在于WPF应用程序知道它。您可以构建一个WPF应用程序,该应用程序知道当前登录的Windows用户可以使用哪些资源。您可以构建可与文件系统,数据库和消息队列进行互操作的WPF应用程序。如果HTML应用程序与Web服务互操作,那么大部分可以通过HTML应用程序完成,但这会引入更多的抽象层。

In a very real sense, the question, "Does WPF have a future?" is really, "Does Windows have a future?" After all, if you're not going to use desktop applications, why do you need a desktop operating system? While I don't feel that this is a question whose answer is necessarily self-evident - maybe ChromeOS, which is to say, Android, is going to stun us all - I'm not losing a lot of sleep over it right now.

在一个非常真实的意义上,问题是,“WPF有未来吗?”真的,“Windows有未来吗?”毕竟,如果您不打算使用桌面应用程序,为什么还需要桌面操作系统?虽然我不认为这是一个问题,其答案必然是不言而喻的 - 也许ChromeOS,也就是Android,会让我们大吃一惊 - 我现在并没有因此而失去很多睡眠。