GitHub Project Powering Gistlyn.com -AC#Gist IDEのスタンドアロン、実行可能なC#スニペットの作成、実行、共有。
Gistlynは、ZeroインストールからNugetのC#および.NETライブラリを試して検討して探索するための究極のコラボレーションツールです - 最新のブラウザです。 Gistlyn.comにアクセスして、開発中または外出先でライブラリを試してみるためのコンパニオンツールとして使用するのに最適です。
ライブデモ:Gistlyn.com
Gistlynは、すべてのC#スニペットとドキュメントが完全にGitHub Gistでホストされるオープンプラットフォームです。これにより、誰もが新しいC#Gistを作成したり、既存のファイルに更新または名前を変更したり、新しいファイルを追加したりすることができます。変更されたコピーの変更を保存するCtrl+Sを押して、任意の要素のコピーを簡単に作成またはフォークできます。
Hello World Gistは、Gistlynで実行するために必要なものの最小限のC main.csの例を示しています。
//Variables in top scope can be inspected in preview inspector
var name = "World" ;
var greeting = $ "Hello, { name } !" ; Ctrl+Enter (または[再生]を押して(またはクリック)Gistlynのサーバーでコードを実行し、トップレベルのスコープで定義されている各変数をさらに検査できる孤立したコンテキストで実行されます。プレビュー検査官には、ライブサーバーセッションに対するC#式を評価するために使用できる式評価者も含まれています。
React Desktop Apps vs.Netテンプレートのおかげで、Gistlynにはさまざまなフレーバーがあります。
Windows / .NETとLinux / Monoサーバーの両方でASP.NET Webアプリケーションとして展開します。
GistlynのWindowsバージョンとLinuxバージョンの両方を使用すると、機能が.NETとMonoの両方で同じ動作があるかどうかをテストする場合に役立ちます。保存後、 monoサブドメインを追加/削除して、さまざまなオペレーティングシステムでスクリプトを実行できます。
ASP.NET Webアプリとしての実行に加えて、Gistlynは自己ホスティングWinFormsデスクトップまたはクロスプラットフォームOSX/Linux/Windowsコンソールアプリとしても利用できます。
デスクトップでGistlynを実行すると、CPUの完全なリソースを活用してビルド時間と応答時間を高速化でき、ローカルで実行されると、RDBMSまたはローカルイントラネットから利用可能な他のネットワークサーバーやサービスにアクセスできます。
Gistlynは、すぐにナビゲートし、コードを実行し、結果をプレビューできることに輝いています。これにより、インスタントフィードバックのために、ネストされた複雑なコレクションを使用して複雑な複雑なコレクションをプレビューできるようになります。
例を挙げると、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は、反応のWebベースのIDEであることから、深いリンクからブラウザの履歴をすばやくバック/フォワードすることができるようになることから、多くの自然な利点を得ています。また、すべての変更を即座に復元するlocalStorageへのすべての変更を保存するため、いつでもブラウザを閉じることができ、Gistlyn.comを再検討することで、去った同じ状態に戻ります。訪問するすべての要点のドラフトも保存されているため、変更を失うことなく複数のGISTに作業することができます。
別の機能Gistlynは当然のことながらスナップショットです...
スナップショットを使用すると、現在のワークスペースのクライアント状態全体(ログイン情報を除く)を生成されたURLに保存できます。これは、スナップショットが取られたときから時間内に戻るために使用できます。
Gistlynの他のすべてと同様に、スナップショットは、プライベートGithub Gistでユーザーアカウントに保存されたシリアル化状態のsnapshot.jsonドキュメントです。
スナップショットが概要に保存されるため、スナップショットを取ることができるように最初にサインインする必要があります。 GitHubを使用して認証されたら、フッターに表示されるカメラアイコンをクリックして、スナップショットを取得できます。
これにより、スナップショットダイアログが開き、スナップショットの名前を入力できます。デフォルトでは、スナップショットが使用されたときのタイムスタンプが自動的に入力されます。
[SAVE SNAPSHOTの保存]をクリックして、キャプチャされたスナップショットをシリアル化し、新しいプライベートGISTでsnapshot.jsonドキュメントとして保存します。 Gistlynは、新しく作成されたGISTのIDを?snapshotクエリストリング」に追加して、新しいスナップショットのURLを形成するだけです。
生成されたURLをクリックしてブラウザで起動することにより、スナップショットをロードするには2つの方法があります。
これにより、すべての作業ファイルの内容、プレビューウィンドウの状態、コンソールログなどを備えたスナップショットで初期化された新しいGistlynセッションがロードされます。
別の方法は、GISTのIDをGistlynのURLバーに貼り付けることです。
ちなみに、URLバーのC#GIST、コレクション、またはスナップショットのIDを貼り付けることができます
Gistlynを.NETライブラリを探索するための非常に便利で共同学習ツールになるという私たちの使命には、Gistlynには、コレクションを編集するための合理化されたUXが含まれています。
Gistlynは、C#スニペットを同僚と簡単に共有したり、Gistlyn.comまたはGistlynのデスクトップバージョンでブラウザで見ることができるURLまたは保存されたGIST IDだけでライブラリメンテナーに問題を報告したりできます。
以下は、アクション中の新しいコレクションオーサリング機能の例です。
Gistlynコレクションの最大の利点は、単一のindex.md Markdownドキュメントを備えた単なるGithub Gistであることです。したがって、以前にGithubでドキュメントを作成した場合、またはStackoverFlowで質問をした場合、GitHubコレクションの作成方法をすでに知っています。
これとホームページを含むGistlyn内のすべてのドキュメントは、コレクションヘッダーアイコンをクリックすることで表示できるGistlynコレクションです。
コレクションアイコンは、その要点IDを?collectionクエリ文字列」に追加することにより、ホームコレクションを開きます。
コレクションにリンクを追加する場合はlocalhost:4000絶対URLではなく、 ?querystring部分」を含める必要があります。たとえばhttp://gistlyn.com?collection=...
コレクションの作成は、Gistlynのメインメニューからいつでも実行できます。
これにより、 Markdownエディターに空のマークダウンドキュメントが開きます。 Ctrl+Sを押して、変更したコピーをGitHub Gistに保存します。保存した後、トップバーは緑に変わり、自分の要点やコレクションの1つを表示または変更していることを示します。
ドキュメントを編集したら、 Markdown Toolbarを使用して、挿入リンクアイコンなどのMarkdown固有のフォーマット機能にすばやくアクセスできます。
INSERTリンクダイアログを開き、テンプレートとして使用する既存のGISTまたはコレクションを選択して、新しいGISTまたはコレクションにすばやく作成およびリンクします。
これにより、既存のGIST packages.configのコピーを使用して複数のC#GISTをすばやく作成し、 .csソースファイルをサポートし、複数のC#サンプルを作成するための努力を大幅に削減できます。
以下の挿入画像アイコンをクリックして、ドキュメントに画像を追加できます。
これにより、 INSERT画像ダイアログが開き、複数の画像をドラッグしてImgurにアップロードし、ドキュメントに埋め込むことができます。
各画像がIMGURへのアップロードが終了した後、以下のMarkDown画像形式を使用して、カーソルの位置からドキュメントに埋め込まれます。

Markdownドキュメントを作成すると、Gistlynが自動的にYou-Typeを保存するため、さまざまなGistまたはコレクション間を自由にジャンプできます。これにより、バックボタンを使用して、ビートを逃さずに残したまま新しいコレクションに戻ることができます。
ページから離れた後、以下に示す矢印のアイコンが中央に表示され、左側で編集しているものが右側の同じページと一致しなくなったことを示します。
右上の矢印アイコンを使用して、編集しているページを右側のプレビューウィンドウにロードして、マークダウンドキュメントのリアルタイムプレビューをロードします。
左下の矢印アイコンを使用して、視聴しているコレクションをエディターの右側にロードします。
GISTに手動でリンクする場合、他のコレクションやスナップショットは以下の形式を使用しています。
?gist={id}?collection={id}?snapshot={id}Gistlynがこれらのリンクを見ると、現在のGistlynセッションにロードします。他のすべてのリンクは、指定されたURLに移動するブラウザによって処理され、完全なページの負荷が発生します。 Gistlynの外側の外部サイトにリンクしている場合は、Markdownリンクの代わりにHTMLを使用して、新しいブラウザウィンドウで開くことをお勧めします。例えば:
<a target="_blank" href="http://example.org">name</a>
コレクションは、C#の学習リソースとチュートリアルを作成するための優れた方法です。左側のコードエディターでライブでライブを試して探索できる実行可能なC#フラグメントへのリンクを提供しながら、右側の何かがどのように機能するかを説明するステップバイステップウォークスルーを作成できます。
Gistlyn Githubアカウントの下で、GistlynのコレクションはすべてGistとして見つけることができます。以下のGistlynコレクションのいくつかを見ると、それらのマークダウンソースは、Markdownでコレクションを作成する方法を学ぶための優れたリソースを提供するはずです。
記憶に残るGIST IDでリンクを送信する代わりに、フレンドリーな名前のGistにコメントを残して、GistlynコレクションへのリンクのURLを簡単に覚えやすいようにリクエストすることもできます。
上記のGISTのリンクがGistlynで使用可能な場合、LONG ?collection={id} URLへのリンクを公開する代わりに、代わりに短くて簡単に覚えやすい名前を使用できます。
それはURL短縮機のように、リンクされたURLにリダイレクトします:http://gistlyn.com?collection=991db51e44674ad01d3d318b24cf0934
Add ServiceStackリファレンス機能のGistlynの統合サポートは、ServicestackのタイプされたC#サービスクライアントのいずれかで使用してWebサービスを呼び出して結果を数秒以内に使用できるリモートServicestackサービス用の型付けられたAPIを生成します。
この機能を使用する最も簡単な方法は、リモートServiceStackインスタンスのbaseURLを?AddServiceStackReferenceに追加することです。
これにより、指定されたURLが有効なServiceStackインスタンスにあるかどうかを自動的に検証するAdd Servicestackリファレンスダイアログが開きます。
Enter押すと:
JsonServiceClient初期化しますGet()リクエストの例を提供します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を実行することができます。これは、Preview Inspectorに表示されるデータベースに維持されているすべてのテクノロジーの詳細を返す生成されたGISTを実行します。 response.PrintDump();また、コンソールに対するWebサービスのresponseの内容をダンプします。
あなたがやりたいと思うことの1つは?Requestで指定することによってDTOが使用されるリクエストの変更です。
また、C#式を事前に入力して、以下を自動化することもできます。
次に、デスクトップやiPadに最新のブラウザを持っている人なら誰でもクリックしてTechStacks.ioのパブリックAPIを呼び出して、その最も人気のあるテクノロジーが何秒であるかを確認できるライブリンクになります。
ServiceStackリファレンスの追加がほとんどのメジャーIDEで機能する方法と同様に、エディターコンテキストメニューを使用して既存のGISTへの参照を追加することもできます。
次に、 [Referenceの追加] Gistlynが[指定されたファイル名を使用して既存のGISTに型付けされたDTOSを追加する参照Gistlynが追加されます。
v4.0.62の前にServiceStackのバージョンへのサービス参照を追加する場合は、Roslyn Scriptingではサポートされていないため、C#名前空間を手動で削除する必要があります。
Gistlynについての驚くべきことの1つは、バックエンドDBの持続性なしで実行されるのは完全に無国籍であることです。すべての状態は、Github GistまたはブラウザのlocalStorageに持続します。認証されたGithubセッションでさえ、Ajax要求ごとに送信される暗号化されたJWT Cookieにすぐに変換されるため、サーバー上に保持されないため、再配置(またはクリーンサーバーの再構築)は、JWTトークンが切れるまで再びサインインするように強制しません。
このGitHub Repoは、さまざまなサービス機能を活用する最新のミディアムサイズのサービセスタック、React + TypeScriptアプリの良い例を提供します。