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

úterý 5. března 2013

Azure Web Sites - nastavení domény

Nastavení domény k AzureWebSite je vcelku jednoduché. Aby se Vám zpřístupnilo tlačítko Manage Domains, musíte na záložce Scale přepnout na placenou variantu Web Sites.

V první řadě se tedy přepněte na záložku Scale kde je potřeba přepnout Web Site Mode na Shared nebo Reserved. 

Tím získáte zpřístupněnou volbu Manage Domains na Dashboardu.

 Zde zadáte akorát vaši doménu (podle ní web server ve sdíleném režimu nasměruje návštěvníka na váš web). Zároveň si odtud zkopírujte IP adresu na kterou nasměrujete A záznamvašeho doménového registrátora. 

Nastavte A záznam na IP adresu webového serveru, kterou jste si zkopírovali. Já jsem ještě nastavil C záznam pro subdoménu www na adresu, kterou Vám pro váš web vygeneruje Azure automaticky.

 Nakonec se ještě podíváme do kalkulačky kolik nás to vlastně bude stát. Cena jedné sdílené web site je $9,36 což při aktuálním kurzu 19,66 ~ 20 Kč je něco kolem 184,- ~ 188,- Kč / měsíc. Což je 2.256,- za rok. Cena běžného hostingu se pohybuje mezi 500,- ~ 800,- Kč za rok.


Nakonec jen pro připomenutí jak se nastavují přístupové údaje k FTP účtu. Podrobněji v článku http://skudce.blogspot.cz/2013/02/azure-web-sites-jak-dostat-html-stranky.html

pondělí 25. února 2013

Jak dohlédnout na děti na internetu?


  • Pokud Vaše děti používají svůj počítač, tak je pro Vás určitě těžké být jim pořád za zády a dávat pozor na to jaký obsah sledují, nebo s kým se na internetu baví.

    Jedním z řešení může být program KidLogger. Aplikaci můžete nainstalovat po stažení ze stránek http://kidlogger.net/
    Instalace Vám zabere jen malou chvilku a nastavení je také jednoduché. Stačí zaškrtat co má program sledovat a vaše heslo kterým bude nastavení chráněno.


    Program umožňuje ještě další spoustu nastavení, jako odesílání logů na e-mail, sledování hovorů po Skype, atd.

    Z mého pohledu programátora je těžké hodnotit jak moc je tento program použitelný, pokud se vaše děti trochu vyznají v počítačích. Malému uličníkovi co crackuje hry asi zabere jen pár minut velkého brášku odhalit a odinstalovat.  
    Protože malou nevýhodou je že tato aplikace je vidět v seznamu spuštěných procesů.


    Další nevýhodou aplikace je že logy ukládá v nešifrované formě do adresáře c:\Program Files (x86)\KidLogger\logs\{UserName}\*.html

    Pokud zapomenete heslo tak to také není problém najdete ho uložené v registrech (Win+ R zadat: regedit stisknout: OK) operačního systému na adrese 

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Explorer 
    pod názvem klíče Tesl_key0 

    heslo není nijak šifrované proto není dobré v programu zadávat heslo které běžně používáte např. k e-mailu.
    Veškeré nastavení programu je potom uloženo na adrese 

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\KidLogger nazev klíče report_cmdline

    Zde pak najdete například nastavení odesílání e-mailů. Protože E-maily je potřeba odeslat pře nějaký SMTP server tak tu naleznete i heslo k e-mailu kam logy chodí.

    Rozhodně bych nedoporučoval ke sledování svojí ženy nebo přítelkyně. Některé věci prostě nevysvětlíš ;)

    pondělí 11. února 2013

    Vývoj na platformě MS Azure

    Poznámky z přednášky o vývoji na platformě MS Azure

    Úvodní otázky

    • Jak jsou účtovány databáze které jsou na jednom Azure SQL serveru? Všechny databáze se účtují souhrně za skutečně spotřebovaná data. Nastavený limit má vliv pouze v situaci kdy by mělo dojít k jeho překročení. Databáze je pak uzamčena pouze pro čtení a mazání (není možné vložit další data).
    • Limit MySQL databáze např. pro WordPress je 20MB. Pro jeden web na WordPressu je potřeba zhruba 1MB. Rozšíření tohoto limitu je účtováno podle ceníku Clear DB.

    Azure SQL

    Neumožňuje FullText vyhledávání
    Je Sdílená na jednom serveru běží více databází (různých klientů)
    SQL Azure ukládá data ve 3 replikách, Při výpadku jedné z nich se vytvoří další a mezi tím odpovídají předchozí dvě.
    SQL je možné rozběhnout také na vlastní VM, ale potřebujeme potom licenci na SQL server a replikace je v naší režii.
    Platí se pouze za skutečně spotřebovaná data. Nastavené limity jsou pouze kvůli kontrole výdajů.
    Nelze používat dotazy napříč databázemi
    Tabulka v Azure SQL musí mít Clusterer index

    V SQL management studiu je v menu volba Tasks/ deploy to Azure SQL. Tento příkaz vytvoří soubor *.Bacpac který nahraje na server.
    Ve Visual Studiu je projekt SQL Server Data-tier application - Tento projekt slouží k designu databáze. Výstupem tohoto projektu je soubor *.Bacpac

    Zálohy databáze je lepší ukládat do Storage namísto SQL serveru. Je to levnější.

    Federace - Distribuovaná databáze

    řeší výkonostní problém nebo problém s překročením limitu 150G (tento limit je technologický z důvodu migrace DB mezi servery nebo replikace)
    Create federation -NAME- (Discriminator_ID .....)

    Azure Storage Table

    Vhodné pro ukládání logů. Neumožňuje T-SQL. Dá se k ní přistupovat pomocí REST nebo Linq
    Existují SDK pro Windows Phone, .NET

    doporučené adresování vrámci tabulky
    Partition key = Agenda_Id
    RowKey = Aktuální datum nebo GUID

    Kapacita 100TB $0.07 USD / GB / mes

    Azure Block Blob

    Vhodné pro Obrázky

    Page Blob 

    VHD soubory s obrazy virtuálních strojů

    Visual Studio Server explorer
    Azure Storage Explorer

    Public / Private - vyžaduje klíč
    Použití SAS - časově omezená platnost klíče

    Fronty

    Azure Queue VS Service Buss - je to skoro to stejné
    Není garantováno pořadí zpráv
    Jedna zpráva může být zpracována vícekrát
    Je potřeba ověřit jestli již nebyla zpracována
    Servicebuss zaznamenává větší rozvoj
    Definice Startup scriptu se přidává do balíčku jak na to je na netu

    Diagnostic monitor -> sběr dat do azure table storage
    Logy IIS
    System Event Log 

    Mobile Service

     

    středa 6. února 2013

    Azure Web Sites

    Azure Web Sites

    Jak dostat HTML stránky na server?
    1. Stačí se přihlásit do administrace Azuru a založit si novou Website. 
    2. Pak už si jen resetujete deployment credentials (po vytvoření Web Site nejsou nastaveny)
    3. Zkopítujete si FTP hostname (Ctrl + C) do Total Commanderu kde si otevřete nové FTP spojení (Ctrl + N)
    4. zkopírujete si FTP User 
    5. zadáte heslo 
    6. a kopírujete soubory z lokálního disku

    Během cca 10-ti  minut není co řešit - Máte nový web.

    Azure Web Sites jsou zatím v preview modu což znamená že není možné pro Váš web nastavit SSL certifikát (tato informace je aktuální k 6.2.2013) Microsoft pracuje na doplnění této vlastnosti.