最近学习Silverlight,感觉做出来的效果自然是很炫,但要真正使用到实际项目中,要学习的东西还是很多的。整理了一下,按照常规的层次结果,如下所示:
界面层:主要是学习Silverlight基础,包括Silverlight控件的使用、Toolkit扩展控件的使用、xaml语言(布局、动画、通信、视频、图像、交互)、Style尤为强大,需要多花时间。
另外界面层架构,
1、Prism根据用户需要动态加载功能模块,大大降低了模块之间的耦合,同时由于是动态加载,缩短了页面加载的时间,减少了用户等待时间,给用户带来更好的体验;
2、MVVM即Model、View、ViewModel三层,ViewModel有一个很明显的优点:可降低View与Control的耦合;
3、MEF即Managed Extensibility Framework是.NET平台下的一个扩展性管理框架,它是一系列特性的集合,包括依赖注入(DI)以及Duck Typing等。个人感觉跟Prism有些类似,都是动态加载,MEF使用了反射机制,可动态加载动态链接库,而Prism是动态加载功能模块View;另外,MEF是VS2010自身的东西,而Prism需要引用另外的动态链接库,但我感觉还是Prism好用,可能是我对MEF还没理解透彻。
总之,界面层,使用Prism与MVVM是最完美结合,各功能模块相互独立,各模块自身都使用MVVM模式,各模块通过Prism动态加载。
访问数据库与业务逻辑处理:
1、传统数据访问层与WCF结合的方式。
使用Command方式访问数据库,BaseDAL提供数据库访问的基本方法,BDU层提供数据实体层,为了与界面层的模块无耦合相对应,这里针对每个模块分别建立DAL层与BLL层,然后通过控制台程序宿主每个WCF服务,使用net.tcp协议较http协议大大提高了访问速度,所以建议WCF Services使用net.tcp协议提供服务。
2、WCF RIA Services方式。
WCF RIA Services简化了N层结构的RIA应用程序的开发。当开发一个N层结构的RIA应用程序时,一个通常的问题就是在中间层和表现层之间协调应用逻辑。RIA服务提供框架组件、工具以及服务来使RIA客户端不用手动复制程序逻辑就能调用位于服务器上的应用逻辑。你所建立的RIA客户端不仅能够了解商业逻辑,而且当每次解决方案编译时会自动更新中间层逻辑。(此段为摘抄内容)
WCF RIA Services方式提供数据库访问与业务逻辑处理,主要优点有:
1)构建应用程序效率高;
2)安全性好、性能高;
缺点有:
1)可扩展性差,通过ADO.NET Entity Data Model,你只需要钩钩选选即可自动生成数据库访问方法(增、改、删、查)。很奇怪,微软竟说WCF RIA Services可扩展性好,不明白。
2)数据库兼容性差。目前只支持SQL Server数据库,(微软已经把System.Data.OracleClient从.net framework 4.0中删除,其唯我独尊的野性可见一斑),不过CoreLib提供了访问其他数据库(包括Oracle)的收费插件。
Silverlight学习时间还不是太长,随着学习和应用的深入,以上内容可能会更新,敬请关注。