设计模式方案:
数据库用 SQL server,SQLite,oracle,
数据库操作: EF
三层架构
M V VM (MVC、MVP)
WF
实现共享的纽带 WCF服务/ WebService
表现层: WPF Silverlight unity3d xmarin swift
1、wcf是实现跨平台,跨语言的共享的关键,一定要把底层操作全转换为服务形式发布,而且还能实现数据库服务器与逻辑操作服务器分离,安全。
2、如果是B/S, presentation管理页面可以用Silverlight,而且能保证安全。但为了搜索引擎优化,前台文章页面等固定内容的一定要直接生成html静态的,同时还能避免部分客户没有安装sl插件而无法访问的问题。当然可以使用ajax做相关特效。但如果是类似于图表分析,动态查看之类的还是用SL比较好一些。
3、关于手机段presentation用SL能保证WP端操作,IPone端建议用swift调用WCF服务形式,但如果简单可以使用Xmarin,这样能保证同时在Android使用,同时保证所有前台语言都用xmal语言。
4、C#经典常用开源项目:Ajax.NET Professional (AjaxPro)、Workflow.Net、FCKeditor、ZedGraph、Dot Net Chat server、Spring.net、.NET FTP Client、NLucene、NStruts、MonoCalendar、Finisar.SQLite、Math.NET、GPSProxy
5、在数据格式上,XML格式的使用在减少,json等轻量级格式的使用在增多。
6、在使用方式上,RPC和soap的使用在减少,Restful架构占到了主导地位。
发展过程:MVC->MVP->MVVM
(1)MVC:模型-视图-控制器(Model View Controller)
(2)MVP:模型-视图-表现类(Model-View-Presenter)
(3) MVVM:模型-视图-视图模型(Model-View-ViewModel)(WPF/Silverlight以及Windows Phone应用开发)
| MVC | MVP | MVVM |
| V | C | V | P | V | VM |
状态 | √ |
| √ |
|
| √ |
逻辑 |
| √ |
| √ |
| √ |
同步 |
| √ |
| √ | √ |
|
通信方式:
MVC
View 传送指令到 Controller
Controller 完成业务逻辑后,要求 Model 改变状态
Model 将新的数据发送到 View,用户得到反馈
MVP
1. 各部分之间的通信,都是双向的。
2. View 与 Model 不发生联系,都通过 Presenter 传递。
3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。
MVVM:采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,
ADO.NET 进化的。分离应用程序和数据库结构。类似于像
Hibernate或
NHibernate。 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Schema 与 Storage Schema 三层,其上还有 Entity Client,Object Context 以及
LINQ 可以使用。
(1) 概念层:负责向上的对象与属性显露与访问。
(2) 对应层:将上方的概念层和底下的储存层的
数据结构对应在一起。
(3) 储存层:依不同数据库与
数据结构,而显露出实体的数据结构体,和 Provider 一起,负责实际对数据库的访问和 SQL 的产生。