代码之家  ›  专栏  ›  技术社区  ›  BikeMrown

使用WCF跳入N层架构?

  •  6
  • BikeMrown  · 技术社区  · 15 年前

    我在一个大型的州政府机构工作 TAD 落后于时代。我们的技能已经过时,预算冻结会阻止任何培训或雇佣新员工/顾问(解雇员工也是不可能的)。设计业务对象、实现设计模式、建立代码库和服务、单元测试、源代码控制等都是您在这里找不到的。在乔尔测试中,我们是尽可能多的0分。好消息是我们只能从这里上去!

    我们开发的桌面CRUD应用程序(在C++、C语言或Java)中通过ODBC连接直接攻击Oracle数据库。基本上,我们的GUI中充斥着SQL语句和补丁代码。我们被告知要转向面向服务的N层体系结构,以防止直接访问数据库并消除用户机器上的Oracle客户机需求。

    WCF是我们应该走的路吗?我们已经完成了一些n层应用程序演练(例如 this one )它们看起来很容易实现,但是我们还不知道是否考虑了正确的技术。利用.NET生成的类型化数据集似乎是一个很好的权宜之计,可以节省我们数月/数年的工作(而不是为许多项目从头开始创建新的业务对象)。这种封闭的方法对第一步可行吗?

    5 回复  |  直到 15 年前
        1
  •  4
  •   Jimmie R. Houts    15 年前

    我最近开始在一些Web应用程序中为我的数据层使用WCF服务,我必须说,这在开始时(第一周左右)是令人沮丧的,但一旦代码被部署,它是完全值得的。

    你应该先用一个现有的小应用程序来试用它,或者用一个概念验证来确保它能满足你的需求。

    从你所处环境的描述来看,我相信你会马上意识到这一点。

        2
  •  2
  •   Sailing Judo    15 年前

    我为之工作的最后一家公司选择WCF几乎是因为你上面描述的确切原因。WCF有很多好的文档和书籍,它相对容易工作,并且WCF支持很多配置选项。

    当你开始试图弯曲WCF,使其以一种非开箱即用的方式工作时,可能会有一些头痛。这些通常是配置问题。但是像这样的网站或者 IDesign 可以帮助你度过难关。

        3
  •  2
  •   Ronald Wildenberg    15 年前

    首先,我肯定 (不好意思强调了这一点)担心用打字会节省多少时间。 DataSet 而不是创建自己的业务对象。这通常不是您将花费大部分开发时间的地方。我更喜欢自己使用Business Objects。

    在您的情况下,我希望首先实现概念验证。解决你可能遇到的所有问题的方法。这个概念验证应该实现一个完整的用例,从客户机开始,从数据库中检索数据并将其返回给客户机。在继续之前,您应该对您的实现充满信心。

    然后是关于技术的选择。对于客户机应用程序和服务层之间的通信,WCF无疑是一个不错的选择。我想您的客户机和服务层都将成为C应用程序?这使得事情变得容易得多,因为不同平台之间的互操作性(例如Java/C等)仍然是微不足道的,尽管它应该在大多数情况下工作。

        4
  •  2
  •   Kwal    15 年前

    看看Entity Framework(因为已经有几个Oracle提供程序可供它使用)和.NET 3.5 SP1的结合,后者可以对您的EF生成的类进行内置的WCF序列化。

    下面是一个很好的博客: http://blogs.msdn.com/dsimmons

        5
  •  2
  •   Todd Stout    15 年前

    CSLA 可能非常适合您的n层桌面应用程序。它支持WCF,有一个大型的开发社区,并且有良好的文档记录。它非常面向对象。