Miroslav Holec

Software & Cloud Architect

miroslavholec.cz / blog / piste-a-testujte-code-snippety-rychlosti-svetla

Pište a testujte code snippety rychlostí světla

Miroslav Holec

Publikován 26. dubna 2016 |

Potřebovali jste si někdy rychle vyzkoušet funkčnost jednoduchého algoritmu (C# / VB / F# kódu), aniž byste museli zakládat projekt ve Visual Studiu? Přesně k tomu dobře poslouží LINQPad. A navíc umí dělat různé kejle s SQL! To nejdůležitější o LINQPadu se dočtete v tomto článku.

Psaní kódu a dotazů

První, na co lze LINQPad použít je psaní různých snippetů kódu. Hledáte řešení problému, zkopírujete kód například ze StackOverflow a v LINQPadu si ho můžete vyzkoušet. Lze to buď pomocí dotazů, příkazů a nebo klasického programu. V okně editoru lze vytvářet samozřejmě i vlastní třídy. Protože editor původně vznikl pro podporu LINQ, je k dispozici užitečná metoda Dump(), která vizuálně zobrazí data v různých kolekcích. Zobrazená data lze dále exportovat do XLS, DOC nebo HTML.

Základní pohled na LinqPad

V editoru je dostupná velmi rychlá IntelliSense s užitečnou funkcí skrytí extension metod.

Intellisense ukázka

Debug mód, watch window a call stack

Napsaný kód lze snadno debugovat a stav jednotlivých proměnných následně dumpnout. K dispozici je i watch window, díky kterému lze například volat metody nad instancemi tříd nebo si jen vypsat hodnotu proměnných. Kódem je možné klasicky krokovat nebo například posouvat pointer zpět podle potřeby. Změna hodnot vlastností za běhu sice možná není ale vzhledem k rychlosti LINQPadu to moc nevadí. Užitečná může být i funkce dívat se na stack spuštěného programu. Fajnšmekry může potěšit pohled na komentovaný kód generovaný do IL.

Debugování kódu

Testování LINQ dotazů, propojení s DB

Pokud LINQPad dostane connection string do databáze, je schopen pracovat s jednotlivými databázemi a tabulkami. Naprosto běžným způsobem pak lze vytvářet LINQ dotazy například pomocí SQL like syntaxe a nechat si vypsat jak by takový dotaz vypadal method like syntaxí nebo jak bude vypadat generovaný SQL dotaz. Ten je možné dále otevřít přes menu Analyze SQL v SQL Management Studiu (automaticky se vytvoří okno a naváže nové spojení).

Generování SQL dotazu

Podpora Entity Framework

Skvělá je podpora Entity Frameworku. LINQPadu lze totiž předal přímo DLL, které obsahuje datový model (POCO + DbContext) a následně psát dotazy přímo nad tímto DbContextem. Nejedná se přitom o psaní naslepo. LINQPad si totiž dokáže DbContext očuchat a najde automaticky všechny dostupné DbSety a to včetně navigačních properties. ConnectionString je možné předat z .config souboru nebo přímo zadáním.

Co se týče propojení s databází, k dispozici je celá řada providerů. Nechybí ani možnost dotazovat se proti MySQL databázi nebo si vyzkoušet nanečisto nově připravovaný Entity Framework Core.

Podpora NuGet balíčků

Co se týče rozšiřitelnosti, naprosto skvělá je podpora NuGet balíčků. Pokud potřebuje vývojář ve svém kódu například serializovat data do JSON formátu, lze si nainstalovat NuGet balíček Newtonsoft.Json a okamžitě jej v rámci programu začít používat.

Organizace snippetů

Napsané snippety lze ukládat a organizovat podle potřeby pro pozdější použití. LINQPad již po stažení přitom obsahuje ukázky nových features jazyka C# 6.0 nebo praktického průvodce jazykem F#.

Sečteno je LINQPad užitečný nástroj pro každého, kdo si potřebuje ověřit správnost kódu nebo se například naučit nový programovací jazyk (typicky C# / F#). Free verze neobsahuje IntelliSense, debugger a některé pokročilé funkce. Základní funkčnost ale omezena není.

Potřebujete pomoci?

Líbil se Vám článek? Máte dotaz nebo chcete v této oblasti s něčím pomoci? Neváhejte se na mě obrátit.

mirek@miroslavholec.cz

  • Řešení vývojářských problémů
  • Konzultace
  • Firemní školení a workshopy