Project Project Project Gistlyn.com - AC# GIST IDE для создания, запуска и обмена автономными, исполняемыми фрагментами C#.
Gistlyn - это окончательный инструмент для совместной работы для проборов и изучения библиотек C# и .NET на Nuget из нулевой установки - современного браузера. Он идеально подходит для использования в качестве компаньонов для проборов библиотек во время разработки или на пути от комфорта вашего iPad, отправившись на Gistlyn.com.
Live Demo: Gistlyn.com
Gistlyn - это открытая платформа , где все фрагменты C# и документация располагаются полностью в GitHub Gist, которые позволяют кому -либо создавать новые C# Gists или разветвлять, обновлять или переименовать и добавлять новые файлы в существующие - обеспечивая полный опыт работы с пользовательским интерфейсом для ваших фрагментов C#, которые сохраняются непосредственно в ваши Gits на GitHub. Вы можете легко создать или разобраться в копии любой GIST, нажав Ctrl+S которая сохранит любые ваши изменения в вашей модифицированной копии.
Hello World Gist показывает минимальный пример C# того, что нужно для запуска в Gistlyn, то есть просто действительный фрагмент исходного кода C# в файле main.cs :
//Variables in top scope can be inspected in preview inspector
var name = "World" ;
var greeting = $ "Hello, { name } !" ; Нажатие Ctrl+Enter (или нажатие Play) выполнит ваш код на сервере Gistlyn, работая в изолированном контексте, где каждая из переменных, определенных в областях прицела верхнего уровня, может быть дополнительно проверена. Инспектор предварительного просмотра также включает в себя оценку выражения, который можно использовать для оценки выражений C# против сеанса Live Server:
Благодаря приложениям React Desktop Apps Vs.net Gistlyn доступен в различных вкусах:
Развернуто в качестве веб -приложения ASP.NET на серверах Windows / .net и Linux / Mono на:
Наличие как Windows, так и Linux версии Gistlyn полезно, когда вы хотите проверить, имеет ли функция одинаковое поведение как в .net и Mono. Где после сохранения вы можете добавить/удалить mono -поддомен для запуска ваших сценариев в различных операционных системах.
В дополнение к запуску в качестве веб-приложения ASP.NET, Gistlyn также доступен в качестве самоуправления Winforms Desktop или кроссплатформенного приложения OSX/Linux/Windows Console.
Запуск Gistlyn на вашем рабочем столе позволяет вам воспользоваться полными ресурсами вашего процессора для более быстрого времени сборки и отклика, и, поскольку они работают на локальном масштабе, они смогут получить доступ к вашим RDBMS или другим сетевым серверам и услугам, доступным в вашей локальной интрасети.
Гистлин сияет в том, что сможет быстро перемещаться, запустить результаты кода и предварительно просмотреть результаты, где вы можете просмотреть комплексные типы с вложенными сложными коллекциями в удобном для человека формат для мгновенной обратной связи.
Чтобы привести пример, вот что показывает инспектор предварительного просмотра после запуска контрольного тестирования Ormlite Пример данных C# ниже:
//SELECT all artists including their Track references
var allArtists = db . LoadSelect < Artist > ( ) ;
allArtists . PrintDump ( ) ; // Dump to Console После того, как он выполняется, все переменные отображаются в инспекторе предварительного просмотра. Затем нажатие на allArtists выполняют его в оценке выражения и отображают результаты ниже:
Методы расширения
T.PrintDump()иT.Dump()идеально подходят для сброса и быстрого вида результатов любой переменной для консоли.
Gistlyn получает много естественных преимуществ от того, чтобы быть веб-IDE React, от глубокого связывания до возможности быстро перемещаться по истории вашего браузера. Это также сохраняет каждое изменение в вашем localStorage , которое восстанавливается мгновенно, поэтому вы можете закрыть свой браузер в любое время, и повторение Gistlyn.com вернет вас прямо в то же состояние, где вы его оставили. Проекты каждой сутки, которую вы посещаете, также сохраняются, так что вы можете с радостью работать над несколькими GIST, не теряя никаких изменений.
Еще одна особенность Gistlyn, естественно, извлекает выгоду из снимков ...
Снимки позволяют сохранить все клиентское состояние вашего текущего рабочего пространства (за исключением информации о входе в систему) в сгенерированный URL -адрес, который вы можете использовать, чтобы вернуться назад во времени, когда был сделан снимок или отправку кому -то еще, кто может мгновенно увидеть и запустить то, над чем вы работаете, кто сможет продолжить работу из того же места.
Как и все остальное в Gistlyn, снимок - это просто snapshot.json .
Поскольку снимки сохраняются на ваших GIST, вам нужно сначала вход, чтобы иметь возможность сделать снимок. После того, как вы аутентифицировали GitHub, вы можете нажать на значок камеры, который появляется в нижнем колонтитуле, чтобы сделать снимок:
Это откроет диалог снимка, в котором вы можете ввести имя моментального снимка, который по умолчанию автоматически заполняется временной меткой, когда был сделан снимок:
Нажав Save Snapshot Serializes ваш захваченный снимки и сохраняет его как документ snapshot.json в новой частной сути. Затем Gistlyn просто добавляет идентификатор недавно созданного GIST на ?snapshot Querystring», чтобы сформировать URL для вашего нового снимка:
Есть 2 способа загрузить снимок, либо нажав на сгенерированный URL, чтобы запустить его в браузере:
Который загрузит новый сеанс Gistlyn, инициализированный снимком, в комплекте с содержимым всех рабочих файлов, состоянием окна предварительного просмотра, любыми журналами консолей и т. Д.
Альтернатива состоит в том, чтобы вставить идентификатор GIST в URL -бар Gistlyn:
Между прочим, вы можете вставить идентификатор любого C# GIST, коллекции или снимка в URL -панели
В нашей миссии сделать Gistlyn чрезвычайно полезным и совместным инструментом обучения для изучения любой библиотеки .NET, Gistlyn включает в себя оптимизированный UX для редактирования коллекций, облегчающих создание «живой документации», которая, по нашему мнению, является лучшим способом узнать о библиотеке, смешивании документации и предоставлении опыта в реальном времени разработчиков, позволяющих разработчикам, чтобы исследовать, что они просто изучили, и они просто изучили, чтобы они не ставят в соответствие с тем, что они просто изучили, чтобы они не ставят в соответствие с тем, что они ставят в соответствие с тем, что они просто изучили, и они ставят в соответствие с тем, что они будут изучать, чтобы они были в контексте.
Gistlyn позволяет легко делиться фрагментами C# с коллегами или сообщать о проблеме со стороны библиотеки только с помощью URL или сохраненного идентификатора GIST, который каждый может просмотреть в браузере на Gistlyn.com или на своей настольной версии Gistlyn.
Вот пример новых функций авторизации коллекции в действии:
Лучшая вещь в коллекциях Gistlyn - это просто просто Github Gist с одним документом Markdown index.md . Поэтому, если вы ранее создали документацию в GitHub или задавали вопросы в StackoverFlow, вы уже знаете, как создать коллекции GitHub.
Вся документация в Gistlyn, включая это, и домашняя страница - это Gistlyn Collections, которые можно просмотреть, нажав значок заголовка коллекций :
Значок коллекций открывает домашнюю коллекцию, добавляя свой идентификатор GIST в строку запроса ?collection :
При добавлении ссылок в свою коллекцию вы должны включать только часть ?querystring , а не абсолютный URL, например http://gistlyn.com?collection=... так что ваши ссылки также работают в настольных версиях Gistlyn, которые вместо этого работают от localhost:4000 .
Создание коллекции может быть сделано в любое время из главного меню Гистлин:
Это откроет пустой документ Markdown в редакторе Marckdown . Нажмите Ctrl+S , чтобы сохранить модифицированную копию на GitHub Gist. После сохранения верхняя полоса станет зеленым, чтобы указать, что вы просматриваете или изменяете один из своих собственных GIST или коллекций:
После редактирования документа вы можете использовать панель инструментов Markdown для быстрого доступа к определенным функциям форматирования Markdown, таких как значок ссылки вставки :
Который открывает диалог вставки ссылки и быстро создает и ссылается на новую суть или коллекцию, выбрав существующую суть или коллекцию, которую вы хотите использовать в качестве шаблона:
Это позволяет быстро создавать несколько Gist C#, используя копию существующих Gist packages.config и поддерживающих исходных файлов .cs , что значительно сокращает усилия по созданию нескольких образцов C#.
Вы можете добавить изображения в свой документ, нажав на значок изображения вставки ниже:
Это откроет диалог вставки изображения , где вы можете перетащить несколько изображений, чтобы загрузить их в Imgur и внедрить их в свой документ:
После того, как каждое изображение завершилось загрузкой в Imgur, оно будет встроено в ваш документ из положения курсоров, используя формат изображения отметки ниже:

Когда вы создаете свой документ Marckdown, вы можете свободно прыгать между различными GIST или коллекциями, поскольку Gistlyn автоматически сохраняет вас с помощью вашего типа, чтобы вы могли использовать кнопку Back , чтобы вернуться к своей новой коллекции, когда вы оставляете ее, не пропуская ни секунды.
После того, как в середине появится отображение от вашей страницы, значки со стрелками появятся в середине, чтобы указать, что вы редактируете слева, больше не соответствуют той же странице справа:
Используйте значок стрелки в верхнем праве, чтобы загрузить страницу, которую вы редактируете в окне предварительного просмотра справа, чтобы загрузить предварительный просмотр вашего документа Markdown.
Используйте значок стрелки в нижней части левой стрелки, чтобы загрузить коллекцию, которую вы просматриваете справа в редакторе.
Если вручную ссылается на GIST, другие коллекции и снимки используют следующие форматы ниже:
?gist={id}?collection={id}?snapshot={id}Когда Гистлин видит эти ссылки, он загружает их в ваш текущий сеанс Gistlyn. Все остальные ссылки обрабатываются браузером, который перемещается по указанному URL -адресу, вызывающую полную загрузку страницы. Если вы ссылаетесь на внешний сайт за пределами Gistlyn, мы рекомендуем открыть его в новом окне браузера, используя HTML вместо партийных ссылок. например:
<a target="_blank" href="http://example.org">name</a>
Коллекции-отличный способ создать учебные ресурсы и учебные пособия для C#, позволяющего создавать пошаговые проходы, объясняющие, как что-то работает справа, предоставляя ссылки на исполняемые фрагменты C#, которые пользователи могут попробовать и исследовать Live в редакторе кода слева.
Вы можете найти все коллекции Gistlyn как Gist в рамках учетной записи Gistlyn Github. Просмотр некоторых из Gistlyn Collections ниже, и их источники отметки должны предоставить хороший ресурс для обучения, как создавать коллекции в Markdown:
Вместо того, чтобы отправлять ссылки с незаметных идентификаторами GIST, вы также можете попросить, чтобы его было легче запомнить URL -адреса для ссылок на любую коллекцию Gistlyn, оставив комментарий к дружественным именам GIST GIST
Где какая -либо ссылка в вышеупомянутой GIST доступна Gistlyn, поэтому вместо того, чтобы публиковать ссылки на длинный ?collection={id} URL, вы можете использовать более короткое и проще запомнить имя, например:
Это похоже на сокращение URL, перенаправляется на связанный URL: http://gistlyn.com?collection=991db51e44674ad01d3d318b24cf0934
Интегрированная поддержка Gistlyn для справочной функции Add ServiceStack генерирует типированный API для удаленных услуг ServiceStack, которые можно использовать в любом из типичных клиентов ServiceStack C#, чтобы позвонить в веб -сервисы и просмотреть их результаты - в течение нескольких секунд.
Самый простой способ использования этой функции - добавить BaseUrl для вашего удаленного экземпляра ServiceStack к строке запроса ?AddServiceStackReference , например:
Это откроет диалоговое окно «Добавить справочный», который автоматически проверяет, если указанный URL -адрес является действительным экземпляром ServiceStack:
Нажимать Enter :
JsonServiceClient с вашим BASEURLGet() с использованием первого запроса GET DTO, который он может найтиЧто для TechStacks.io приводит к:
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 Поэтому, не записав какой -либо код, пользователи могут нажать Ctrl+Enter чтобы выполнить сгенерированную GIST, которая для TechStacks.io возвращает детали всех технологий, которые он поддерживает в своей базе данных, которые он показывает в инспекторе предварительного просмотра. Неуместный response.PrintDump(); также выбросит содержимое response веб -сервисов на консоли.
Одна вещь, которую вы, вероятно, захотите сделать, это изменить, какой запрос DTO используется, указав его в строке запроса ?Request , например:
Вы также можете предварительно заполнять выражение C# и получить его автоза
Затем мы получим живую ссылку, которую любой, у кого есть современный браузер на своем рабочем столе или iPad, может нажать, чтобы позвонить в общедоступный API TechStacks.io, чтобы выяснить, какова ее наиболее популярная технология, за считанные секунды.
Подобно тому, как добавить справочник ServiceStack работает в большинстве основных IDE, вы также можете добавить ссылку на существующие GIST, используя контекстное меню редактора :
Затем после нажатия add reference gistlyn добавляет ваши удаленные службы, напечатанные DTOS в существующий GIST, используя указанное имя файла .
Если вы добавляете ссылку на сервис в версию ServiceStack до v4.0.62, вам нужно будет вручную удалить какие -либо пространства имен C, так как они не поддерживаются в сценариях Рослин.
Одна удивительная вещь о Gistlyn заключается в том, что он совершенно без сохранения состояния, где он работает без какого -либо бэкэнд -постоянства DB. Все штаты либо сохраняются для GitHub Gist, либо в localStorage вашего браузера. Даже ваш аутентифицированный сеанс GitHub не сохраняется на сервере, поскольку он немедленно преобразуется в зашифрованное JWT Cookie, которое отправляется с каждым запросом Ajax, поэтому перераспределения (или даже чистые серверы) не потеряют ни одной из ваших работ или заставляют вас снова войти в систему, пока не истечет истечение срока действия JWT.
Это GitHub Repo содержит хороший пример современного среднего уровня ServiceStack, React + TypeScript App, которое использует ряд различных функций ServiceStack: