WCF 与 Asp.net Web service 比较
首先简单介绍一下 WCF 是什么,然后再对 WCF 和 Asp.net Web service 做个比较。
Windows Communication Foundation (WCF) 是用于构建面向服务的应用程序的框架。借助 WCF,可以将数据作为异步消息从一个服务终结点发送至另一个服务终结点。服务终结点可以是由 IIS 承载的持续可用的服务的一部分,也可以是应用程序中承载的服务。终结点可以是从服务终结点请求数据的服务客户端。消息可以是从以 XML 格式发送的单个字符或单词,到复杂的二进制数据流。虽然在WCF 出现之前也可以开发应用,但是 WCF 的出现使此类应用的开发变得更加简单。
Asp.net Web service 通常依赖于 XmlSerializer 将 .NET Framework 的数据类型转换为 XML 格式在服务中传送,或将从服务中接收的 XML 格式的数据转换为 .NET Framework 中的对象。
使用 XmlSerializer 序列化或反序列化 .NET Framework 的数据类型时的缺点:
1、只有标记为 public 的字段和属性能够被序列化。
2、只有实现了 IEnumerable 和 ICollection 接口的类的集合才能被序列化。
3、实现 IDictionary 接口的类不能被序列化,如Hashtable。
WCF 使用 DataContractAttribute 和 DataMemberAttribute 来标记可以被序列化的 .NET Framework 类型。
[DataContract]
public class Item
{
[DataMember]
public string ID;
[DataMember]
public decimal Qty;
[DataMember]
public decimal Price;
}
DataContractAttribute 可以应用于类或结构体上,DataMemberAttribute可以应用于标记为 public 或 private 的字段和属性上。
DataContractSerializer 和 XmlSerializer的区别:
1、DataContractSerializer 不对 .NET Framework 中的数据类型在 XML 中的表示方式作控制,因此性能要比 XmlSerializer 高。
2、XmlSerializer 不能确定要序列化的字段或属性,而 DataContractSerializer 使用 DataMemberAttribute 可以明确的确定要序列化的字段或属性。
3、DataContractSerializer 可以序列化实现了 IDictionary 接口的类。
4、由于 DataContractSerializer 可以访问对象的非 public 成员,因此在反序列化时需要运行在完全信任模式下,而 XmlSerializer 不需要。
服务的开发
在开发 Asp.net Web service 时需要在类上面添加 WebService 属性(attribute),在类的方法上添加 WebMethodAttribute 。
[
相关文档:
三层的划分:
目的:高内聚,低耦合,为更好的实现分布式开发和维护。
用户界面层: 页面,用户控件,图片,样式表
业务逻辑层:业务接口( BusinessInterface ), 业务实体( BusinessEntity),业务逻辑(BusinessLogic)
  ......
今早有个网友问到我这问题,以前我都是直接在数据库中存文件名的,还没有试过存储整张图片到数据库中,上网搜索了一下,自己又测试了一番,代码如下:
建立保存图片的表的SQL语句:
Sql代码 < width="14" height="15" src="javascripts/syntaxhighlighter/clipboard_new.swf" pluginspage="http://w ......
今早有个网友问到我这问题,以前我都是直接在数据库中存文件名的,还没有试过存储整张图片到数据库中,上网搜索了一下,自己又测试了一番,代码如下:
建立保存图片的表的SQL语句:
Sql代码 < width="14" height="15" src="javascripts/syntaxhighlighter/clipboard_new.swf" pluginspage="http://w ......
基于功能更丰富的基础类构建您自己的 ASP.NET 页面
发布日期 : 11/4/2004 | 更新日期 : 11/4/2004
Dino Esposito
Wintellect
适用范围:
Microsoft ASP.NET
Microsoft ASP.NET 2.0
摘要:通过继承可以在通用 Microsoft ASP.NET 类(例如 Page 类)中添加功能。这为您提供了一个公共场所,使您可以添加功能并将功能部 ......
本系列文章通过一个虚拟的案例——《MVC公告发布系统》的开发过程,全面展示了ASP.NET MVC的基本使用方法,同时在讨论了这个框架的基本原理。
这个文章系列的目的就是使朋友们更轻松的入门ASP.NET MVC。
这个系 ......