本文共 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("Pressto 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,如需转载请自行联系原作者