GitHub Project alimente Gistlyn.com - AC # GIST IDE pour la création, l'exécution et le partage des extraits C # exécutables autonomes.
Gistlyn est l'outil collaboratif ultime pour essayer et explorer les bibliothèques C # et .NET sur NuGet à partir d'une installation zéro - Browser moderne. Il est idéal pour une utilisation comme outil compagnon pour essayer des bibliothèques pendant le développement ou en déplacement du confort de votre iPad en allant sur gistlyn.com.
Démo en direct: gistlyn.com
Gistlyn est une plate-forme ouverte où tous les extraits C # et la documentation sont entièrement hébergés dans GitHub GIST qui permet à quiconque de créer de nouveaux C # GIST ou Fork, mettant à jour ou renommant et ajoutez de nouveaux fichiers à ceux existants - offrant une expérience de création complète de l'interface utilisateur pour vos extraits C # qui sont enregistrés directement à votre GIST sur GitHub. Vous pouvez facilement créer ou alimenter une copie de n'importe quel GIST en frappant Ctrl+S qui sauvera toutes vos modifications à votre copie modifiée.
Le Hello World Gist montre un exemple C # minimal de ce qu'il faut pour exécuter à Gistlyn, c'est-à-dire juste un fragment de code source C # valide dans un fichier main.cs :
//Variables in top scope can be inspected in preview inspector
var name = "World" ;
var greeting = $ "Hello, { name } !" ; L'accession de Ctrl+Enter (ou cliquez sur Play) exécutera votre code sur le serveur de Gistlyn, exécutant dans un contexte isolé où chacune des variables définies dans la portée de niveau supérieur peut être inspectée davantage. L'inspecteur d'aperçu comprend également un évaluateur d'expression qui peut être utilisé pour évaluer les expressions C # contre la session du serveur en direct:
Grâce aux applications React Desktop Vs.net, Gistlyn est disponible dans une variété de saveurs différentes:
Déployé comme une application Web ASP.NET sur les serveurs Windows / .Net et Linux / Mono à:
Avoir à la fois des versions Windows et Linux de Gistlyn est utile lorsque vous souhaitez tester si une fonctionnalité a le même comportement dans .NET et Mono. Où après l'enregistrement, vous pouvez ajouter / supprimer le sous-domaine mono pour exécuter vos scripts sur différents systèmes d'exploitation.
En plus d'un exécution en tant qu'application Web ASP.NET, Gistlyn est également disponible en tant que bureau WinForms d'auto-hébergement ou application de console OSX / Linux / Windows multiplateforme.
L'exécution de Gistlyn sur votre bureau vous permet de profiter des ressources complètes de votre processeur pour des temps de construction et de réponse plus rapides et, comme ils l'exécutent localement, ils pourront accéder à votre SGBDR ou à d'autres serveurs et services en réseau disponibles auprès de votre intranet local.
Gistlyn brille pour pouvoir naviguer rapidement, exécuter du code et prévisualiser les résultats en un coup d'œil où vous pouvez prévisualiser des types complexes avec des collections complexes imbriquées dans un format respectueux de l'homme pour une rétroaction instantanée.
Pour vous donner un exemple, voici ce que l'inspecteur d'aperçu montre après avoir exécuté l'exemple de données de test de référence Ormlite C # Code ci-dessous:
//SELECT all artists including their Track references
var allArtists = db . LoadSelect < Artist > ( ) ;
allArtists . PrintDump ( ) ; // Dump to Console Une fois qu'il a été exécuté, toutes les variables sont affichées dans l'inspecteur d'aperçu. Cliquez ensuite sur allArtists l'exécute dans l'évaluateur d'expression et affiche les résultats ci-dessous:
Les méthodes d'extension
T.PrintDump()etT.Dump()sont idéales pour le dumping et voir rapidement les résultats de toute variable à la console.
Gistlyn obtient de nombreux avantages naturels d'être un IDE sur le Web réactif, de la liaison profonde à la possibilité de naviguer rapidement en arrière / avancer dans l'historique de votre navigateur. Il économise également chaque modification de votre localStorage qui se restaure instantanément, afin que vous puissiez fermer votre navigateur à tout moment et revisiter Gistlyn.com vous ramènera tout de suite au même état où vous l'avez laissé. Les brouillons de chaque Gist que vous visitez sont également sauvés, vous pouvez donc travailler avec plaisir sur plusieurs GIST sans perdre de modifications.
Une autre caractéristique dont Gistlyn profite naturellement est les instantanés ...
Les instantanés vous permettent d'enregistrer l' ensemble de l'état client de votre espace de travail actuel (à l'exclusion de vos informations de connexion) dans une URL générée que vous pouvez utiliser pour revenir dans le temps à partir du moment où l'instantané a été pris ou envoyer à quelqu'un d'autre qui peut instantanément voir et exécuter ce sur quoi vous travaillez, qui pourra continuer à travailler du même endroit que vous.
Comme tout le reste de Gistlyn, un instantané n'est qu'un document snapshot.json de votre état sérialisé enregistré sur votre compte d'utilisateur dans un gist github privé.
Au fur et à mesure que les instantanés sont enregistrés à vos GIST, vous devrez d'abord vous connecter pour pouvoir prendre un instantané. Une fois que vous êtes authentifié avec GitHub, vous pouvez cliquer sur l'icône de la caméra qui apparaît dans le pied de page pour prendre un instantané:
Cela ouvrira la boîte de dialogue instantané où vous pouvez saisir le nom de l'instantané qui est par défaut rempli automatiquement avec l'horodatage du moment où l'instantané a été pris:
Cliquez sur Enregistrer un instantané sérialise votre instantané capturé et l'enregistre en tant que document snapshot.json dans un nouveau Gist privé. Gistlyn ajoute alors simplement l' ID de l'essentiel nouvellement créé vers la question d' ?snapshot pour former l'URL de votre nouveau instantané:
Il existe 2 façons de charger un instantané, soit en cliquant sur l'URL générée pour le lancer dans un navigateur:
Qui chargera une nouvelle session Gistlyn initialisée avec l'instantané, avec le contenu de tous les fichiers de travail, l'état de la fenêtre d'aperçu, tous les journaux de console, etc.:
L'alternative est de coller l' identifiant de l'essentiel dans la barre d'URL de Gistlyn:
Soit dit en passant, vous pouvez coller l' identifiant de n'importe quel C # gist, collection ou instantané dans la barre d'URL
Dans notre mission de faire de Gistlyn un outil d'apprentissage extrêmement utile et collaboratif pour explorer n'importe quelle bibliothèque .NET, Gistlyn comprend une UX rationalisée pour éditer des collections, ce qui facilite la création de la "documentation en direct" qui, selon nous, est le meilleur moyen de savoir ce qu'ils ont simplement appris sans perdre un contexte par un contexte de changement à leur environnement de développement et de mettre en place des échantillons.
Gistlyn facilite le partage des extraits C # avec des collègues ou signalant un problème aux mainteneurs de bibliothèque avec juste une URL ou un ID GIST enregistré que n'importe qui peut afficher dans un navigateur sur Gistlyn.com ou sur sa version de bureau de Gistlyn.
Voici un exemple des nouvelles fonctionnalités de création de collection en action:
La meilleure chose à propos des collections de Gistlyn est qu'ils ne sont que des Github Gist à un seul document index.md Markdown. Donc, si vous avez déjà créé de la documentation dans GitHub ou posé des questions dans StackOverflow, vous savez déjà comment créer des collections GitHub.
Toutes les documents de Gistlyn, y compris ceci et la page d'accueil, sont les collections Gistlyn qui peuvent être consultées en cliquant sur l'icône d'en-tête des collections :
L'icône Collections ouvre la collection Home en ajoutant son ID GIST à la chaîne de requête ?collection :
Lorsque vous ajoutez des liens dans votre collection, vous ne devriez inclure que la partie ?querystring et non l'URL absolue, par exemple http://gistlyn.com?collection=... donc vos liens fonctionnent également dans les versions de bureau de Gistlyn qui sont plutôt exécutées à partir de localhost:4000 .
La création d'une collection peut être effectuée à tout moment à partir du menu principal de Gistlyn:
Cela ouvrira un document Markdown vide dans l' éditeur Markdown . Appuyez sur Ctrl+S pour enregistrer votre copie modifiée dans vos gistes GitHub. Après économie, la barre supérieure deviendra verte pour indiquer que vous consultez ou modifiez l'un de vos propres GIST ou collections:
Une fois la modification du document, vous pouvez utiliser la barre d'outils Markdown pour accéder rapidement à des fonctionnalités de mise en forme spécifiques à Markdown comme l'icône du lien d'insertion :
Qui ouvre la boîte de dialogue Insert Link et créez et lien rapidement vers un nouveau GIST ou une collection en sélectionnant l'essentiel ou la collection existante que vous souhaitez utiliser comme modèle:
Cela vous permet de créer rapidement plusieurs GIST C # à l'aide d'une copie d'un GIST packages.config existant et de soutenir des fichiers source .cs , réduisant considérablement l'effort de création de plusieurs échantillons C #.
Vous pouvez ajouter des images à votre document en cliquant sur l'icône INSERT Image ci-dessous:
Cela ouvrira la boîte de dialogue INSERT Image où vous pouvez faire glisser plusieurs images pour les télécharger sur Imgur et les intégrer dans votre document:
Une fois chaque image terminée le téléchargement sur Imgur, il sera intégré dans votre document à partir de votre position de curseurs en utilisant le format d'image de Markdown ci-dessous:

Au fur et à mesure que vous créez votre document Markdown, vous pouvez sauter librement entre différents GIST ou collections, car Gistlyn enregistre automatiquement en tant que type afin que vous puissiez utiliser le bouton arrière pour revenir à votre nouvelle collection lorsque vous l'avez quitté sans manquer un battement.
Après avoir navigué loin de votre page, les icônes de flèche illustrées ci-dessous apparaîtront au milieu pour indiquer ce que vous modifiez à gauche ne correspond plus à la même page à droite:
Utilisez l'icône de flèche supérieure droite pour charger la page que vous modifiez dans la fenêtre d'aperçu à droite pour charger l'aperçu en temps réel de votre document Markdown.
Utilisez l'icône de flèche inférieure gauche pour charger la collection que vous consultez à droite dans l'éditeur.
Si vous liez manuellement les GIST, d'autres collections et instantanés utilisent les formats suivants ci-dessous:
?gist={id}?collection={id}?snapshot={id}Lorsque Gistlyn voit ces liens, il les charge dans votre session Gistlyn actuelle. Tous les autres liens sont gérés par le navigateur qui navigue vers l'URL spécifiée provoquant une charge de page pleine. Si vous vous liez à un site externe à l'extérieur de Gistlyn, nous vous recommandons de l'ouvrir dans une nouvelle fenêtre de navigateur en utilisant HTML au lieu de liens Markdown. Par exemple:
<a target="_blank" href="http://example.org">name</a>
Les collections sont un excellent moyen de créer des ressources d'apprentissage et des tutoriels pour C # vous permettant de créer des promenades étape par étape expliquant comment quelque chose fonctionne à droite tout en fournissant des liens vers des fragments C # exécutables que les utilisateurs peuvent essayer et explorer en direct dans l'éditeur de code à gauche.
Vous pouvez trouver toutes les collections de Gistlyn en tant que GIST sous le compte Gistlyn Github. Passer à travers certaines des collections de Gistlyn ci-dessous et leurs sources de Markdown devraient fournir une bonne ressource pour apprendre à créer des collections dans Markdown:
Au lieu d'envoyer des liens avec des identifiants GIST nonmorables, vous pouvez également demander à avoir des URL plus faciles à se souvenir des liens vers n'importe quelle collection Gistlyn en laissant un commentaire sur les noms amicaux Gist
Où un lien dans l'essentiel ci-dessus est disponible pour Gistlyn, donc au lieu de publier des liens vers une longue ?collection={id} URL, vous pouvez utiliser un nom plus court et plus facile à retenir, par exemple:
Qui, comme un raccourcisseur d'URL, redirige vers l'URL liée: http://gistlyn.com?Collection=991DB51E44674AD01D3D318B24CF0934
La prise en charge intégrée de Gistlyn pour la fonction de référence Add ServiceStack génère une API tapée pour les services ServiceStack à distance qui peuvent être utilisés dans l'un des clients C # typés de ServiceStack pour appeler les services Web et afficher leurs résultats - en quelques secondes.
La façon la plus simple d'utiliser cette fonctionnalité consiste à ajouter la base de la base de votre instance ServiceStack à la chaîne de requête ?AddServiceStackReference , par exemple:
Cela ouvrira la boîte de dialogue Add ServiceStack Reference qui valide automatiquement si l'URL spécifiée est à une instance ServiceStack valide:
Hitting Enter alors:
JsonServiceClient avec votre fondationGet() en utilisant la première demande de GET DTO qu'il peut trouverQui pour Techstacks.io se traduit:
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 Ainsi, sans avoir écrit de code, les utilisateurs peuvent appuyer sur Ctrl+Enter pour exécuter l'essentiel généré qui pour Techstacks.io renvoie les détails de toutes les technologies qu'il maintient dans sa base de données qu'elle montre dans l'inspecteur de prévisualisation. response.PrintDump(); Versera également le contenu de la response des services Web à la console.
Une chose que vous voudrez probablement faire est de modifier la demande que DTO est utilisée en le spécifiant dans la chaîne de requête ?Request , par exemple:
Vous pouvez également pré-populer l'expression C # et le faire autorun avec:
Nous nous retrouvons ensuite avec un lien en direct sur lequel toute personne avec un navigateur moderne sur son bureau ou son iPad peut cliquer sur pour appeler l'API publique de TechStacks.io pour savoir quelle est sa technologie la plus populaire, en quelques secondes.
Semblable à la façon dont Add ServiceStack Reference fonctionne dans la plupart des IDE majeures, vous pouvez également ajouter la référence aux GIST existants à l'aide du menu contextuel de l'éditeur :
Ensuite, après avoir cliqué sur Ajouter une référence, Gistlyn ajoute vos DTO typés de services distants à votre GIST existant à l'aide du nom de fichier spécifié.
Si vous ajoutez une référence de service à une version de ServiceStack avant V4.0.62, vous devrez supprimer manuellement tous les espaces de noms C # car ils ne sont pas pris en charge dans les scripts Roslyn.
Une chose surprenante à propos de Gistlyn est qu'il est entièrement apatride où il fonctionne sans aucune sorte de persistance DB backend. Tout l'État est soit persisté pour GitHub GIST, soit dans localStorage de votre navigateur. Même votre session GitHub authentifiée n'est pas conservée sur le serveur car elle est immédiatement convertie en un cookie JWT crypté qui est envoyé avec chaque demande AJAX, donc les redéploiements (ou même les reconstructions de serveur propre) ne perdent aucun de votre travail ou ne vous forcer à vous connecter à ce que le jeton JWT expire.
Ce repo GitHub fournit un bon exemple d'une application ServiceStack moderne de taille moyenne, React + TypeScript qui tire parti d'un certain nombre de fonctionnalités de type ServiceStack différentes: