WCF-006:服务端类的封装问题
来源:互联网 发布:米5登不了淘宝手机助手 编辑:程序博客网 时间:2024/06/06 00:30
不管BS还是CS中现在基本都在使用WCF服务了,那么类的封装肯定是少不了的。那么对服务端的类有哪些需要注意的呢。
1、一定要封装一次,也就是如果想给客户端提供数据,一定要自己重新写一个封装数据的类。
比如,我在前段时间写了一个服务,给客户端提供数据的。服务端读取数据使用的是ADO.NET实体模型。因为生成的实体,是可序列化的,所以为了省事直接将实体数据模型作为参数类型进行传输,这样程序很快就写完了。
可是过段时间发现数据表要修改,那么对应的ADO.NET数据表模型就要重新修改,而客户端又使用的是服务端的模型,所以客户端也要做相应的改变,修改的代价比较大。
所以服务端的数据模型一定要封装成另外一个类,这样即使数据库字段发生变化,也仅仅影响服务端而已。
面向对象的封装性无时无刻存在的。
2、小心序列化问题。
服务端的类,客户端之所以以能获取到,靠的就是序列化。因为不管是数据,还是数据结构在网络中都是流传输的,一旦服务端的类无法序列化,客户端也就无法访问了。
详见:http://blog.csdn.net/yysyangyangyangshan/article/details/13076207
3、要有预见性
一个好的服务端,不光要能实现当前的功能,还要考虑到后续扩展的问题。封装类的时候尽量考虑业务的多变性,多谢想想怎么抽象,或者多写几个字段和属性,就能为以后的扩展减少很多的修改。当然这个是需要多在实际应用中总结的。
1、一定要封装一次,也就是如果想给客户端提供数据,一定要自己重新写一个封装数据的类。
比如,我在前段时间写了一个服务,给客户端提供数据的。服务端读取数据使用的是ADO.NET实体模型。因为生成的实体,是可序列化的,所以为了省事直接将实体数据模型作为参数类型进行传输,这样程序很快就写完了。
可是过段时间发现数据表要修改,那么对应的ADO.NET数据表模型就要重新修改,而客户端又使用的是服务端的模型,所以客户端也要做相应的改变,修改的代价比较大。
所以服务端的数据模型一定要封装成另外一个类,这样即使数据库字段发生变化,也仅仅影响服务端而已。
面向对象的封装性无时无刻存在的。
2、小心序列化问题。
服务端的类,客户端之所以以能获取到,靠的就是序列化。因为不管是数据,还是数据结构在网络中都是流传输的,一旦服务端的类无法序列化,客户端也就无法访问了。
详见:http://blog.csdn.net/yysyangyangyangshan/article/details/13076207
3、要有预见性
一个好的服务端,不光要能实现当前的功能,还要考虑到后续扩展的问题。封装类的时候尽量考虑业务的多变性,多谢想想怎么抽象,或者多写几个字段和属性,就能为以后的扩展减少很多的修改。当然这个是需要多在实际应用中总结的。
2 0
- WCF-006:服务端类的封装问题
- WCF 服务端的异步
- C++的gsoap客户端与基于WCF的C#服务端Web Service交互的问题
- WCF系列之服务端代码的编写
- 游戏服务端IOCP模型,自己封装的一个类,3行代码搞定服务端。
- 游戏服务端IOCP模型,自己封装的一个类,3行代码搞定服务端
- WCF服务端为List,生成的代理类也为List的命令
- WCF ajax调用,同一浏览器窗口的多个请求在服务端阻塞,只能顺序执行的问题
- 调用WCF的问题
- 对WCF客户端调用的简单封装
- Winform 调用WCF客户端,所有服务端方法在运行的时候均找不到(编译没有问题)
- wcf找不到服务端问题解决
- WCF服务端与客户端
- WCF只有服务端响应
- WCF服务端调用客户端.
- 服务端缓存的问题。
- wcf 手动配置连和封装类
- WCF中在客户端可以看到服务端内部的异常
- 可行性研究报告
- 用jsp实现图片上传功能!
- completion
- Codeforces #81E Pairs
- Maven 手动添加 JAR 包到本地仓库
- WCF-006:服务端类的封装问题
- Combination Sum 组合数之和
- 题目1102:最小面积子矩阵
- 春运网络购票诈骗频发 消费者慎防钓鱼陷阱
- 深入浅出Swing事件分发线程
- Combination Sum II 组合数之和(包含有重复的元素)
- HDU 4009 最小树形图裸题
- Struts2文件上传大小控制与提示
- eclipse maven plugin 插件 安装 和 配置