Silverlight企业应用实战

📅 2026/7/6 4:25:01
Silverlight企业应用实战
曾几何时我们听过太多的跨平台一次编译多处运行。但是每当你亲身实践你就会遗憾的发现这一切都是一个美丽的谎言Java和.Net二位先驱已经在各自的文章中阐述了各自的观点。我想说的是又一次被跨平台这个美丽的谎言所包裹起来的——RIA开发。现在RIA最火的无外乎两种Flash和Silverlight。从理论来说这两者都是走的插件运行环境的路数谁又不是呢。。Java虚拟机。。.Net Framework。。我们能够听到的无外乎既可以支持PC又可以支持移动设备云云。。但是事实呢不知道有多少人做RIA开发。Flash什么时候出的移动版本不算阉割的哪个PC上运行的Flash可以直接在移动版本上运行么iPad为什么干脆不支持FlashiPad为什么可以选择不支持FlashSilverlight有PC和Mac的Runtime但是Windows Phone 7为什么尚不支持“浏览器内运行的Silverlight”目前Windows Phone 7的开发框架为Silverlight但是这和PC上运行的Silverlight Runtime有很大的区别。上面提到的Flash、Silverlight是RIA领域的翘楚。每一个都包裹着跨平台的外衣。但是直到你真正去尝试“跨平台”你才发现这一切都是美丽的谎言。但是另外一个事实我不得不说那就是跨平台只不过是程序员的一厢情愿平台商的一种宣传策略。跨平台根本是不可能的各位不要狭隘了编译通过能运行就叫跨平台是做技术人的悲哀PC用鼠标手机用手指头你光编译过了有个什么用客户能用么PC多大的分辨率手机多大的分辨率你光能“显示”有什么用用鼠标点拿手指头戳手机上面连hover都没有PC上的东西手机上就算运行了又能怎样因为硬件设备和运行环境的不同带来的用户体验的不同才是跨平台最大的障碍这一障碍不是任何一个“技术”或“技术提供商”可以解决的 Jeffrey Zhao的分割线 #8楼2010-05-31 00:32Jeffrey Zhao那个啥我说一个观点和讨论可能关系不大。就是说其实我很不看中“跨平台”这一点的因为正经的项目好像基本不会有跨平台的需求。我重视mono但也不是看中它的跨平台性而是看中它也是个足够成熟的执行环境。换句话说我用mono也是在开发阶段就在mono上跑不是先用ms .net开发再用mono跑。回复你的观点我非常同意。正因为“跨平台”不是一件关键的事情因此才是各个利益集团宣传的“噱头”。在这种包装下的“跨平台”是没有意义的。就像你所说为什么你不是在ms.net上开发在mono上跑。因为“跨平台”本身就不现实不需要修改代码、不用担心兼容问题、不担心执行效率。为了保证程序开发出来在mono中运行良好你就不得不在mono环境中开发。保证开发环境和真实环境是一样的是最节省成本的方式包括后期的部署、测试等等。因此如果哪怕是因为任何一点点原因而不能达到“开发无关”的跨平台那跨平台本身就是没有意义的因此跨平台只不过是理想化的一种描述是静水楼台。还是将跨平台描述为“增强代码的可移植性”更靠谱一些吧#23楼2010-05-31 09:16Jeffrey Zhao刘晨_以然胜甲语言和平台分开谈才有意义关键是才能谈清楚因为现在一个平台上可以使用的语言太多了。你混着谈优势或劣势那么它究竟是语言带来的还是平台带来的这个话题这里没法展开感兴趣的话可以来我的博客讨论。回复Jeffrey Zhao个人感觉你还是比较支持.net的。平台和语言~建议你写篇博客专门展开一下。好让我们比较有机会讨论~ Ivony的分割线 #10楼2010-05-31 01:32Ivony...首先跨平台不等于全平台如果你想你的程序编译一次就能在你家的微波炉上运行那的确是不可能的。这个是平台能力问题。其次不同的平台手机、桌面、云端其交互界面是截然不同而又不可调和的至少现在是所以一切有交互的程序现在来说都不可能不作任何修改在所有平台上得到最好的用户体验。但把这说成跨平台是不可能的未免就太搞笑了。在不涉及到交互界面的服务端程序.NET、Java、PHP、C都有非常漂亮的跨平台实例。在这种背景下抛出一个“跨平台是不可能的”观点实在很蛋疼。回复应该是我才疏学浅我确实不知道哪些程序可以在不做代码修改的情况下跨平台。建议你仔细阅读以下JefferyZhao的观点而不用先蛋疼。老赵的观点其实是非常有价值和现实意义的。我的服务跑在Linux上我会在意这段程序是否可以再Windows上运行么如果我要在Windows上运行我的服务我一定会在Windows上去开发和测试。对于你“微波炉”的观点没有人说跨平台就是全平台。你的跨平台界定的是几个平台呢1个还跨啥2个哪两个还是多个。。我敢说你不是做UI的因此你只将跨平台限定在“服务端程序”。但是跨平台的概念可不是仅仅局限于“服务端程序”。在我看来平台的变化和用户环境的变化是不可分割的难道有前提条件的跨平台不是更加蛋疼的一件事情么#35楼2010-05-31 11:17Ivony...如果LZ认为Windows 95和Windows 7的区别只是在于数字的话那的确没办法。不得不说LZ的狭隘之处并不是所有的程序都需要与用户来交互。没有用户交互的程序这并不是限制而是程序本来就是这样。程序本身是可以跨平台的但交互界面不能。譬如说Windows Phone没有任务栏这关程序什么事儿如果我的程序与任务栏没关系界面小到可以放到任何屏幕功能简单到在任何设备都能交互。譬如说就是一个袖珍计算器。老实说我没看出来在浏览器和WP里面运行需要改多少代码他们只是承载的容器不同。也就是说我只需要做一个计算器的控件WP放在WP的容器里浏览器放在浏览器的容器里甚至于WPF的应用程序也可以直接拿来编译下放在WPF的容器里面就好了。所以这些限制完全是由于交互界面所造成的当我们的程序简单到可以满足所有交互界面的要求的时候就自然而然的轻松跨平台了。LZ不可能不知道这个事实只是因为自己一些蛋疼的牢骚就嚷嚷什么“跨平台是不可能的”实在是蛋疼。回复首先你将“跨平台”限制为“不考虑交互界面”这本身就是狭隘的做法相对于你所言只要UI可以满足跨平台程序就可以跨平台我看未必吧你说容器。。这不是又回到了问题的原点如果有一个“容器”是跨平台的那下面开发出来的程序当然是跨平台的现在的问题就是没有跨平台的容器这个容器包含runtimeframework..等等运行环境别说我狭隘啊交互界面不能实现多平台兼容只是跨平台是伪命题的一个例证相比你说的而言老赵的观点反而更具代表性跨平台只是商业的一种包装手段在实际的运作阶段跨平台就是虚幻的有几个敢把Windows开发出来的程序直接运行在Linux上至少我在实际项目中没有看到这就是跨平台的风险跨本身就是最大的问题