2010-11-23 60 views
14

¿Hay algún editor de C# con un compilador incorporado? Visual Studio es genial, pero me resulta molesto crear un proyecto adicional para cada archivo. ¿No hay algo así como SciTE donde simplemente puede escribir el código, compilarlo y ejecutarlo en la consola?Editor liviano para C#?

+2

¿Por qué creas un proyecto adicional para cada archivo? – abatishchev

+0

*** Visual Studio es genial, pero me resulta molesto crear un proyecto adicional para cada archivo ***? ehhh? – jgauffin

+2

Lo siento, creo que me expresé de una manera incorrecta. De hecho, comencé a aprender C# viendo Video-Tutorials. – maggg

Respuesta

1

#develop es un ambiente libre de desarrollo integrado (IDE) para C#, VB.NET, Boo, IronPython, IronRuby y F # proyectos en la plataforma .NET de Microsoft. Está escrito (casi) completamente en C# y viene con las características que esperarías de un IDE más algunas más.

El proyecto #develop comenzó el 11 de septiembre de 2000.

http://www.icsharpcode.net/opensource/sd/

+0

Mientras esto El enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. –

+1

@ S.L.Barth: Absolutamente cierto. Corregido – jgauffin

+0

Este proyecto ahora está más o menos muerto. Solo admite hasta C# 5, que ahora tiene 5 años. – galamdring

7

Mira la Snippet Compiler.

Muy ligero. Diseñado para compilar y ejecutar solo unas pocas líneas de código.

10

Personalmente solo uso un editor de texto liviano (jed, o Notepad++) y una consola separada. Me suelen hacer la consola abierta en c:\users\jon\Test donde hay un archivo Test.cs con lo que he hecho la última - que típicamente incluyen:

using System; 
using System.Collections.Generic; 
// etc 

class Test 
{ 
    static void Main() 
    { 
    } 
} 

que normalmente acaba de deshacerse de lo que estaba en Main antes y puesto en lo que quiera.

Si bien la compilación desde el editor sería potencialmente útil, a menudo quiero usar ILDasm o Reflector, por lo que es útil tener la consola abierta.

Es posible que también desee consultar LINQPad que lo ayudaría: tiene Intellisense y puede construir y ejecutar código directamente. Está especialmente dirigido a ayudar con consultas LINQ (de ahí el nombre) pero también puede usarlo de una manera más general.

1

yo solía jurar por SnippetCompiler, pero LINQPad es impresionante para el funcionamiento de fragmentos, así como una gran capacidad de LINQ en funcionamiento. Si usa Autocompletar (licencia), es incluso mejor.

[Full Disclosure:. Sé que el autor de LINQPad, Joe Albahari, pero no lo aprueba todo lo que no se destacan por sus propios méritos]

1

También puede configurar Visual Studio no para guardar el proyecto de archivo cuando creas uno Hago esto todo el tiempo para explorar espacios de nombres. Me encanta el compilador de fragmentos, pero las opciones de autocompletar no son tan buenas.

La opción está en Herramientas> Opciones> Proyectos y soluciones> "Guardar proyectos nuevos cuando se crean" Al desmarcar esto, creará un proyecto en un directorio temporal que se limpiará cuando cierre esa instancia de Visual Studio .Si elige guardar su trabajo, puede usar "Guardar todo" para obtener un cuadro de diálogo que le permitirá especificar una ubicación de guardado para el proyecto.

También tomé el texto predeterminado de un archivo Snippet Compiler y lo tengo como un fragmento en Visual Studio. El archivo predeterminado de SC ajusta su código en un bloque try/catch y proporciona funciones de acceso directo para Console.WriteLine().

using System; 
using System.Collections.Generic; 

public class MyClass 
{ 
    public static void RunSnippet() 
    { 

    } 

    #region Helper methods 

    public static void Main() 
    { 
     try 
     { 
      RunSnippet(); 
     } 
     catch (Exception e) 
     { 
      string error = string.Format("---\nThe following error occurred while executing the snippet:\n{0}\n---", e.ToString()); 
      Console.WriteLine(error); 
     } 
     finally 
     { 
      Console.Write("Press any key to continue..."); 
      Console.ReadKey(); 
     } 
    } 

    private static void WL(object text, params object[] args) 
    { 
     Console.WriteLine(text.ToString(), args); 
    } 

    private static void RL() 
    { 
     Console.ReadLine(); 
    } 

    private static void Break() 
    { 
     System.Diagnostics.Debugger.Break(); 
    } 

    #endregion 
}