[zz]WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?

WCF分布式开发学习,应该从哪里开始?
   学习WCF是不是就不需要学习Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息队列?
   WCF分布式开发学习,如何制定一个合理的计划,才能更好地学习WCF分布式应用开发。应该从哪里开始?
   如何下载和安装WCF开发相关的组件。
   有什么好的WCF学习书籍、论坛?
   对很多WCF学习的初学者来说,往往这些都是要面临的问题。
   今天整理这个文章,首先是希望对许多WCF的学习者,有个帮助。其次就是算是对《WCF分布式开发步步为赢》系列课程的一个完善。
   这个问题一直是很多开发者关注的问题.按照微软的说法,WCF是微软分布式应用程序开发的集大成者。因此很多人就认为学习WCF编程,就不需要了解其他的技术.这个说法有一定的道理.WCF的出现确实解决了很多问题,它整合了.Net平台下所有的和分布式系统有关的技术,例如.Net Remoting、ASMX、WSE和MSMQ。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。既然WCF如此强大,开发者再不用去分别了解.Net Remoting,ASMX等各种技术了。
   我也遇到过类似的问题,现在就把自己和别人的一些经验与大家分享,希望对WCF的爱好者有参考作用。
【1】什么是WCF:
    WCF全称Windows Communication Foundation,是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。
  根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,如Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息队列。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相关的技术要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙。
    Web 服务中包含了用于应用程序间通信的标准协议,它在全球范围内的广泛采纳改变了软件开发。例如,如今 Web 服务提供的功能包括安全性、分布式事务协调和可靠的通信。Web 服务所发生的这些改变的效益应反映在开发人员所使用的工具和技术方面。设计 Windows Communication Foundation (WCF) 的目的是为分布式计算提供可管理的方法,提供广泛的互操作性,并为服务定位提供直接的支持。
    类型化编程模型(称为“服务模型”)设计用来降低分布式应用程序的开发难度,并为 ASP.NET Web 服务、.NET Framework 远程处理和企业服务领域的专业开发人员,以及将要从事 WCF 开发的人员提供熟悉的开发体验。该服务模型的特点在于它将 Web 服务的概念直接映射到 .NET Framework 公共语言运行库 (CLR) 中的对应内容,包括将消息灵活且可扩展地映射到用诸如 Visual C# 或 Visual Basic 等语言实现的服务。该服务模型提供支持松散耦合和版本管理的序列化功能,并提供与诸如消息队列 (MSMQ)、COM+、ASP.NET Web 服务、Web 服务增强 (WSE) 等现有 .NET Framework 分布式系统技术以及很多其他功能的集成和互操作性。(参考MSDN)

【2】如何学习:

     既然WCF介绍里提到了以上技术概念:
技术集成:Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息队列
宿主程序:ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。
 
【2.1】必备技术前提:

(1).NET 基础知识,包括CLR,基本类库等概念。
(2)c# 或者VB.NET,任何一个机遇.NET平台的编程语言。目前是c#为主。
(3)ASP.NET 及IIS网络应用程序相关知识
(4)Visual Studio 开发工具熟练使用。

【2.2】可选技术条件:

(1)Enterprise Sevices(COM+),企业服务应用程序,微软.NET 平台下对COM+的一个包装。集成了COM+的特性。
(2).Net Remoting,.NET 平台下分布式环境里应用程序通信的技术,适合企业局域网,效率较高。
(3)Web Service(ASMX),微软推出的基于ASP.NET 框架的Web Service技术。开发和部署简单。
(4)WSE3.0,这里是一个过渡技术。已经出现了IIS外托管WebService,支持传输优化等特性,安全模型进一步提升。
(5)MSMQ消息队列,微软平台下,比较成熟的一个技术,适合构建离线消息和松耦合的系统。
【2.3】扩展知识:

      这些知识属于SOA,构建面向服务的应用系统,或者EAI必须面对的知识,目前对于WCF来说,你可以先不需要了解这些知识,但是基本学习过程结束,希望从事SOA相关的工作,必须对下面的知识需要有个深入的、系统的学习。

(1)XML,扩展标记语言,标准数据化的格式,大部分跨平台系统都会使用它来表示数据。

(2)SOAP,简单对象访问协议。简单对象访问协议SOAP,全写为Simple Object Access Protocol)是一种标准化的通讯规范,主要用于Web服务(web service)中。目前有两个版本SOAP1.1 和SOAP1.2,

(3)安全,消息签名、加密算法、证书等概念

(4)WS-*规范,这个是目前跨平台服务的必须遵守的规范,因为这个是唯一一个被大多数厂商知识的规范,而且处于持续的完善中。
【3】学习资源:

    1.那里获取最新的Visual Studio 或者the .Net Framework? 

  微软发布了 SP1 for VS 2008 和.Net Framework 3.5, 这是最新的连接:

  Visual Studio 2008 SP1: http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&displaylang=en
  Visual Studio Express SP1: http://www.microsoft.com/express/sp1/
  .Net Framework 3.5 SP1: http://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=en
  微软发布了 VS 2010 和.Net Framework 4.0, 这是最新的连接:

  Visual Studio 2010 Beta2:http://msdn.microsoft.com/en-us/netframework/cc896557.aspx
    2.哪里有WCF 文档和代码示例?

    .Net Framework 3.5 MSDN 文档和例子
           文档: http://msdn2.microsoft.com/en-us/library/ms735119(VS.90).aspx
           文档: http://msdn2.microsoft.com/en-us/library/ms751514(VS.90).aspx
           例子下载: http://go.microsoft.com/fwlink/?LinkId=87352
    WCF 社区
           社区: http://wcf.netfx3.com/
    WCF 安全向导
           视频, 教程, 和例子: http://www.codeplex.com/WCFSecurity

    WCF4.0:WCF4.0新特性体验(1):WCF4.0新特性预览及学习资源推荐  

    3.WCF书籍:
    (1)《Programming WCF Services》,Juval Lowy著,评论:内容详细,基础,全面。英语好的可以看英语版。
           《WCF服务编程》,Juval Lowy著,中文版本由张逸、徐宁翻译。书籍印刷质量一般。初学和有点基础的朋友可以看看。
    (2)Windows Communication Foundation Unleashed ,(美)Craig McMurtry;Marc Mercuri;Nigel Watling;Matt Winkler .
           中文名字《WCF揭秘》,赵科平翻译。评论:不适合初学者,算是中级教程。建议有一定WCF编程基础的人
    (3)Learning WCF: A Hands-on Guide 。作者:MICHELE LEROUX BUSTAMANTE。例子很多。中文版本由庞引明;侯伯薇翻译。
         《学习WCF:从原理到实践》。原书可能很不错,但是中文翻译版本评论一般。说是翻译的词汇比较拗口。看中文名字个人感觉应该是WCF学习手册或者指南比较贴切。有兴趣的朋友可以看看原文图书。
    (4)Essential Windows Communication Foundation (WCF): For .NET Framework 3.5 (Microsoft .NET Development Series) by Steve Resnick, Richard Crane, and Chris Bowen 《WCF本质论》,作者 by Steve Resnick, Richard Crane, and Chris Bowen 
  不错的书籍,Amazon上评论不错,和《WCF服务编程》一样属于讲解详细,通俗易懂的书籍。可以作为入门学习书籍,也可以作为开发的参考手册。  知识点很清晰。

    (5)《Inside Microsoft Windows Communication Foundation》。Justin Smith先生所著.中文译名为《WCF技术内幕》,Frank Xu Lei(我本人,将于2010年6月正式出版)翻译。很好的系统介绍WCF底层框架结构和通信原理的书籍。从构建面向服务的(SOA)应用系统角度出发,对WCF框架做了详细的架构性分析。此外,这本书也给了我们一些实践方面的指导,并提供了许多示例代码。适合WCF高级开发人员和架构师。


   以上书籍都是Amazon上评价很好的书籍,4星半,接近5颗星,确实值得一读,建议大家看英文原著书籍,这些书籍都是WCF经典著作。而且作者的水平很高,无论技术实力,还是工作经验,都已经得到同行的认可。推荐《WCF服务编程》+《WCF技术内幕》。前者涵盖初中级知识,后者偏重底层原理与框架实现机制。
    
4.推荐论坛:

    【中文论坛】:微软WCF中文技术论坛,成立不久,付仲恺大哥在Web Cast讲授《构建WCF面向服务的应用程序系列课程》常回答大家的问题。欢迎访问。

    【英文论坛】:微软WCF英文技术论坛,老外很多,问题种类设计各个方面。也很专业。基本WCF相关的问题都可以解决或者找到提示。

【4】总结:

     最后的建议:
   (1)是最好对以前的技术有所了解,学习技术态度要扎实。如果你是新手,有足够的时间,建议你从基础学起,现了解Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息队列等相关概念以后,再来学习WCF技术。我整理了WCF分布式开发必备知识(4)  和WSE3.0构建Web服务安全(4) 系列,对这些技术进行了整理。给出了可以执行的代码。大家可以参考。
   (2)如果项目时间紧迫,可以直接奔WCF编程学习,但是等自己时间充裕的话,建议还是回头好好学习一下。起码是有个了解。不会在讨论这些技术问题的时候总是一脸的茫然。例如理解WCF IIS托管,就必须对IIS和ASP.NET底层相关知识有深入的了解。想掌握WCF安全编程,对WS-security知识要熟悉。否则很难理解WCF的安全模型。
   (3)根基决定高度。在WCF学习的态度上,认真一些,我们一步一个脚印,一定会成为有很多收获。这个其实也是通常学习技术的一个态度。  技术需要一个积累的过程。
   (4)实践是检验真理的唯一标准。呵呵,动手才能更好地理解WCF的一些技术概念,对相关特性才能深入体会。只是纸上谈兵,没有太多实际意义。最大的收获来之于试验。学习最好的方式就是:WCF in Practice!
   (5)希望对所有的WCF技术初学者,都能有所启示或帮助!
   (6)高手的话,可以研究WCF底层相关的知识,比如线程模型、安全协议,通道模型等等。
          也希望WCF前辈多多补充。分享学习经验,推荐学习书籍。给新人以提示。因为经常和一些WCF爱好者讨论这个问题。
   最后就整理一个文章。算是一个补充吧。
    谢谢。 

转载于:https://www.cnblogs.com/lihf/articles/1785830.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#报错:创建调试信息文件 ……obj\Debug\model.pdb: 拒绝访问

错误:创建调试信息文件“.......\obj\Debug\model.pdb”时发生错误 --“......\obj\Debug\model.pdb: 拒绝访问。 解决办法如下: 删除该项目下的 bin 和 obj 文件夹 就可以了,然后右键项目名点生成,就会重新生成bin和obj文件夹。

linux nginx mysql php 5.5._搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程

之前的Web服务器都是通过yum搭建的,想要添加新模块或者更新某些软件都很不方便(牵一发而动全身啊!)。所以,现在准备将环境改为源码编译安装,这样便于调整,性能上也会比yum方式好很多。以下是我的安装步骤,我…

ASP 缩略图 (纠错版)

网上很多缩略的代码&#xff0c;不过很多都是错误的。 这个是纠正版&#xff0c;本人已修改。 Code<%Function PicReSize(picURL)FileName1Mid(picURL,13,22)Set Jpeg Server.CreateObject("Persits.Jpeg") 获取源图片路径Path Server.MapPath(picURL) 打开源图…

Blazor Server 应用程序中进行 HTTP 请求

翻译自 Waqas Anwar 2021年5月4日的文章 《Making HTTP Requests in Blazor Server Apps》 [1]Blazor Server 应用使用标准的 ASP.NET Core 应用程序&#xff0c;在服务端执行 .NET 代码。在 Blazor Server 应用程序中&#xff0c;我们可以像在 ASP.NET Core Web 应用程序中那样…

遍历属性动态展示列

为什么80%的码农都做不了架构师&#xff1f;>>> 前端根据后台返回json对象(Map)进行动态列展示。 javascript属性遍历和访问&#xff1a; //var obj {name:"h2do",age:0,sex:"男"}; function User(){this.name "h2do";this.age 0…

厉害了!这几位小学生竟然在艺术界掀起一阵风暴,简直是灵魂画手无疑.........

全世界只有3.14 % 的人关注了爆炸吧知识高能预警&#xff01;请查阅全文&#xff01;在孩子们的眼中&#xff0c;世间万物都被赋予了无限的想象力&#xff0c;而绘画是他们独特想法和思维的表达。一支小小的画笔&#xff0c;便能创造一个千奇百怪的世界。为鼓励孩子们拿起画笔&…

java范型_Java知识点总结(Java泛型)

Java知识点总结(Java泛型)(Java知识点总结)[Java, Java泛型][toc]泛型泛型就是参数化类型适用于多种数据类型执行相同的代码泛型中的类型在使用时指定泛型归根到底就是“模版”优点&#xff1a;使用泛型时&#xff0c;在实际使用之前类型就已经确定了&#xff0c;不需要强制类型…

花开的声音 - 张靓颖

姓名&#xff1a;张靓颖 / Jane Zhang性别&#xff1a;女 地区&#xff1a;内地 职业&#xff1a;歌手 星座&#xff1a;天秤座 血型&#xff1a;O 身高&#xff1a;162cm张靓颖&#xff0c;中国女歌手&#xff0c;四川成都人。2005年参加湖南卫视…

基于事件驱动架构构建微服务第5部分:容器化(Web Api Core 和 SQL Server Linux)

原文链接&#xff1a;https://logcorner.com/building-microservices-through-event-driven-architecture-part5-dockerization-web-api-core-and-sql-server-linux/在本文中&#xff0c;我将谈谈web api和sql server linux数据库的容器化Web API将发布并上线&#xff0c;它需要…

eclipse工程 'cocostudio/CocoStudio.h' file not found

android.mk里有这样配置&#xff1a; LOCAL_PATH : $(call my-dir)include $(CLEAR_VARS)$(call import-add-path,$(LOCAL_PATH)/../../cocos2d) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos) $(…

爆笑!物理书上的照片能不能好好选选啊喂!

全世界只有3.14 % 的人关注了爆炸吧知识在物理书里&#xff0c;有各种物理大佬的照片。他们正襟危坐&#xff0c;他们不苟言笑&#xff0c;他们看起来就很“物理”。但是&#xff0c;知识君想说&#xff0c;谁不是个有血有肉的人啊&#xff1f;&#xff01;选照片的时候给我好好…

java字符数组转化为字符串_java字符数组转字符串,java数组转字符串

字符串转数组使用Java split() 方法split() 方法根据匹配给定的正则表达式来拆分字符串。注意&#xff1a; . 、 | 和 * 等转义字符&#xff0c;必须得加 \\。多个分隔符&#xff0c;可以用 | 作为连字符。// 字符串转数组 java.lang.StringString str "0,1,2,3,4,5"…

计算机网络体系结构概述

1.Internet结构 2.计算机网络的体系结构 1&#xff09;网路协议主要由以下三要素组成&#xff1a; 语法&#xff0c;即数据与控制信息的结构或格式&#xff1b; 语义&#xff0c;即需要发出何种控制信息&#xff0c;完成何种动作以及做出何种响应&#xff1b; 同步&#xff0c;…

如何识别是三层交换机还是二层交换机

举例说明:302620125012看第2位是0~4的说明它是2层交换机3550看第2位是5~9的说明它是3层交换机LI(LitesoftwareImage)表示设备为弱特性版本。SI(StandardsoftwareImage)表示设备为标准版本&#xff0c;包含基础特性。 EI(EnhancedsoftwareImage)表示设备为增强版本&#xff0c;包…

.NET 6 全新指标 System.Diagnostics.Metrics 介绍

前言工友们, .NET 6 Preview 7 已经在8月10号发布了, 除了众多的功能更新和性能改进之外, 在 preview 7 版本中, 也新增了全新的指标API, System.Diagnostics.Metrics, 为了让应用能有更好的可观测性, 在之前的发布的.NET 5中, 也把 Activity 增强为 ActivitySource, 主要原因还…

java实验3_Java 实验3

实验3 /* * (#)AverageNumbers2 * * Copyright 2008 School of Software, Yunnan University. * All rights reserved */ package cn.edu.ynu.sei.Java_Labs.Lab3; /** * 求1&#xff0d;50的平均数 * version 1.0.0.0 Jan 22, 2008 …

42张动图带你走进神奇的物理世界,超震撼!

全世界只有3.14 % 的人关注了爆炸吧知识世界之大&#xff0c;无奇不有。生活中其实有许多神奇的物理化学现象。下面就一起来看看吧&#xff01;图片加载慢稍加等待即可哦~神 奇 的 物 理 反 应1.锤击被液氮冻上的康乃馨&#xff0c;求康乃馨的心理阴影面积。2.比重比空气还大的…

Linux优化之IO子系统监控与调优

Linux优化之IO子系统作为服务器主机来讲&#xff0c;最大的两个IO类型 &#xff1a;1.磁盘IO 2.网络IO这是我们调整最多的两个部分所在磁盘IO是如何实现的在内存调优中&#xff0c;一直在讲到为了加速性能&#xff0c;linux内核一般情况下都会尝试将磁盘上的慢速设备上的文件缓…

window 2008 和 windows vista windows 7 安装 MSMQ

从MSDN找到的资料&#xff0c;详见&#xff1a;http://msdn.microsoft.com/zh-cn/library/aa967729.aspx安装“消息队列 (MSMQ)”以下过程介绍如何安装“消息队列 4.0”和“消息队列 3.0”。 注意: 消息队列 4.0 在 Windows XP 和 Windows Server 2003 中不可用。 在 Windows S…

Oh no no no i'm a rocket man

She packed my bags last night pre-flight火箭队员昨晚整理行李准备打客场 Zero hour nine a.m.9分钟之前是午夜12点 And im gonna be high as a kite by then我象风筝那样跟向前 I miss the earth so much i miss my wife我曾错过这么多客场随队旅行的机会我错过了亲眼目睹火…