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

如何实现我现有的业务层到Silverlight 4应用程序?

  •  1
  • pencilCake  · 技术社区  · 14 年前

    假设我有自己的业务层,其中包含业务对象和业务服务。我已经决定创建一个“silverlight业务应用程序”(使用sl v 4.0),我想使用我计划开发的sl应用程序中已经使用过的业务层。

    我知道我不能包含不是SL项目的项目。

    你能建议我怎样才能做到这一点吗?

    谢谢

    2 回复  |  直到 14 年前
        1
  •  3
  •   STW    14 年前

    从SL开始!=.NET,需要使用Silverlight编译器在Silverlight程序集中编译它们换言之,你不能直接消费他们没有一点小伎俩。

    一个选项是创建一个Silverlight项目,然后使用文件链接共享来自.NET项目的代码文件(不复制它们)。正常的计划 拥有 包含在其中的文件,但包含一个“链接”文件用于编译,而不完全归项目所有文件链接到“添加文件和GT;添加现有文件”对话框,看右下角,你会看到你可以“链接”现有的文件。

    然后你可以做什么:

    • 有你的正常.net项目,和你的.cs文件
    • 有一个Silverlight项目 链接 到您的第一个项目代码文件

    编译Silverlight项目时,它会将链接的文件视为属于SL项目(但在驱动器上,.NET项目中只有一个副本)。


    您可能遇到的一个挑战是,Silverlight不支持所有的.NET类型,因此如果您的业务对象包含这些类型,则您的.NET代码可能无法在Silverlight下编译对于这些情况,可以使用预编译器指令来拥有2x方法签名:1x.net和1x sl兼容。你可以设定指令(即: Silverlight==True )编译器会选择其中一个。

    例如:

    #IF SILVERLIGHT
        public void SomeMethod(SilverlightType someParam)
    #ELSE
        public void SomeMethod(SomeDotNetType someParam)
    #ENDIF
    

    Here's a link with a walkthrough from Rocky Lhotka (作者/CSLA.net框架设计器)他提到使用链接文件和/或部分类来有选择地编译每个平台。

        2
  •  0
  •   iCollect.it Ltd    14 年前

    如果您使用ria服务,您会发现您可以在服务器端执行各种聪明的技巧(包括链接到完整的.net库)。只是 客户端 必须使用仅Silverlight库。

    Silverlight的挑战实际上是通过RIA属性标记和自定义验证器向客户端公开适当的业务规则。

    在实践中,您会发现客户端规则可能与服务器端稍有不同,因此稍微重新考虑一下在客户端上实际需要验证的内容并不是一件坏事。

    推荐文章