代码之家  ›  专栏  ›  技术社区  ›  Brennan Vincent

个人Silverlight项目是F还是C?

  •  3
  • Brennan Vincent  · 技术社区  · 14 年前

    我即将开始为我大学的一个学生组织做一个富互联网应用项目。我将是唯一的程序员,使用什么技术完全取决于我。我已经决定使用Silverlight,但我不确定是使用C还是F。以下是我要记住的一些事情:

    • 我已经知道它,并在工作中与Silverlight一起广泛使用它。我没有F#和基本的FP经验。
    • 有人说OOP范式更适用于复杂的有状态ui。
    • 在“现实世界”中,经验可能更有价值。

    F#:

    • 主要原因是我想学点新东西。函数式编程语言看起来很酷(我发现自己经常使用C#的FP特性,并且认为它们是C#3.0最大的改进)。我想如果我用F#的话我会有更多的乐趣,但是我是不是不现实地认为时间和努力的代价可能不会超过好处呢?
    6 回复  |  直到 14 年前
        1
  •  11
  •   Robin Day    14 年前

    在我看来,当你是一个学生的时候,你应该尽可能多地把手指放进罐子里。

    你玩的语言越多,你就越能理解用特定语言做事的“最佳”方式。

    底线。。。趁你还能玩的时候玩那些酷东西!

        2
  •  4
  •   Greg D    14 年前

    因为您希望创建一些有用的东西,这些东西将在您的维护人员任期结束后继续使用,所以我建议您使用C#编写大多数。不过,要解决新技术的难题,你可以做的是拉出不同的、定义良好的组件,这些组件不直接与UI交互,然后将它们写在一个单独的F#程序集中。

    我做了一些类似的事情,我在过去开放源码的项目。我的基本UI逻辑(在本例中,M-V-VM的V-VM部分)是在C中的,因为它与WPF技术配合得非常好。然后,我将模型本身的某些面向功能的组件分解成一个单独的程序集,并用F#编写,只是为了有限地接触该语言。

    不管怎样,在这样的情况下,关键是你要玩得开心,享受你正在做的事情

        3
  •  3
  •   Tuomas Hietanen    14 年前

    您可以制作F#business logics项目(dll)。

    然后是C#中的用户界面。在用户界面项目中,您可以添加对F#-库的引用。

    在使用Silverlight时,这通常是一个很好的解决方案:F#的强大功能是(函数式)编程,但目前C#将有更好的工具支持。

        4
  •  1
  •   Curtis    14 年前

    我知道它不在您的列表中,但是如果您对学习一些新的东西感兴趣,您可以考虑GWT—您用Java编写您的客户机(这应该是从C#的简单跳跃),然后编译器将客户机端转换为JavaScript。应该比Silverlight更具跨平台兼容性,而且它是一种有趣的技术融合(CSS、JavaScript和Java在不久的将来不会出现)。

        5
  •  1
  •   Tomas Petricek    14 年前

    我刚刚在伦敦F#用户组会议上讲了一个关于在F#中编程反应式Silverlight应用程序的话题。这个 recording of the talk (and samples) are available here ,所以你可以看看。

    您可以考虑以下几点:

    • 我认为F#有一些非常好的特性,使编程这类应用程序比C#更优雅(例如,您可以很好地将程序建模为状态机,并直接用代码进行编码)。

    • 令我惊讶的是,伦敦地区对优秀F#程序员的需求已经相当大了。这在不同的地方可能会有所不同,但我认为F#正成为某些工作简历上的“好东西”。

        6
  •  0
  •   David Burton    14 年前

    我认为这将在内部网环境中使用。否则,我会质疑Silverlight的选择是否真的是最好的,因为市场渗透。 然而,如果您打算沿着Silverlight路线走下去,那么C#是目前最有可能得到支持的。如果你还在学习,那么这也是一条拥有最好文档的路线。F#有一些优秀的文档,但不幸的是没有C#那么多。 您简要地提到了时间和成本承诺。除非你对函数式编程非常熟悉,否则F#可能会花费更长的时间,部分原因是不熟悉,部分原因是有大量的参考文档帮助你。