当我的JavaScript和C#代码库重叠时,如何减少维护?

时间:2009-06-09 18:20:53

标签: c# javascript json

我有一个包含C#和JavaScript使用的对象的库。有几个对象,我们称其中一个为Foo,在C#和JavaScript中使用相同的基本实现。当我想将这种类型的对象从服务器传输到浏览器时,我只需调用Foo.ToJson()将该对象序列化为JSON,然后使用安全的eval()操作在浏览器端恢复该对象。 p>

这一切都很好,但是库变得越来越复杂,并且保持JavaScript和C#代码库同步的需求变得越来越困难且容易出错。我对简化这种架构或使其易于维护的想法很感兴趣。想法?

4 个答案:

答案 0 :(得分:3)

您可以使用脚本#:http://projects.nikhilk.net/ScriptSharp

查看

由于您的类都是用C#编码的,因此您可以为服务器和客户端项目重用相同的.cs文件。这样,当你进行更改时,它会自动编译成javascript: - )

答案 1 :(得分:2)

您是否考虑过将“共享代码”转换为Web服务,这样您的任何应用程序都可以访问它,并且您可以将所有内容分发以帮助提高性能。

只需一个解决方案。

http://en.wikipedia.org/wiki/Web_services

答案 2 :(得分:1)

  1. 使应用的部分尽可能以数据为导向重叠。在一定的大小,更容易让双方运行的状态机解释器可以解析相同的数据。
  2. 编写一次代码。您可以查看一些C#到JavaScript编译器。 Script#jsc

答案 3 :(得分:1)

使用DTO。数据传输对象。

这样,如果您的JScript或C#对象发生更改,您的DTO不一定要更改,除非客户端立即需要该属性。即使在那时,你也可以清楚地分离出什么是序列化的,什么不是。

Dave Ward at Encosia speaks a lot about this