当前位置: 代码迷 >> .NET新技术 >> [讨论]小弟我可不可以把WPF当成C/S和B/S的集大成者
  详细解决方案

[讨论]小弟我可不可以把WPF当成C/S和B/S的集大成者

热度:644   发布时间:2016-04-25 01:24:27.0
[讨论]我可不可以把WPF当成C/S和B/S的集大成者
WPF既可以编写客户端,WIN7大部分界面就是WPF风格的,而且你编写的客户端也可以在浏览器中运行,是不是我可以理解用WPF也可以编写网站,只不过这个网站界面在运行时是下载到本地运行的?

大致看了下WPF技术,感觉如果用它来写网站的话,至少在页面上排版布局画图,都比HTML来的要更直观一些,功能也更多一些。
------解决思路----------------------
写网站的是银光,而且它已经悲剧了。WPF是做桌面程序的,能在浏览器显示但是不能含业务代码,也就是只能看不能用。
------解决思路----------------------
WPF的code name叫Avalon,这个名字应该是带着不少希望。当时微软想着WPF来在桌面环境慢慢替代WinForm,然后WPF的子集Silverlight来和Flash竞争,占领RIA市场。可是WPF从诞生到现在一直都面临着很多问题,启动速度、资源占用、设计时频繁崩溃、字体渲染、高DPI问题等等。它在桌面领域的市场也一直不尽人意。

而Silverlight更是生不逢时,互联网巨头大力推广HTML5/CSS3,发展移动互联网,Adobe根深蒂固的Flash也招架不住,Silverlight只能悻悻而终了。

不过随着微软发展统一平台,在移动设备上先是沿用了Silverlight框架,之后又推出了Windows Runtime(WinRT),其中包含WPF或者说Silverlight的后继者Windows Runtime XAML Framework,可以说成为了微软统一平台上的标准UI框架。

像微软,Oracle(Java),Adobe,Google这些大公司都有需求或者说野心让自己的技术在各种平台和异构环境下运行,想法很美好,可是具体到实现过程中就会发现,“美好”是要付出很大代价的,根本不存在一个能解决一切问题的完美方案。所以说不能指望一种技术能成为集大成者,我们学会使用这一种技术就可以高枕无忧了。而是自己要成为多种技术的集大成者,灵活运用各种技术来开发软件。

------解决思路----------------------
引用:
是不是我可以理解用WPF也可以编写网站,只不过这个网站界面在运行时是下载到本地运行的?


这是错误的!

wpf网页要求客户机上已经安装了相应版本的的.net framwork,不像silverlight程序仅自动下载一个6M的很小的插件然后2秒钟瞬间安装成功,wpf页面需要的.net framework不但庞大、下载缓慢,而且安装起来需要往往需要20分钟这么长时间。

在页面上,你看到的是一个桌面程序,是一堆桌面程序dll被自动复制到客户端的桌面上去执行了,只不过这些程序的 UI 是在浏览器窗口里的界面而已。也就是说,网站向客户端根本没有下载传统的网页(html/css/javascript),而是下载的是wpf程序。
------解决思路----------------------
引用:
网上找vb的实际的开发技术资料,已经很难了。我给你找了一个简单介绍 http://tc.wangchao.net.cn/bbs/detail_743827.html

实际上至少15年前,微软的桌面系统已经很好地入侵到ie里边,可以直接开发“没有窗口边框”的网页版vb程序,跟wpf页面完全一样。

这种东西当时流行不起来(当时的vb动态运行时类库只有1.4M只小),想在也同样流行不起来(现在已经有接近50M之大,而且安装缓慢)。

微软的 silverlight 是个正确的战略,它留下的最宝贵的资产就是那个只有6M的、但是很好地兼容了.net framework类库强大功能的设计思路。“小”和“强”是其存在与Web应用系统开发的主要依据。而wpf页面则不适合进行web应用产品开发。

每次看到MS将原本很大的东西用很小的体积实现大部分功能就感觉很爽,如coreClr、minwin、localdb以及IIS Express等等。刚出来时做sl的时候看到其对数据访问必须异步觉得很头疼,但做完下来发现自己终于脱离了将业务逻辑代码写在view层的码畜水平……