WCF总结笔记
------------------------windowform承载服务步骤:
(1)定义契约:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace IWpf
{
[ServiceContract]
public interface IUser
{
[OperationContract]
string GetName();
[OperationContract]
int GetAge();
}
}
(2)承载契约;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using IWpf;
namespace wpf承载服务
{
public class wpf:IUser
{
#region IUser 成员
public string GetName()
{
return "郭泽峰";
}
public int GetAge()
{
return 13;
}
#endregion
}
}
appconfig:配置契约:
?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="wpf承载服务.wpf" behaviorConfiguration ="behaviorone">
<host>
<baseAddresses>
<add baseAddress="http://localhost:1234/wpf"/>
</baseAddresses>
</host>
<endpoint address="" binding="basicHttpBinding" contract="IWpf.IUser">
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="behaviorone">
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
-------------启动服务;
using System.ServiceModel;
namespace wpf承载服务
{
public partial class Form1 : Form
{
ServiceHost host;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
host = new ServiceHost(typeof(wpf));
host.Open();
}
private void button2_Click(object sender, EventArgs e)
{
host.Close();
}
}
}
-----------------使用契约;
ServiceReference1.UserClient u = new ServiceReference1.UserClient();
MessageBox.Show(u.GetName());
---------------------------------------------------------------------------完成;
--------------
---------------通过编程来承载和使用服务;
--承载服务
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
ServiceHost host = null;
private void button1_Click(object sender, EventArgs e)
{
host = new ServiceHost(typeof(wpf));
//定义绑定协议:
NetTcpBinding tcpBinding = new NetTcpBinding();
//定义地址:
string s = "net.tcp://localhost:3200/gg";//路径随便了;
host.AddServiceEndpoint(typeof(IWpf.IUser), tcpBinding, s);
host.Opened += delegate { label1.Text = "已经打开"; };
host.Closed += delegate { label1.Text = "已经关闭"; };
host.Open();
}
private void button2_Click(object sender, EventArgs e)
{
if (host.State == CommunicationState.Opened)
{
host.Close();
}
}
-----------------应用客户端:
//绑定形式:
NetTcpBinding bind = new NetTcpBinding();
//地址
EndpointAddress address = new EndpointAddress("net.tcp://localhost:3200/gg");
//通道工厂
ChannelFactory<IWpf.IUser> factory = new ChannelFactory<IWpf.IUser>(bind, address);
IWpf.IUser user = factory.CreateChannel();
string s = user.GetName();
MessageBox.Show(s);
-----------------通信方式:单工(无需等待方法名void,且参数部位out;ref;);请求响应(需要等待);双攻;
单工:[OperationContract(IsOneWay=true)]即可;
-------
---SOA:属于一种基于组件的架构模型;它可以根据需求对松散耦合的粗粒度应用组件
进行分布式部署,组合和使用。
SOA的四个特性:
1.每个服务必须有明确的服务边界;
2.服务是独立的;
3.采用标准的契约定义和通信协议;
4.服务是自解释的;
//地址:
http://dddd:5050/;
net.tcp:dec:3030/myservice;
net.msmq:localhost/mymsmq;
-----------------------------------------
soa的好处:在用户层和一万五层添加了一层服务层,将
力度比较小的互操作的对象进一步封装,形成粗粒度
组件,从而达到一种松耦合的状态;
--------------------------------------------
tcp:二进制;效率远远高于http;多用于内网传输;
http:soap;
---------------------------------------------
wcf:
1.面向服务;
2.松耦合;
3,可交互;
4.整合性;
-----------------------------------------
remoting和wevservice区别:
webservice:不限平台,http协议,基于xml;效率低;无状态;
remoting:仅限。net平台,网络传输协议(不一定是http),二进制;效率很高;有状态;
remoting是.net 中用来跨越machine, process, appdomain 进行方法调用的技术,
------------messagecontract:控制soap协议的工具;
WCF总结笔记的更多相关文章
- WCF学习笔记之事务编程
WCF学习笔记之事务编程 一:WCF事务设置 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元: WCF通过System.ServiceModel.TransactionFlowA ...
- WCF学习笔记之传输安全
WCF学习笔记之传输安全 最近学习[WCF全面解析]下册的知识,针对传输安全的内容做一个简单的记录,这边只是简单的记录一些要点:本文的内容均来自[WCF全面解析]下册: WCF的传输安全主要涉及认证. ...
- WCF 学习笔记之异常处理
WCF 学习笔记之异常处理 1:WCF异常在配置文件 <configuration> <system.serviceModel> <behaviors> <s ...
- WCF 学习笔记之双工实现
WCF 学习笔记之双工实现 其中 Client 和Service为控制台程序 Service.Interface为类库 首先了解契约Interface两个接口 using System.Service ...
- WCF学习笔记(2)——使用IIS承载WCF服务
通过前面的笔记我们知道WCF服务是不能独立存在,必须“寄宿”于其他的应用程序中,承载WCF服务的应用程序我们称之为“宿主”.WCF的多种可选宿主,其中比较常见的就是承载于IIS服务中,在这里我们来学习 ...
- c# 动态调用WCF方法笔记!
//动态调用wcf方法 string url = "http://localhost:54379/ServiceWCF.svc"; IDoubleService proxy = W ...
- WCF学习笔记一
Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台. 整合了原有的windows通讯的 . ...
- WCF学习笔记1--发布使用配置文件的服务
关于WCF的入门网上资料很多,可以参考蒋金楠老师的博客http://www.cnblogs.com/artech/archive/2007/02/26/656901.html,我是从这篇博客开始学习的 ...
- WCF学习笔记之消息交换模式
在WCF通信中,有三种消息交换模式,OneWay(单向模式), Request/Reponse(请求回复模式), Duplex(双工通信模式)这三种通信方式.下面对这三种消息交换模式进行讲解. 1. ...
- WCF学习笔记之WCF初识
这篇博客将介绍WCF的最基础内容,让我们对WCF有一个基本的认识.后续的博客中将会介绍WCF其他方面内容.本篇博客将通过一个简单的例子,介绍如何创建WCF服务,并承载这个服务,让客户端来访问它.下面请 ...
随机推荐
- Dp_F Pku1157
<span style="color:#000099;">/* F - 简单dp Time Limit:1000MS Memory Limit:10000KB 64bi ...
- SWOT分析是神马?
SWOT分析是思维的工具来理解事物的方式.人生在世,作为一个独立的实体,不可避免地需要思考的问题.除非你是猪.猪比这更聪明.眠质量,都要完爆白领,蓝领和金领们. SWOT分析分为四个象限.我们用一头名 ...
- UVA11080- Place the Guards(二分图染色)
题目链接 题意:放最少的士兵去监视全部的道路, 但士兵不可相邻,符合的话,就输出最少的士兵数,否则输出-1 思路:事实上就是二分图染色,即黑白染色,然后选择黑白染色最少的那个颜色累加,但要注意可能有多 ...
- js之面向对象----封装篇
学习了一天的面向对象总结一下,共分为三类 - -! 老规矩 第一部分是概念性知识!!! 面向对象编程,我们可以把他想象成我们在造人.一个对象便是一个人,这个人有胳膊有腿,这便是一个对象的属性或者方法. ...
- HDU1051 Wooden Sticks 【贪婪】
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- 第1章 单例模式(Single Pattern)
原文 第1章 单例模式(Single Pattern) 单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问点. 一.常用模式: 1 ...
- SQL Profile (总结4)--使用演示示例
前提:sql profile工具的相关视图 dba_sql_profile 10g: sys.sqlprof$attr & sqlprof$ 11g: sys.sqlobj$data & ...
- ASP.NET上传文件的几种方法
//上传文件实例 if (fileDealer.HasFile)//判断文件是否存在 { string filepath = ""; ...
- 经典算法题每日演练——第十一题 Bitmap算法
原文:经典算法题每日演练--第十一题 Bitmap算法 在所有具有性能优化的数据结构中,我想大家使用最多的就是hash表,是的,在具有定位查找上具有O(1)的常量时间,多么的简洁优美, 但是在特定的场 ...
- AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)
AspNet.WebAPI.OData.ODataPQ 这是针对 Asp.net WebAPI OData 协议下,查询分页.或者是说 本人在使用Asp.Net webAPI 做服务接口时写的一个分页 ...