štvrtok, 3. júla 2008

Moq

Moq je zaujímavá knižnica na vytváranie mock-ov, ktoré často používame pri testovaní, konkrétne pri vytvaraní nepravých (mock) implementácií. Páči sa mi jednoduchosť použitia a taktiež to, že využíva nové vlastnosti .NET 3.5 a jazyka C# 3.0 (lambda expressions, ....). V príklade je ukázené vytvorenie jednoduchej testovacej implementácie rozhrania. Kĺúčovým krokom je vytvorenie očakávaní volaní (expectations) jednotlivých členov tvoriacich rozhranie. Týmto krokom špecifikujeme ako bude vytváraný mock reagovať na volanie jednotlivých členov tvoriacich rozhranie (v tomto príklade sú to metódy). Potom získame referenciu na vytvorený mock ku ktorému pristupujeme cez rozhranie a môžeme sa hrať.


   1:  using System;

   2:  using System.Linq;

   3:  using Moq;

   4:   

   5:  namespace NMarian.MoqDemo

   6:  {

   7:      public interface IWeatherService

   8:      {

   9:          string GetCurrent();

  10:          string GetForecast();

  11:      }

  12:   

  13:      class Program

  14:      {

  15:          static void Main(string[] args)

  16:          {

  17:              var mock = new Mock<IWeatherService>();

  18:              mock.Expect(w => w.GetCurrent()).Returns("Sunny day");

  19:              mock.Expect(w => w.GetForecast()).Returns("Summer storm at evening");

  20:   

  21:              IWeatherService ws = mock.Object;

  22:   

  23:              Console.WriteLine("Current weather: {0}", ws.GetCurrent());

  24:              Console.WriteLine("Weather forecast: {0}", ws.GetForecast());

  25:          }

  26:      }

  27:  }

utorok, 27. mája 2008

Office Open XML - export do Excelu 2007

Práve som riešil problém exportu dát do formátu OOXML pre Excel 2007. Export do tohto formátu prakticky znamená iba vytvoriť sadu XML dokumentov a tie skomprimovať do ZIP archívu. Keďže sa mi nechcelo študovať špecifikáciu OOXML, rozhodol som sa hladať nejakú knižnicu, ktorá by mi poskytla požadovanú úroveň abstrakcie. ExcelPackage je presne tým čo som hladal.

piatok, 11. apríla 2008

LINQPad

Táto zaujímava utilita pripomínajúca Microsoft SQL Server Management Studio slúži na písanie LINQ príkazov (LINQ to SQL). LINQPad je veľmi nápomocný pri učení technológie LINQ to SQL. Zobrazuje výsledky vykonaného príkazu vo forme tabuliek, lambda výraz a taktiež aj SQL výraz.