博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署
阅读量:6272 次
发布时间:2019-06-22

本文共 3515 字,大约阅读时间需要 11 分钟。

前言


截止到上一篇,我们开发的应用程序都是采用直接连接数据库的模式:

接下来,将通过一些简单的调整,使得这个应用程序支持以 C/S 架构部署。整个过程只需要少量的代码:

包含以下步骤:

  • 添加服务端控制台应用程序项目
  • 修改客户端应用程序连接方式
  • 配置客户端应用程序
  • 运行示例
  • 代码下载

 

添加服务端控制台应用程序项目


在整个解决方案中添加一个新的控制台应用程序,取名为 ServerConsole:

为项目添加所有 Rafy 程序集、CS 实体程序集以及 System.ServiceModel 程序集的引用:

在 Main 函数中添加以下代码,启动服务端领域项目,并开始监听 WCF 端口:

1:  using System;
2:  using System.Collections.Generic;
3:  using System.Linq;
4:  using System.ServiceModel;
5:  using System.Text;
6:  using CS;
7:  using Rafy;
8:  using Rafy.Domain;
9:   
10:  namespace ServerConsole
11:  {
12:      class Program
13:      {
14:          static void Main(string[] args)
15:          {
16:              PluginTable.DomainLibraries.AddPlugin
();
17:              new DomainApp().Startup();
18:   
19:              using (ServiceHost serviceHost = new ServiceHost(typeof(Rafy.DataPortal.WCF.ServerPortal)))
20:              {
21:                  serviceHost.Open();
22:                  Console.WriteLine("Press 
to terminate service");
23:                  Console.ReadLine();
24:                  serviceHost.Close();
25:              }
26:          }
27:      }
28:  }

然后,为本项目添加应用程序配置文件 App.config,代码如下:

1:  
2:  
3:      
4:          
5:      
6:      
7:          
8:      
9:      
10:          
11:              
12:                  
13:                  
14:                      
15:                          
16:                      
17:                  
18:              
19:          
20:          
21:              
22:                  
23:                      
24:                      
25:                  
26:              
27:          
28:      
29:  

 

修改客户端应用程序连接方式


接下来需要把界面程序变更为连接服务端。打开 ClothesSys 项目中的 Program.cs 文件,修改为以下代码:

1:  static class Program
2:  {
3:      /// 
4:      /// 应用程序的主入口点。
5:      /// 
6:      [STAThread]
7:      static void Main()
8:      {
9:          PluginTable.DomainLibraries.AddPlugin
();
10:          new ClientDomainApp().Startup();
11:   
12:          Application.EnableVisualStyles();
13:          Application.SetCompatibleTextRenderingDefault(false);
14:          Application.Run(new formLogin());
15:      }
16:  }
17:   
18:  /// 
19:  /// 客户端使用的应用程序类型。
20:  /// 
21:  public class ClientDomainApp : DomainApp
22:  {
23:      protected override void InitEnvironment()
24:      {
25:          RafyEnvironment.Location.DataPortalMode = DataPortalMode.ThroughService;
26:   
27:          base.InitEnvironment();
28:      }
29:  }

RafyEnvironment.Location.DataPortalMode 表示连接数据的模式,默认值是DataPortalMode.ConnectDirectly(直接连接数据库),ClientDomainApp 类把该值变更为 DataPortalMode. ThroughService(通过服务连接数据)。

 

配置客户端应用程序


在客户端配置文件中,删除数据库连接配置,并添加 WCF 连接配置,如下:

1:  
2:  
3:      
4:          
5:      
6:      
7:          dataPortalProxy="Rafy.DataPortal.WCF.ClientProxy, Rafy.Domain"
8:          collectDevLanguages="IsDebugging">
9:      
10:      
11:          
12:              
13:                        binding="basicHttpBinding" bindingConfiguration="basicHttpBindingConfig"
14:                        contract="Rafy.DataPortal.WCF.IWcfPortal" />
15:          
16:          
17:              
18:                  
19:                      
20:                  
21:              
22:          
23:      
24:  

 

运行程序


先运行 ServerConsole,成功运行界面:

再运行 ClothesSys,点击登录。登录成功,即说明已经成功使用 C/S 进行部署。

 

代码下载


下载地址:

本文的代码在“3.使用 CS 部署程序”文件夹中。

 

本文转自BloodyAngel博客园博客,原文链接:http://www.cnblogs.com/zgynhqf/p/3421517.html,如需转载请自行联系原作者

你可能感兴趣的文章
使用XML生成菜单
查看>>
udp,tcp对于socket的写法
查看>>
第二周个人赛
查看>>
推断Windows版本号新方法
查看>>
2017-4-18 ADO.NET
查看>>
RSuite 一个基于 React.js 的 Web 组件库
查看>>
技术博客网址收藏
查看>>
python 金融分析学习
查看>>
授人以渔不如授人以鱼
查看>>
matlab练习程序(图像Haar小波变换)
查看>>
【Java】从域名得到ip
查看>>
Mysql索引会失效的几种情况分析
查看>>
LVM逻辑卷
查看>>
zoj3591 Nim(Nim博弈)
查看>>
canvas绘图
查看>>
poj - 3039 Margaritas on the River Walk
查看>>
bootstrap(5)关于导航
查看>>
Aptana插件在eclipse中安装
查看>>
jQuery-数据管理-删除事件
查看>>
下载器简单实例
查看>>