pondělí 25. listopadu 2013

Jak na Boolovský vypočítaný sloupec v SQL databázi?

Přidání podmínky [VALIDACNI_CHYBA]=0 do řádku Formula v designeru tabulky nestačí.
Je totiž potřeba provést konverzi z hodnoty, kterou vrátí CASE na datový typ BIT

např.

ALTER TABLE dbo.MyTable ADD VALIDNI AS CONVERT([bit],case when [VALIDACNI_CHYBA]=(0) then (1) else (0) end, 0);

konverze je hezká věc, ale stejně po ní zbyde v databázi Allow Nulls pžíznak
Snažil jsem se to vyřešit příkazem CAST ... AS BIT to ale stejně nepomohlo.

cast (CONVERT([bit],case when [VALIDACNI_CHYBA]=(0) then (1) else (0) end, 0) as bit)

Nezbylo mi nic jiného než toto ošetřit v aplikaci if (VALIDNI.Value) {...}

Zdroje:
http://stackoverflow.com/questions/2050007/marking-persisted-computed-columns-not-null-in-sql-server-management-studio

středa 23. října 2013

Jak vypnout automatické nastavení stavu Resloved při Commitu?

Pokud Vás stejně jako mě štve, že se Vám při Commitu změn do SourceControlu nastavuje stav Work Itemu na Resolved. tak toto chování můžete jednoduše změnit nastavením registru:
“HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\TeamFoundation\SourceControl\Behavior\ResolveAsDefaultCheckinAction” = “False”.
Tak sem si to nastavil, jak u 10 tak u 11, ale stejně to nezabralo. restart PC ani vypnutí studia zatím nezabralo.

Zdroj:
http://stackoverflow.com/questions/12263972/how-to-disable-auto-done-status-for-task-in-checkin

neděle 20. října 2013

Jak nastavit Check-In Policy na TFS z Visual Studia 2012

Check-In policy nám vynutí aby programátoři při své práci dodržovali vybraná pravidla, jako například vyplňovali komentář Check-Inu. Tyto pravidla musí být splněna jinak nám Visual Studio neumožní provést Check-In.
Na výběr je několik základních pravidel jako například již zmíněné pravidlo pro komentáře, nutnost navázat k Check-Inu související Work Item nebo, že poslední Build musel proběhnout v pořádku.
Visual Studio dokonce umožňuje vytvořit si vlastní pravidla. To se může hodit pokud váš programátor sice komentáře vyplňuje, ale jejich vypovídající hodnota je skoro nulová protože používá buď jednu frázi, nebo zapisuje pouze čísla Work Itemů (které jsou zbytečné, protože s danými WI tento Check-In provázal).
Vlastní pravidlo je pouze jedna třída zkompilovaná do DLL. Tuto třídu je potřeba zaregistrovat na pracovní stanici do registrů odkud ji Visual Studio přidá do seznamu pravidel ze kterých můžete vybírat.
Přidání pravidla se provede v Team Exploreru ve skupině Team Project / Source Code. Zde na záložce Check-In Policy přidáme pravidla tlačítkem Add.

Zdroj:
http://msdn.microsoft.com/en-us/library/bb668980.aspx
http://blogs.msdn.com/b/buckh/archive/2006/10/26/a-checkin-policy-to-detect-that-the-build-is-broken-in-a-ci-environment.aspx?Redirected=true

úterý 18. června 2013

Trace a Debug do souboru

Přesměrovat trasovací a ladítí informace do souboru je hračka. Stačí na začátek aplikace přidat kód který ukáže třídě Trace, nebo Debug do kterého souboru chceme aby se informace zapisovali. Pokud aplikace padá na neznámém místě je důležité přidat řádek *.AutoFlush = true. Ten nám zajistí že se informace okamžitě zapíší do souboru a nečeká se na ruční volání metody .Flush()


  Trace.Listeners.Add(new TextWriterTraceListener("TextWriterOutput.log", "myListener"));
            Trace.TraceInformation("Test message.");
            Trace.AutoFlush = true;
            Debug.Listeners.Add(new TextWriterTraceListener("TextWriterOutput.dbg", "myListener"));
            Debug.WriteLine("Test message");
            Debug.AutoFlush = true;

středa 15. května 2013

Doplňky a nástroje do Visual Studia

StyleCop

Klávesové zkratky
CTRL + SHIFT + Y = spuštění kontroly StyleCop
F8 = skok na další earning
Stáhněte si z http://stylecop.codeplex.com/releases/view/79972

Resharper

Klávesové zkratky
ALT + PageUp / Down = skok na další nabídku opravy
ALT + Enter = otevře nabídku s připomínkami

Zdroj:
http://resourcerefactoring.codeplex.com/

A jak by to mělo vypadat?


  • Get Latest Version
  • Refactoring
  • Implement Changes
  • Build
  • Debug
  • Rebuild
  • Refactoring
  • Run StyleCop
  • Send For Review
  • Commit
No a ještě někde by se také měli psát testy

Pre-build Post-build Event ve Visual Studiu 2010

Při programování narazím sem tam na situaci kdy Visual Studiu prostě nerozumím. Potom strávím několik hodin Googlením a hledáním řešení, které mě po jeho objevení většinou svou jednoduchostí ještě dorazí.
Pokud Vás trápí stejně jako mě při kompilování projektu pro Windows Azure chybová hláška Adresář není prázdný. 

Error    150    The directory is not empty.
    C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\Windows Azure Tools\1.4\Microsoft.WindowsAzure.targets    2854    5    MyCastingAzure

  <CSPack
      AllowLegacyWebRoles="$(AllowLegacyWebRoles)"
      ServiceDefinitionFile="@(TargetServiceDefinition)"
      Output="@(PublishServicePackage)"
      PackRoles="@(Roles)"
      SiteMapping="@(SiteMapping)"
      RoleProperties="@(RoleProperties)"
      CopyOnly="false"
      >
    </CSPack>

osvědčilo se mi provést Clean Solution. Ale také to není stoprocentní. Druhá možnost je smazat bin a obj složky v projektu Claud. Tato chyba je nejspíše způsobena neuvolněnou referencí na některý soubor v těchto adresářích. v článku http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/a6bf9d22-22ef-4b49-bb98-f1008c93be30/ jsou popsány prográmky které tyto zámky umí uvolnit.

Správné řešení jsem naše ale až v článku http://social.msdn.microsoft.com/Forums/en-US/windowsazuretroubleshooting/thread/eada815e-7177-469a-9e2d-789fb0828e32/, ve kterém se píše o tom že toto chování způsobuje anti-virový program. Já osobně používám v práci AVG na WIN7.

V souvislosti s tím jsem našel tento příkaz, který smaže obsah adresářů obj a bin. Otázkou je jestli je dobrý nápad ho použít jako Pre-build protože může hodně zdržovat. Jeho problém je v tom že zamčené soubory nedokáže smazat.

del $(ProjectDir)obj\* /F /S /Q
del $(ProjectDir)bin\* /F /S /Q

Můj problém s neprázdným adresářem sice nevyřešil ale poznamenám si ho. Na něco se může hodit.

Jestli potřebujete sestavenou assembly přenést na jiné místo kde ji referencujete tak Vám pomůže ve vlastnostech projektu záložka Build Events kde si můžete přidat příkaz který se vykoná jakmile bude assembly sestavena.
Mě se tato technika hodila při hraní s MEFem, kdy jsem potřeboval aby se assembly dostala do stejného adresáře jako hlavní projekt (pokud nenareferencujete assembly do hlavního projektu tak se tam nezkopíruje). MEF potom při sestavování katalogu modulů prohledává tento adresář kde by assembly chyběla.


Copy /y "$(TargetDir)$(TargetFileName)" "$(SolutionDir)$(OutDir)$(TargetFileName)"

pondělí 13. května 2013

Jak změnit heslo k Azure SQL?

V seznamu databází (1.) klikneme na název serveru (2.). Potom se přepneme na záložku Dashboard (3.) a vpravo se nám zpřístupní volba Reset Administrator password (4.).


Zdroj:
http://stackoverflow.com/questions/13790752/password-reset-for-azure-
database