Silverlight之我见

好长时间没搞Silverlight方面的开发了,原本都以为自己早已忘记,然而前阵子(确切一点说,是挺长时间以前了)的时候,发布Windows10的时候,微软宣布新的浏览器将重新开发,关键是后半句引起了我的注意,就是不再支持插件及ActiveX控件,我们这些做微软系的开发者,当然清楚地知道,这将意味着什么,即:silverlight也将被不支持,顿时间掀起一阵不大不小的波浪。

有不少人说,SL已死,赶紧转行H5吧。这番言论也引发了不少的同感,不少企业也跟着招手安排善后工作,也就是组织人赶紧学习H5,为后续转型做准备。

SL以优质的用户体验,敏捷的开发与调试速度,曾获得不少的青睐,尽管始终没赶上FLEX的份额,但是前后语言一致,强大IDE支持,开发与调试都方便,也算是优于FLEX的一处亮点,至少我是这么认为的。另外,H5热闹了五六年,现在仍然是热度、敏感词,并没有普遍到没人愿意搭理的大众化程度,这是我的一个看法,一种比较成熟的语言或标准,不应该是随便什么人往自己的随便哪一款产品上随便贴一个“H5”的标签,就可以拿出去随便忽悠人了的低级认知水平,至少基于这一点,我认为H5在RIA方面还不够成熟地替代SL,H5自身还有一些短板问题要解决,比如便捷录入,快捷键支持,开发与调试的便捷性等等,尽管有一些JS框架可以采用,但是我感觉这些框架并未脱离以前Html标准的束缚,最多也只是在兼容的基础上把这些新的标准与特性给糅合进来了,这些新增加的支持也并未解决H5的短板问题,所以我感觉,H5还要有很长的路要走,有可能是三年、五年,也可能是十年,说近也近,说远也远,立足眼下,SL还依旧是一个不错的解决方案,与其争论SL与H5的优劣,不如立足解决眼下的实际问题,实践出真知。

不过,我一直担忧的问题,不是SL作为一个较佳的RIA解决方案的命题真与假,而是担心微软对SL的决断,SL确实在走下坡路,它也最终将被H5替代,但是如果微软硬生生地关闭SL的发展,这才是最要命的。任何语言都有它擅长的领域,SL也不例外,就像早已过时的PB与Dephi,尽管已过风口,但是仍然是较佳的解决方案,PB强大的数据窗口,一招即可立足于江湖,Dephi繁多的控件支持,也足足让它在江湖中争得一席位子。

眼下SL的发展,我感觉应以OOB为立足点,面对浏览器诸多不支持的围剿,应自力更生,发展OOB亮点,这是我自学习及开发SL以来一直追捧的方向,OOB酷似桌面程序,却可以方便更新,诸多的操作权限与便利,是获得了更大更多的发挥空间,然而不巧的是,SL的OOB与自家的WPF有部分重叠,我担心微软会以此砍掉SL,大力主推WPF。

WPF依托Net框架的强大支持,更多的权限与便捷,但是慢腾腾的界面展现体验,让我不爽,再加笨重的net框架,以及对windows操作系统的要求,不便安装与部署,让我头大。SL小巧,对环境支持还可以,是否可以两者相借鉴或结合一下呢?简述之,SL之OOB作为WPF桌面开发的轻量级实现,儿WPF作为SL的重量级呈现。

最后,还不禁要问微软:SL的路在何方?不知微软是否可以有一点点地意识到:SL的路在脚下呢。

不管SL的命运如何,随着net core的带来,相信SL会获得重生或许会以另外的形式出现,也许WPF会更加效率,更加易用,也算是SL的造化与影响吧。

园子里的那些曾经让我敬佩不已的SL高手似乎都已经销声匿迹,像jv9、笨鸟、深蓝色右手等等,最新的博文也是两三年前发的了,你们是不是已经找到新的出路了呢?抑或淡出了这个漩涡圈呢?

现在园子里的头几条都是后来者的一些探索与实践的经验帖,早已没有了当年的那番景象,SL是越走越孤单了,但也就沉淀下来的都是那些精华了!

时间: 2024-10-19 01:34:56

Silverlight之我见的相关文章

MVVM、MVVMLight、MVVMLight Toolkit之我见

原文:MVVM.MVVMLight.MVVMLight Toolkit之我见 我想,现在已经有不少朋友在项目中使用了MVVMLight了吧,如果你正在做WPF,Silverlight,Windows Phone的开发,那么,你有十分必要的理由了解MVVM和MVVMLight.我写这篇文章的目的,是给大家做一个总结,以便更多的朋友了解并掌握MVVM. 首先,要说一下MVVM的概念.MVVM严格来说,并不是一种框架,而是一个设计的模式吧.与它有关的设计模式还有MVC (现在广泛用于Web应用中),以

ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试

原文:ArcGIS API for Silverlight 调用GP服务准备---GP模型建立.发布.测试 第一篇.GP降雨量等值线建模.发布及测试 在水利.气象等行业中,要在WebGIS中实现空间分析功能,如绘制等值线.等高线.等直面.缓冲区等都是经常遇到,经过一段时间的学习和研究,查阅ESRI文档,请教他人,终于可以说是初步实现了等值线功能,这里记录下来详细的操作步骤和图片说明,一方面是对此次努力的总结,另一方面希望也能给后来用到这方面的其他同志们,起个抛砖引玉的作用. 下一篇是关于Silv

ArcGIS API for Silverlight 点沿着线流动

原文:ArcGIS API for Silverlight 点沿着线流动 概述 前段时间做了一个项目,要求是有一些电力输送线,电力输送线或者石油管道都是有流动方向的,用户想做一个动态效果来模拟电力的输送.其实做简单了只要在线上标识个箭头就可以了.但也要是做成动态的,至少ArcEngine实现起来是有点麻烦的.但ArcGIS API for Silverlight可以解决这个问题. 实现思路 在地图上展示输送电力的线和模拟电力输送方向的电都是ArcGIS  API中定义的对象,否者这些数据在地图上

ArcGIS API for Silverlight中加载Google地形图(瓦片图)

原文:ArcGIS API for Silverlight中加载Google地形图(瓦片图) 在做水利.气象.土地等行业中,若能使用到Google的地形图那是再合适不过了,下面就介绍如何在ArcGIS API for Silverlight中加载Google地 形图.先上一个图,初步制作,待后续继续改进 ArcGIS API for Silverlight 中的ArcGISTiledMapServiceLayer图层,继承自TiledMapServiceLayer.如果想实现自己的缓存地图图 层

创建第一个ArcGIS API for Silverlight应用

原文:创建第一个ArcGIS API for Silverlight应用 在完成前面的开发环境搭建以后,接下来实现我们的第一个ArcGIS API forSilverlight应用程序. 接下来我们一步一步来操作: 1.  打开Visual Studio2010,创建一个Silverlight应用项目及一个宿主的Web网站,如下图: 2.创建好的应用程序结构如下,包括一个Silverlight应用和一个宿主的Web项目. 3.接着右键点击Silverlight项目中的引用,选择添加引用,如下图:

企业级架构 MVVM 模式指南 (WPF 和 Silverlight 实现) 译(2)

本书包含的章节内容 第一章:表现模式,以一个例子呈献给读者表现模式的发展历程,我们会用包括MVC和MVP在内的各种方式实现一个收费项目的例子.沿此方向,我们会发现每一种模式的问题所在,这也是触发设计模式发展的原因.本章还会说明如果应用不当,MVC和MVP这些依赖.Net事件的表现模式是怎么导致内存泄漏的.本章会谈论各种表现模式的优缺点,并且留给读者自我思考的问题,如为什么用MVVM设计模式来代替MVP或是MVC.第二章:介绍MVVM,包括使MVVM魅力四射的WPF和Silverlight的各种特

c#爬取Silverlight网页 2

此前的一篇文章:C#爬取Silverlight网页,描述了如何爬取加密的Silverlight网页,并以北京空气质量官网的破解进行了说明. 按此办法,我想继续破解由中山大学先进技术研究院开发的一系列的Silverlight网站,譬如福建省空气质量实时发布系统,却一无所获.关键在于找到密钥和盐值非常难.有时候reflector并不能工作. 其实我犯了一个错误,被此前的破解思路给羁绊了.下面我们以福建省空气质量实时发布系统为例,讲述如何破解此类的网站. 同北京空气质量站点一样,当用谷歌浏览器F12调

visifire 图表双坐标轴 silverlight

public void CreateChart(Grid oGrid, ObservableCollection<ListItem> lBaseOilBar)        {            foreach (ListItem li in lBaseOilBar)            {                //图表大小,框线                Chart chart = new MyCharts();                chart.Width =

silverlight 双坐标轴

public void CreateLine(Grid oGrid, string sTitle, string sTableName, bool ifGetSig, string sYUint, string sYUint2, string sYTitle1, string sYTitle2, string sYTitle3, string[] sXLabel, double[] dYValue1, double[] dYValue2, double[] dYValue3)        {