65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Mono 构建应用程序

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.56/5 (18投票s)

2003年11月7日

2分钟阅读

viewsIcon

95666

downloadIcon

325

使用 mono 和 IBM DB2 开发 .NET 跨平台应用程序

引言

MONO 是一个开源项目,于 2001 年在 Ximian 的协调下启动,旨在开发 .NET Framework 的开源跨平台实现。 在本文中,我将展示使用 Mono 构建分布式应用程序的基础知识。 该应用程序是用 C# 在基于 RedHat 9 的系统上编写的。它使用 IBM DB2 作为数据库后端,即 DB2 附带的 SAMPLE 数据库和我的 IBM DB2 开源托管提供程序(包含在附加的 zip 文件中)。

描述

此示例应用程序分为两个概念组件:使用 .NET Remoting 访问的服务器组件和使用 C# 和 GTK# 编写的 GUI 应用程序。 我选择使用此 GUI 工具包,因为它比 Windows.Forms 灵活得多,并且在某些方面也成熟得多,并且它具有真正跨平台的巨大优势。 它还具有一个巨大的优势,即拥有一个非常易于使用的界面设计器 - GLADE。 该界面保存在基于 XML 的文件中,可以使用 Glade.XML 类轻松导入到 C# 代码中。 事实上,您甚至可以定义您的应用程序将处理的事件,并在 GLADE 中指定处理每个事件的函数。

要在 Windows 机器上运行,GTK 将需要 cygwin 环境

服务器组件是客户端应用程序的数据源。 为了使示例简单,它仅返回一个 ArrayList,其中包含来自 SAMPLE 数据库的员工相关数据。 客户端应用程序将接收此 ArrayList 并将员工数据插入到 GtkTreeView 中(相当于更多 Windows.Forms 组件的灵活替代品,在本例中为 DataGrid)。

构建代码

  1. IBM DB2 托管提供程序

    在 Linux 上使用 Mono

     mcs -unsafe -target:library /d:OS_LINUX -r:System.Data.dll 
                            -out:System.Data.Db2Client.dll  *.cs

    在 Windows 上使用 Mono

    mcs -unsafe -target:library /d:OS_LINUX -r:System.Data.dll 
                           -out:System.Data.Db2Client.dll  *.cs

    托管提供程序也可以与 Microsoft .NET Framework 实现一起使用

    csc -unsafe -target:library /d:OS_LINUX -r:System.Data.dll 
                          -out:System.Data.Db2Client.dll  *.cs
  2. EmployeeManager 组件
    mcs -r:System.Data.dll -r:System.Data.Db2Client.dll remotable.cs
  3. server 组件
    mcs -r:System.Runtime.Remoting.dll -r:remotable.dll server.cs
  4. client 组件
    mcs -target:exe -resource:db2test.glade -r:remotable.dll 
       -r:System.Runtime.Remoting.dll -r:gtk-sharp.dll 
       -r:glade-sharp.dll -out:sample.exe sample.cs

运行代码

  1. 启动服务器
    [db2inst1@linux db2test]$ mono server.exe

    服务器必须由具有 DB2 权限的用户启动。

  2. 启动客户端
    mono sample.exe

    如果您在运行此示例时遇到任何问题,或者您有任何与使用 mono 相关的问题,请随时通过 victor.vatamanescu @ hqsoftware . ro 与我联系(空格用于防止垃圾邮件)。

祝您编码愉快!

© . All rights reserved.