好长时间没搞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是越走越孤单了,但也就沉淀下来的都是那些精华了!

Silverlight之我见的更多相关文章

  1. Silverlight之我见——数据批示(1)

    第一次听到这个概念,你是否有点陌生?MSDN上也没有特意的去说明.不要看到这个名词不太熟悉,其实数据批示,玩过C#的人都会非常熟悉,所谓数据批示,其本质就是特性(Attribute),怎么样,现在有点 ...

  2. Silverlight之我见——DataGrid数据验证

    <UserControl x:Class="DataValidationSample.MainPage" xmlns="http://schemas.microso ...

  3. Silverlight之我见——数据批示(2)

    接着上一回的话题,继续来研究数据批示特性,先拿简单的RageAttribute来弄弄,接着上次的示例,添加一个Age属性,并加上RangeAttribute. [Range(20,60,ErrorMe ...

  4. Silverlight之我见——制作星星闪烁动画

    圣诞节来了,无聊,做点东西纪念一下. 原理很简单,生成1000个圆,从随机数来布置它们的位置,通过动画来处理它们的透明度,动画时长也是随机生成. 1.创建图形数组并设置背景透明,渐变笔触,大小等,而后 ...

  5. MVVM、MVVMLight、MVVMLight Toolkit之我见

    原文:MVVM.MVVMLight.MVVMLight Toolkit之我见 我想,现在已经有不少朋友在项目中使用了MVVMLight了吧,如果你正在做WPF,Silverlight,Windows ...

  6. Silverlight 后台设置 button 纯色背景

    silverlight Button直接设置其background为某一颜色往往达不到效果.因为其内置模板把按钮背景弄成一个渐变画刷.所以想要纯色的背景就修改其模板. 在后台修改模板的代码如下: St ...

  7. 添加Silverlight应用到HTML

    Silverlight是跨浏览器,跨客户平台的浏览器插件,可以应用在Windows,Linux,Mac等平台.作为浏览器插件,Silverlight可以像Flash一样,很方便的嵌套在HTML页面中, ...

  8. Silverlight 手鼓达人-仿太鼓达人 开源

    Silverlight 手鼓达人-仿太鼓达人 介绍  手鼓达人是本人2012年中silverlight最火的一段时间开发的,本来目的只是想研究一下silverlight做游戏和做应用有何不同,但是后面 ...

  9. silverlight使用小计(先做记录后续整理)

    1.Grid: a.通过获取指定行的高度和指定列的宽度来获取指定单元格的宽高 b.几种宽高默认值: 宽高(Width/Heigth):1* 最大宽高(MaxWidth/MaxHeigth):正无穷大 ...

随机推荐

  1. java_利用session校验图片认证码

    RegisterServlet:检验server,client验证码是否一致 ImageServlet: 产生验证码 <!DOCTYPE html> <html> <he ...

  2. zTree 异步加载

    zTree异步加载数据的简单实现,更为详细的Api请参考 zTree官网   http://www.treejs.cn/ <link href="~/Content/ztree/css ...

  3. c# 委托与异步调用

    背景:在winform UI中,有时需要对控件进行比较频繁的刷新,如进度条.picturebox显示视频等.如果在主线程进行这些刷新操作,操作还未完成就将执行下一次刷新,程序将发生错误:如果只是创建另 ...

  4. ant+dbunit 导xml到mysql

    1.增加自己的data目录和xml数据文件 2.lib依赖 commons-logging-1.1.1.jar dbunit-2.4.8.jar junit-4.9b2.jar mysql-conne ...

  5. sharepoint 备份和还原site脚本

    <个人积累,转载请注明出处> Backup-SPSite "http://www.abc.com/sites/TestWorkflowCenter" -path C:\ ...

  6. ionic+cordova+angularJs监听刷新

    普通的js返回并刷新这里就不多说了,百度就有很多方法. 下面说的是使用了angularjs.ionic开发的一个手机app中我使用的返回上一页并刷新的方法. 场景:回复的页面是单独的,点击保存回复后会 ...

  7. OPENSSL中RSA私钥文件(PEM格式)解析【一】

    http://blog.sina.com.cn/s/blog_4fcd1ea30100yh4s.html 在PKCS#1 RSA算法标准中定义RSA私钥语法为: RSAPrivateKey ::= S ...

  8. sql的游标使用(转)

    游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的.而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服. 正常面向集合的思维方式是: ...

  9. Swift学习的新工具---REPL

    从xcode6.1开始,苹果官方提供了一个新的辅助开发swift的工具,即repl(read eval print loop) OS X Yosemite系统下,打开终端应用程序,输入swift: 如 ...

  10. jfinal取消默认跳转到view.jsp页面的方法

    今天为了在一个列表中添加一个删除的方法,直接在方法里面谢了一个dao.del();方法,但是调用的时候却出现404错误. 然后就写了一句下面的代码 redirect("/api/listMe ...