我对Script# 的了解不算很多很深入,只是在开发项目的过程中接触过很多Script#写的code,当然他们最终还是要被编译成js。
下面我来分享一下对这门语言(或者我们称之为工具)的一些理解。其中主要参考github上的介绍,稍作翻译- https://github.com/NikhilK/scriptsharp
Script# 是一个将C# style的源码编译成JavaScript代码的开发工具,它的作用在开发需要大规模使用HTML5,node.js等script-based 的web应用程序的时候更加突出,有效。
Script#将JavaScript看作是 “assemblylanguage of the Web”, 之所这样认为并不是因为觉得JavaScript不适合程序员直接用来开发,反而是因为JavaScript非常灵活多变而且无所不在。
当我们构建规模相对较大的应用程序(譬如需要连接大型数据库,项目需要投入很多人并且划分为很多子项目,需要较长的开发周期)时,代码的可维护性以及开发语言的工具支持对提升开发效率非常重要,而C#语言的编码辅助补全(intellisense), 错误检查(build-time error checking), 面向对象编程的语法(natural language syntax for OOP constructs)等功能已经在相应的IDE开发工具(Visual Studio)中集成并且非常成熟, 此外,IDE还为开发者提供了很多强大的功能,诸如build,refactor,单元测试,静态源码分析,源码可视化等等(the power Visual Studio IDE and standard .NETtools ecosystem (such asmsbuild, refactoring, unit testing, static analysis, code visualization, fxcop))。
Script#将所有这些功能带给开发者,开发者仍然是在build JavaScript-based web应用,只不过使用了另外一套工具辅助做到这些而已。
因此,不难理解Script#产生的初衷:将C#语言的“高效率”,“为人所熟知”等优势 连同 JavaScript的灵活及跨平台等优势 结合起来。
现在的Script#支持开发者使用jQuery,jQuery plugins,Knockout等框架,并且可以通过扩展兼容更多的其他框架。
除了上述提到的好处之外, 当然也有一些问题:
其中我认为最突出的问题是:调试比较麻烦。试想一下,完全用JS写的code,我们直接打开网页,F12加断点,调试即可。对于Script#写的code,编译器最终生成的JS文件会和源代码文件有较大差异,开发者需要搜索到相应的函数再加断点,调试。除此之外,当code改动后,需要重新build新的JS文件进行调试。因此,为了避免重复编译耗费过长的时间,简单的改动我们可以直接针对JS文件进行,当发现改动之后的code达到我们的预期后,再重新修改Script#写的code。
以上的介绍多少会有些片面或者偏差,如果大家发现有问题的话,不妨留言给我我会纠正。谢谢。
Ajax 可谓是目前最火爆的Web开发热点之一。微软也专门针对Ajax 推出了自己的框架 Atlas。然而,许多使用C#进行Web开发的程序员却略感郁闷,“Javascript”也许不是他们最喜欢的。也正因此微软架构师 Nikhil Kothari 正在引领团队开发一个名叫“ Script#”的语言,它是微软“#”语言家族的另一个衍生。
1231

被折叠的 条评论
为什么被折叠?



