在.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/

时间: 2024-10-14 22:54:17

在.NET Fiddle沙箱里玩转代码的相关文章

一群伟大的科学家死后在天堂里玩藏猫猫,轮到爱因斯坦抓人,他数到100睁开眼睛,看到所有人都藏起来了,只见伏特趴在不远处。 爱因斯坦走过去说:“伏特,我抓住你了。” 伏特说:“不,你没有抓到我。” 爱因斯坦:“你不是伏特你是谁?” 伏特:“你看我身下是什么?” 爱因斯坦低头看到在伏特身下,居然是安培! 伏特:“我身下是安培,我俩就是伏特/安培,所以你抓住的不是我,你抓住的是....” …… 欧姆!

一群伟大的科学家死后在天堂里玩藏猫猫,轮到爱因斯坦抓人,他数到100睁开眼睛,看到所有人都藏起来了,只见伏特趴在不远处.爱因斯坦走过去说:"伏特,我抓住你了."伏特说:"不,你没有抓到我."爱因斯坦:"你不是伏特你是谁?"伏特:"你看我身下是什么?"爱因斯坦低头看到在伏特身下,居然是安培!伏特:"我身下是安培,我俩就是伏特/安培,所以你抓住的不是我,你抓住的是...."--欧姆! 爱因斯坦反应迅速,于是改口

驱动里执行应用层代码之KeUserModeCallBack(WOW64是由三个动态库wow64.dll wow64win.dll wow64cpu.dll来实现)

在驱动层(ring0)里执行应用层(ring3)代码,这是个老生常谈的技术,而且方法也挺多. 这种技术的本质:其实就是想方设法在驱动层里把应用层代码弄到应用层去执行. 比如在APC异步调用中,KeInsertQueueApc,KeInitializeApc等函数中可设置一个在ring3层执行一个回调函数,这样就可以回到应用层去执行代码了. 再比如在驱动中查找某个进程的一个线程,然后挂起它,把他的EIP指向需要执行的一段代码(把驱动层需要注入的这段代码叫ShellCodde), 执行完之后再回到线

thinkphp从数据库里的html代码显示页面不解析

首先,这个问题不应该出现在这里,因为以前在用ThinkPHP3.1.2的时候,利用富文本编辑器保存文本后,直接从数据库里面取出的数据都能正常显示,改用ThinkPHP3.2.3之后,thinkphp从数据库里的html代码显示页面不解析,直接显示源代码了,这个问题其实很简单,只是当时很着急,没有想到. 一般出现问题之后,要从源头开始思考,找原因,不是立即百度或Google.今早起来的时候想了一下,所有的数据文件都是从我的数据库里面显示出来的,问题应该就出现在数据的获取和数据的展示途中.果然,打开

Asp.net mvc怎么在razor里写js代码

我试图在Razor里写JS代码,但是不行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 <script type="text/javascript">   //some javascrpt code here to display map etc     //now add markers  @foreach (var item in Model) {

jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行?

jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行? 因为在解析时最新解析的就是JAVA代码,不管写哪里,都会最新被解析

在ASP.NET里实现计算器代码的封装

一.具体代码 Default2.aspx.cs public partial class Chapter1_Default2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } int a = 0; private int t; public static int Count=0; public static int right=0; protected void Button1_Clic

程序基石系列之内存里C语言代码布局

一个程序本质上都是由 BSS 段.data段.text段三个组成的.这样的概念在当前的计算机程序设计中是很重要的一个基本概念,而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题. BSS段:在采用段式内存管理的架构中,BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段:在采用段式内存管理的架构中,数据段(da

关于WORD里怎样编辑代码好看(技术帖整理)

最近因为弄各种文档,包括课设和工程性文档 对WORD里编辑的格式要求好高~ 为了贴代码好看,百度了一下! 技巧一: 插入一行一列的表格,在表格中写代码 技巧二: 关于程序员用的10大字体(上一篇转载的) word里面常用的有  courier new.lucida console.Consolas 如果开了cleartype用lucida console或者consolas 如果没开cleartype用courier new Lucida Console,10号是个不错的选择~ 我对比了一下co

IDEA里如何实现代码自动提示?(图文详解)

不多说,直接上干货! 前言 使用eclipse都习惯使用快捷键ALT+/ 来代码自动提示,后来使用IntelliJ Idea这个快捷键并不管用,十分不便,这里记录如何使更改idea代码自动提示快捷键. 首先,我这里,先复制Default,怎么做? 见 然后,我这里是以Default的复制(Default cpoy)为例 IDEA里的Keymap(Default.Default for GNOME.Default for KDE.Default for XWin.Eclipse.Eclipse(M