p>SL, RIA,即不仅仅是普通的层三架构的web系统。SL前台呈现,调用后端查询数据库传递,更多的东西可在前端,如浏览器实现更多的动作,xap包都下载到本地了,用户会默认安装SilverLight runtime,近似CRL的东西。
一个基于Silverlight的model至少由3个部分构成:
前段,一个SilverLight工程,生成xap包,
通信,一个WCF工程,生成dll
后端,一个class Library,生成dll
为了启动1个这样的model,你需要有一个web host(宿主程序),即asp.net web应用程序,他会生成对应的一个silverlight的defaul.asps文件, 部署在IIS上后,用户点击https://www.chaoniulian.com则打开的这个defaul.asps,故而第一次,用户通过IE浏览器,把你的SilverLight xap下载本地,启动了SL页面。
对于企业应用级别的SL借鉴方案,一般有10几个开发人员在做model,怎么把这些model组织为web site的菜单项,可以实现不同的region区域:固定展示log的region,展示当前用户信息的region,展示导航树的region,展示主工作区间的region。
需要采用插件架构,如Prism简介, 详细的可看这一系列blog:
*****************
通过链接类、条件编译方式,可以实现前、后端代码级别复用,这种办法,效率非常高。
陷阱一:泛型传递
泛型是在编译器确定了数据类型,而WCF仅仅是XML封装的接口,如果发布了一个T的接口,那么使用者使用,谁编译WCF接口? 怎么编译WCF? 所以,不行的。
陷阱二:object传递: 基类、子类传递。参见上面说的基本类型,如果一个数据的calss,没有添加标签封装,WCF会报错的。
陷阱三:DataTable传递
典型的ADO.net思想,还停留在windows桌面应用系统领域, JSON、byte[]才是WCFSL的王道。
主要因为,你引用DataTable的System.Data类库,在前段不可见(前段相对后端裁剪了很多,更轻巧)。 如果你实在要这么做,推荐一个开源的SL.DataTalbe给你,需要源码的发邮件给我。
如果数据流大,可通过byte[]方式通信,在后端序列化为byte[],WCF传递给前段,(上篇写过,前段可通过链接类、条件编译复用后端代码:类变量、类方法), 前段可反序列化为实体类。
在多年单机版思路,几年前转换为Client-Server开发思路模式。 最近的2年往Brower-Server开发模式转变,同时也兼顾Windows Phone移动端思路吧。
一路东北, 转眼二十年了,最后一次回眸长春,是2004...
中年人的生活 各自欢乐, 又或一地鸡毛,简言之:【悲...
记得非典—2003年那会,周末一到,大学宿舍里面,吃完...
GPU这...
2023年,三年疫情过后第一个春天,我开始了骑行: 空...
在VR应用中,有一个相对简单的虚拟现实体验,那...
对程序员而言,写的代码用源码管理系统管理起来,非常方便...
2024年 甲辰龙年春节假期,我看了2本小说,茅盾文学...
上文中,说明了 Squid3 IP Proxy 隐藏原IP,这里就搭建Squid 3密码账号IP代理进行整理,涉及...
不用插件,js脚本显示星号密码
以前,我是用Chrome插件做这个这的--显示星号密码的。 今天,分享一个不用插件...
今天新采购了柒比贰WordPress主题,安装主题时候报错: MySQL命令行使用sql语句进行建表时,MySQL...