GitHub Project Powering Gistlyn.com - AC# GIST IDE para crear, ejecutar y compartir fragmentos de C# ejecutables, ejecutables.
Gistlyn es la mejor herramienta de colaboración para probar y explorar las bibliotecas C# y .NET en Nuget desde una instalación cero: el navegador moderno. Es ideal para su uso como herramienta complementaria para probar bibliotecas durante el desarrollo o en marcha desde la comodidad de su iPad yendo a Gistlyn.com.
Demo en vivo: gistlyn.com
Gistlyn es una plataforma abierta donde todos los fragmentos y la documentación de C# están alojados completamente en GitHub Gists que permite a cualquiera crear nuevos Gists o Fork, actualizar o cambiar el nombre y agregar nuevos archivos a los existentes, proporcionando una experiencia completa de autor de UI para sus fragmentos de C# que se guarda directamente a sus Gists en Github. Puede crear fácilmente una copia de cualquier GIST al presionar Ctrl+S que guardará cualquiera de sus cambios en su copia modificada.
Hello World Gist muestra un ejemplo mínimo de C# de lo que se necesita para ejecutar en Gistlyn, es decir, solo un fragmento de código fuente C# válido en un archivo main.cs :
//Variables in top scope can be inspected in preview inspector
var name = "World" ;
var greeting = $ "Hello, { name } !" ; Al presionar Ctrl+Enter (o hacer clic en Play), ejecutará su código en el servidor de Gistlyn, ejecutándose en un contexto aislado donde cada una de las variables definidas en el alcance de nivel superior se puede inspeccionar más. El inspector de vista previa también incluye un evaluador de expresión que puede usarse para evaluar las expresiones de C# en la sesión del servidor en vivo:
Gracias a la plantilla React Desktop Apps vs.Net Gistlyn está disponible en una variedad de sabores diferentes:
Implementado como una aplicación web ASP.NET en servidores Windows / .NET y Linux / Mono en:
Tener versiones de Windows y Linux de Gistlyn es útil cuando desea probar si una característica tiene el mismo comportamiento tanto en .NET como en Mono. Donde después de guardar puede agregar/eliminar el subdominio mono para ejecutar sus scripts en diferentes sistemas operativos.
Además de una aplicación web ASP.NET, Gistlyn también está disponible como una aplicación de escritorio Winforms autohostante o una aplicación de consola OSX/Linux/Windows de plataforma cruzada.
Ejecutar Gistlyn en su escritorio le permite aprovechar los recursos completos de su CPU para tiempos de construcción y respuesta más rápidos y, a medida que se ejecutan localmente, podrán acceder a su RDBMS u otros servidores y servicios en red disponibles desde su intranet local.
Gistlyn brilla en poder navegar rápidamente, ejecutar el código y la vista previa de los resultados de un vistazo donde puede obtener una vista previa de tipos complejos con colecciones complejas anidadas en un formato amigable para los humanos para comentarios instantáneos.
Para darle un ejemplo, esto es lo que muestra el Inspector de vista previa después de ejecutar el Código C# de la prueba de prueba de referencia de Ormlite a continuación:
//SELECT all artists including their Track references
var allArtists = db . LoadSelect < Artist > ( ) ;
allArtists . PrintDump ( ) ; // Dump to Console Después de ejecutar todas las variables se muestran en el Inspector de vista previa. Luego, hacer clic en allArtists lo ejecuta en el evaluador de expresiones y muestra los resultados a continuación:
Los métodos de extensión
T.PrintDump()yT.Dump()son ideales para verter y ver rápidamente los resultados de cualquier variable en la consola.
Gistlyn obtiene muchos beneficios naturales de ser un IDE basado en la web React, desde un enlace profundo hasta poder navegar rápidamente hacia atrás/hacia adelante a través de su historial de navegador. También ahorra cada cambio en su localStorage que se restaura al instante, por lo que puede cerrar su navegador en cualquier momento y volver a visitar a Gistlyn.com lo traerá de vuelta al mismo estado donde lo dejó. Los borradores de cada esencia que visita también se guardan, por lo que puede trabajar felizmente en múltiples GIST sin perder ningún cambio.
Otra característica que Gistlyn se beneficia naturalmente es las instantáneas ...
Las instantáneas le permiten guardar todo el estado del cliente de su espacio de trabajo actual (excluyendo su información de inicio de sesión) en una URL generada en la que puede usar para volver en el tiempo desde que se llevó o envió la instantánea a otra persona que pueda ver y ejecutar en lo que está trabajando, que podrá continuar trabajando desde el mismo lugar en el que está en el mismo lugar.
Al igual que todo lo demás en Gistlyn, una instantánea es solo un documento de snapshot.json de su estado serializado guardado en su cuenta de usuario en una esencia de GitHub privado.
A medida que las instantáneas se guardan en sus Gists, primero deberá iniciar sesión para poder tomar una instantánea. Después de que esté autenticado con GitHub, puede hacer clic en el icono de la cámara que aparece en el pie de página para tomar una instantánea:
Esto abrirá el cuadro de diálogo de instantánea donde puede ingresar el nombre de la instantánea que, por defecto, se pobla automáticamente con la marca de tiempo de cuándo se tomó la instantánea:
Al hacer clic en Guard Snapshot serializa su instantánea capturada y la guarda como un documento snapshot.json en una nueva esencia privada. Gistlyn luego solo agrega la identificación del recién creado GIST al ?snapshot
Hay 2 formas de cargar una instantánea, ya sea haciendo clic en la URL generada para iniciarla en un navegador:
Que cargará una nueva sesión de Gistlyn inicializada con la instantánea, completa con el contenido de todos los archivos de trabajo, el estado de la ventana de vista previa, cualquier registro de consola, etc.:
La alternativa es pegar la identificación de la esencia en la barra de URL de Gistlyn:
Por cierto, puede pegar la identificación de cualquier esencia de C#, colección o instantánea en la barra de URL
En nuestra misión de hacer de Gistlyn una herramienta de aprendizaje inmensamente útil y colaborativa para explorar cualquier biblioteca de .NET, Gistlyn incluye un UX optimizado para editar colecciones que hace que sea más fácil que nunca crear "documentación en vivo" que creemos que es la mejor manera de aprender sobre una biblioteca, mezclar la documentación y proporcionar una experiencia de desarrollo en vivo que permite a los desarrolladores de los desarrolladores y explorar lo que solo aprendieron sin perder el contexto al cambiar su entorno de desarrollo y establecer un entorno de desarrollo.
Gistlyn facilita la compartir fragmentos de C# con colegas o informar un problema a los mantenedores de la biblioteca con solo una URL o una ID de GIST guardada que cualquiera puede ver en un navegador en Gistlyn.com o en su versión de escritorio de Gistlyn.
Aquí hay un ejemplo de las características de autor de la nueva colección en acción:
Lo mejor de las colecciones de Gistlyn es que son simplemente el documento de Github Gist's con un solo index.md . Entonces, si anteriormente ha creado documentación en GitHub o ha hecho preguntas en StackOverflow, ya sabe cómo crear colecciones de GitHub.
Toda la documentación dentro de Gistlyn, incluida esta y la página de inicio, son colecciones de Gistlyn que se pueden ver haciendo clic en el icono del encabezado de colecciones :
El icono de colecciones abre la colección de inicio agregando su ID GIST a la cadena de consulta ?collection :
Al agregar enlaces en su colección ?querystring y no la URL absoluta, por ejemplo http://gistlyn.com?collection=... así que sus enlaces también funcionan en versiones de escritorio de Gistlyn que se ejecutan desde localhost:4000 .
La creación de una colección se puede hacer en cualquier momento desde el menú principal de Gistlyn:
Esto abrirá un documento de Markdown vacío en el editor de Markdown . Presione Ctrl+S para guardar su copia modificada en sus GitHub Gists. Después de guardar, la barra superior se volverá verde para indicar que está viendo o modificando una de sus propias Gists o colecciones:
Una vez que editar el documento, puede usar la barra de herramientas de Markdown para acceder rápidamente a las características de formato específicas de Markdown como el icono de inserción del enlace :
Que abre el cuadro de diálogo Insertar enlace y crear y vincular rápidamente a una nueva esencia o colección seleccionando el GIST o la colección existente que desea usar como plantilla:
Esto le permite .cs rápidamente múltiples C# Gists utilizando una copia de un packages.config Gists existente.
Puede agregar imágenes a su documento haciendo clic en el icono Insertar imagen a continuación:
Esto abrirá el cuadro de diálogo Insertar imagen donde puede arrastrar varias imágenes para cargarlas a Imgur e incrustarlas en su documento:
Después de que cada imagen haya terminado de cargarse a Imgur, se incrustará en su documento desde su posición de cursores utilizando el formato de imagen Markdown a continuación:

Mientras está autorizando su documento de Markdown, puede saltar libremente entre diferentes Gists o colecciones, ya que Gistlyn ahorra automáticamente el tipo de tipo que puede usar el botón Atrás para regresar a su nueva colección como lo dejó sin perder un ritmo.
Después de navegar lejos de su página, los iconos de flecha que se muestran a continuación aparecerán en el medio para indicar lo que está editando a la izquierda ya no coincide con la misma página a la derecha:
Use el icono de flecha superior derecha para cargar la página que está editando en la ventana de vista previa a la derecha para cargar la vista previa en tiempo real de su documento Markdown.
Use el icono de flecha inferior izquierdo para cargar la colección que está viendo a la derecha en el editor.
Si se vincula manualmente a Gists, otras colecciones y instantáneas usan los siguientes formatos a continuación:
?gist={id}?collection={id}?snapshot={id}Cuando Gistlyn ve estos enlaces, los carga en su sesión actual de Gistlyn. Todos los demás enlaces son manejados por el navegador que navega a la URL especificada que causa una carga de página completa. Si está vinculando a un sitio externo fuera de Gistlyn, le recomendamos abrirlo en una nueva ventana del navegador utilizando HTML en lugar de enlaces de Markdown. p.ej:
<a target="_blank" href="http://example.org">name</a>
Las colecciones son una excelente manera de crear recursos de aprendizaje y tutoriales para C#, lo que le permite crear recorridos paso a paso explicando cómo funciona algo a la derecha mientras proporciona enlaces a los fragmentos ejecutables de C# que los usuarios pueden probar y explorar en vivo en el editor de código a la izquierda.
Puede encontrar todas las colecciones de Gistlyn como Gists bajo la cuenta Github Gistlyn. Mirar a través de algunas de las colecciones de Gistlyn a continuación y sus fuentes de Markdown deberían proporcionar un buen recurso para aprender a crear colecciones en Markdown:
En lugar de enviar enlaces con ID de GIST inmemorables, también puede solicitar tener URL más fáciles de recordar los enlaces a cualquier colección de Gistlyn dejando un comentario sobre los nombres amigables Gist
Donde cualquier enlace en el GIST anterior está disponible para Gistlyn, por lo que en lugar de publicar enlaces a una ?collection={id} URL, puede usar un nombre más corto y más fácil de recordar en su lugar, por ejemplo:
Eso, como un acortador de URL, redirige a la URL vinculada: http://gistlyn.com?collection=991db51e44674ad01d3d318b24cf0934
El soporte integrado de Gistlyn para la función de referencia ADD ServiceStack genera una API escrita para servicios remotos de servicio de servicio remoto que se puede utilizar en cualquiera de los clientes de servicios de C# escribidos de ServiceStack para llamar a los servicios web y ver sus resultados, en segundos.
La forma más fácil de usar esta función es agregar el BaseUrl para su instancia remota de ServiceStack a la cadena de consulta ?AddServiceStackReference
Esto abrirá el cuadro de diálogo Agregar referencia de ServiceStack que valida automáticamente si la URL especificada está a una instancia de ServiceStack válida:
Presionando Enter entonces:
JsonServiceClient con su BaseUrlGet() utilizando la primera solicitud get dto que puede encontrarQue para TechStacks.io resulta en:
using System . Linq ;
using ServiceStack ;
using ServiceStack . Text ;
var client = new JsonServiceClient ( "http://techstacks.io" ) ;
//Call techstacks.io APIs by sending typed Request DTO's
var response = client . Get ( new GetAllTechnologies { } ) ;
//response.PrintDump(); // Uncomment to Print Response to Console Entonces, sin haber escrito ningún código, los usuarios pueden presionar Ctrl+Enter para ejecutar el GIST generado que para TechStacks.io devuelve los detalles de todas las tecnologías que mantiene en su base de datos que muestra en el Inspector de vista previa. response.PrintDump(); También arrojará el contenido de la response de los servicios web a la consola.
Una cosa que probablemente querrá hacer es cambiar qué solicitud DTO se utiliza especificando en la cadena de consulta de ?Request , por ejemplo, por ejemplo:
También puede prepoblar la expresión de C# y tenerlo automáticamente con:
Luego terminamos con un enlace en vivo en el que cualquier persona con un navegador moderno en su escritorio o iPad puede hacer clic para llamar a la API pública de TechStacks.io para descubrir cuál es su tecnología más popular, en segundos.
Similar a cómo funciona la referencia de ServiceStack en la mayoría de los IDE principales, también puede agregar la referencia a los GIST existentes utilizando el menú contextual del editor :
Luego, después de hacer clic, Agregar referencia Gistlyn agrega sus servicios remotos escrito DTOS a su GIST existente utilizando el nombre de archivo especificado.
Si está agregando una referencia de servicio a una versión de ServiceStack antes de V4.0.62, deberá eliminar manualmente cualquier espacio de nombres de C# ya que no son compatibles con Roslyn Scripting.
Una cosa sorprendente de Gistlyn es que es completamente apátrate donde se ejecuta sin ningún tipo de persistencia de Backend DB. Todo el estado persiste a GitHub Gists o en localStorage de su navegador. Ni siquiera su sesión de GitHub autenticada se conserva en el servidor, ya que se convierte inmediatamente en una cookie JWT encriptada que se envía con cada solicitud de Ajax, por lo que las redistribuencias (o incluso las reconstrucciones del servidor limpia) no perderán ninguno de su trabajo o lo obligará a iniciar sesión nuevamente hasta que expire el token JWT.
Este repositorio de GitHub proporciona un buen ejemplo de una moderna aplicación de servicio de servicio mediano, React + TypeScript que aprovecha una serie de diferentes características de servicio de servicio: