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.