在.NET Fiddle沙箱里玩转代码

在.NET Fiddle沙箱里玩转代码


作者:Tony Patton | 托尼·巴顿
翻译:PurpleEndurer,2014-11-18,第1版

 

  C#和VB.NET开发人员可以使用.NET Fiddle在浏览器窗口中运行调试代码,并通过URL共享代码。

 

  jsFiddle是我最喜欢的在线工具之一,因为它可以让你在浏览器中轻松地测试和构造JavaScript,HTML和CSS。让我做梦也没想到.NET开发者会拥有这样的工具,但.NET Fiddle为C#和VB.NET开发人员带来同样的功能。

  总的来说,它可以让你在浏览器窗口反复折腾代码片段而无需运行Visual Studio,当你只是调试少量代码时这实在是太方便了。.NET Fiddle的一个最大卖点就是它是免费的。
 
  测试代码
 
  基本的.NET Fiddle界面如图A所示。该界面的左侧部分包含了语言(C#或VB.NET),项目类型(控制台或交互),NuGet Packages,以及Auto Run(自动运行)是否启用的选项。交互模式允许你无需架构地输入代码行,而控制台模式包括Program类和Main方法。Auto Run(自动运行)选项允许你决定通过交互方式输入的代码时是否边输入边执行。
 


图A .NET Fiddle第一次装载时的基本界面
 
  NuGet Packages选项允许你在代码中使用各种软件包,这些可用软件包由.NET Fiddle团队提供;当感叹号(与NuGet Packages选项相邻)选定后显示的软件包列表如图B所示。.NET Fiddle团许诺不断更新这个名单,所以请经常检查什么是可用的。
 


图B. NET Fiddle的NuGet Packages选项中目前可用的软件包。
 
  图A的中间区域是该工具的最重要的部分 - 输入代码的地方。底部中间的窗口显示了运行的代码段(或错误)的输出/结果,右下窗口有代码统计。
 
  图C显示了处理基本数组的C#代码执行结果。控制台语句的输出被显示在窗口中的输出区域,而代码统计显示在右下方。该统计数据包括了代码何时执行;编译和执行所用时间;内存消耗和CPU执行时间。这些统计信息在本例中意义不大,但在跟踪或者调试代码执行时,它们是有用的。
 


图C 在.NET Fiddle 执行C#数组示例代码。
 
  一个全功能的编辑器

  我原本只期望.NET Fiddle能配有一个基本的编辑器(总的来说,是浏览器中的文本编辑器),但它带来的更多。它提供了代码验证以及智能感知,这真是一个天赐礼物,因为我不知道是否有人能记住那么多可用对象和方法的语法。此外,它会对动态代码进行验证,并在出现问题时提供可视线索。
 
  图D展示了对Struts的示例代码智能感知和验证动作。智能感知可以在你输入对象名称和句号后提供有效方法和属性,同时验证表明某一行(SS.Y)包括一个无效的属性名。我选择使用自定义代码来证明智能感知功能对自定义代码的支持与对内置.NET对象一样棒。

 
图D .NET Fiddle代码编辑器同时提供智能感知和验证。

 

  协作选项

 

  尽管在浏览器中测试代码的能力是很强大的,在.NET Fiddle可用的协作功能锦上添花。与jsFiddle相对应,.NET Fiddle提供了通过URL共享代码的能力,但它更进一步提供实时协作。点击.NET Fiddle界面顶部的Collaborate(协作)按钮,打开如图E所示的窗口。
 
  .NET Fiddle使用TogetherJS来促进协作;图F显示了合作一旦进行时的初始化界面(再次点击它来关闭或停止合作)。你可以通过提供链接邀请其他人研究代码或聊天(通过IM或音频)(图F)。您可以通过Share(分享)按钮(在界面的顶部)来共享代码,它允许你让别人通过URL查看代码或者在网页上嵌入代码(图G)。
 


图E 利用.NET Fiddle的TogetherJS进行协作。

 

图F 在.NET Fiddle内开始协作。

 

图G .NET Fiddle代码共享选项。
 
  一个有趣又有用的工具

 

  Visual Studio是一个伟大的应用程序开发工具,但在你只是想玩玩一段不能确定是否能发展为完整成熟项目的代码的时候就是大材小用了。.NET Fiddle项目提供了一个令人印象深刻的跨浏览器的接口;我在最新版本的Chrome,Firefox和Internet Explorer进行了测试,没有任何问题。
 
  我经常一个人开发代码,但协作选项是充满了机遇。如果看到它在经常发布代码进行分析的论坛上使用,那将会是很有趣的。
 
  你已经使用.NET Fiddle了吗?如果没有,你会考虑尝试它一下吗?
文来源:http://www.techrepublic.com/blog/software-engineer/play-with-code-in-the-net-fiddle-sandbox/

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。