Chrastyho blog

Jakub Kottnauer - Developer and IT enthusiasist 

Už se to blíží

Již brzy ve vašich prohlížečích.

Loading zmínek Retweet
Tagováno »   photolum   programming  

Komentáře [0]

Client-side validace a LINQ to SQL/Entities v ASP.NET MVC 2

ASP.NET MVC 2.0 přijde s jednou velmi hezkou novinkou, a to vestavěnou podporou pro validace na straně klienta pomocí jQuery. Snadněji by to už udělat nešlo: pokud máme například formulář na vytvoření nového komentáře, stačí si vytvořit třídu Comment s vlastnostmi reprezentujícími jednotlivá pole formuláře a odekorovat je patřičnými atributy. Komplikace nastává v případě, kdy máme tuto třídu už automaticky vytvořenou, například vygenerovanou pomocí LINQ to SQL podle databáze. Řešením by bylo něco jako "partial properties", nic takového ale v .NET frameworku nenajdeme. Takže co s tím?

Budeme potřebovat dvě třídy:

  • partial class Comment - bude rozšiřovat třídu Comment vygenerovanou LINQ to SQL
  • class CommentMetaData - zde vypíšeme a odekorujeme vlastnosti, které chceme validovat

Jediný rozdíl je tedy v tom, že místo toho, abychom samotné vlastnosti nadefinovali jako "partial" (což nejde), uvedeme je v jiné třídy a na ni odkážeme ze třídy Comment pomocí atributu MetadataType. Zdrojáček:

 [MetadataType(typeof(CommentMetaData))]
public partial class Comment
{
}

public class CommentMetaData
{
    [Required(ErrorMessage = "Jméno je povinné")]
    public string Author { get; set; }
 
    [Required(ErrorMessage = "Text příspěvku je povinný")]
    public string Text { get; set; }

    [Required(ErrorMessage = "E-mail je povinný")]
    [RegularExpression(@"[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}", ErrorMessage = "E-mail je v nesprávném tvaru!")]
     public string Email { get; set; }
}

Teď už stačí ve View obsahující formulář pro přidání komentářů povolit validace na straně klienta pomocí jedné helper metody (pozor, je nutné tuto metodu zavolat před form tagem (nebo zavoláním Html.BeginForm()), poprvé jsem to přehlídl a pak hodinu přemýšlel nad tím, proč validace nefungují :-)). Kromě toho ještě musíme přidat reference na tři .js soubory, které defaultně nalezneme ve složce Scripts uvnitř MVC projektu.

Ukázkový kód View šablony s podporou jQuery validací:

<script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.min.js" type="text/javascript"></script>
 <script src="../../Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript"></script>  
  
<% Html.EnableClientValidation(); %>

<% using (Html.BeginForm()) {%>
     <fieldset>
        <legend>Přidat komentář</legend>

        <p>
            <label for="Author">Jméno:</label>
            <%= Html.EditorFor(author=>author.Author)%>
             <%= Html.ValidationMessage("Author", "*") %>       
        </p>

        <p>
            <label for="Email">E-mail:</label>
            <%= Html.TextBox("Email") %>
             <%= Html.ValidationMessage("Email", "*") %>
        </p>
        <p>
            <label for="Web">Web:</label>
            <%= Html.TextBox("Web") %>
             <%= Html.ValidationMessage("Web", "*") %>
        </p>
        
        <p>
            <label for="Text">Text:</label>
            <%= Html.TextArea("Text", null, 10, 40, null)%>
             <%= Html.ValidationMessage("Text", "*") %>
        </p>
        
        <p>
            <input type="submit" value="Odeslat komentář" />
         </p>
    </fieldset>

<% } %>

Loading zmínek Retweet
Tagováno »   asp.net   entities   jquery   mvc   programming   sql   web. linq  

Komentáře [0]

Silverlight a práce s databází

Tento článek měl být původně jen krátkým příspěvkem na blog, i proto to odlehčené pojetí a epická šíře zezačátku, ale rozrostl se v téměř sedmistránkový útvar, a proto jsem se rozhodl ho publikovat na Programujte.com. Zde tedy jen perex a odkaz na celý článek:

V centru dnešního softwarového světa stojí databáze, snad by ani nebylo troufalé říci, že většina větších aplikací nějakou tu databázi využívá. Vytvořit takovou „database-driven“ aplikaci v Silverlightu se může, zejména v porovnání s technologiemi jako ASP.NET, zdát zbytečně komplikované. Účelem tohoto článku je dokázat opak – ukázat čtenářům, že je to ve skutečnosti velmi snadné.

Celý článek je zde.

Loading zmínek Retweet
Tagováno »   programming   silverlight   wcf   články  

Komentáře [0]

Zvýraznění zdrojáků v Posterous

E-mailový redakční systém Posterous, který používám na tomto blogu, má takové omezení. Tím je nepodpora plug-inů, vše, co Posterous umí, musí být implementováno přímo jeho vývojáři. Ač to tak na první pohled vypadat nemusí, Posterous zvýrazňování zdrojového kódu umí.

Je to  velmi snadné, stačí jen obalit kód do tagů code (v hranatých závorkách). Navíc můžete, pomocí atributu lang, specifikovat i jazyk pro zvýraznění syntaxe. Na výběr máte z hodnot 'cpp', 'c', 'c++', 'c#', 'c-sharp', 'csharp', 'css', 'delphi', 'pascal', 'java', 'js', 'jscript', 'javascript', 'php', 'py', 'python', 'ruby', 'rails', 'ror', 'sql', 'vb', 'vb.net', 'xml', 'xhtml', 'xslt', 'html', 'xhtml'.

Výsledku jste si už mohli všimnout v několika článcích na tomto blogu, ale ještě na ukázku:

// Volání jedné metody
MessageBox.Show("Hello World");

Loading zmínek Retweet
Tagováno »   posterous   programming  

Komentáře [3]

Hitachi 160 GB 5400 rpm 2,5" vs. Intel X-25M 80 GB (34 nm)

Je to tady, SSD disk Intel X-25M si konečně užívá života uvnitř mého notebooku Lenovo R61. Samozřejmě, že jsem udělal pár měření, tady tedy jsou:

Windows 7 se na starém disku zapínaly přibližně 56 sekund (měřeno od stisknutí tlačítka až po zobrazení uvítací obrazovky), na SSD to trvá okolo 25 sekund. Pomohl jsem si taky co se hmotnosti týče, i když je to naprosto zanedbatelný rozdíl - starý disk vážil 98 gramů, nové SSD váží 78 gramů.

Největší rozdíl je ale vidět v rychlosti při samotném používání počítače. Takový Firefox nebo Word startují instantně, Visual Studio cca 3 až 4 vteřiny, oproti původním třiceti. Úžasné je taky to ticho. Pustíte notebook a nic neslyšíte. Nic. Pokud se vám tedy zrovna netočí větráček :-)

Na závěr "článku" zase pár obrázků - benchmark starého disku i SSD a jejich fotky:

       

Loading zmínek Retweet
Tagováno »   hardware   hdd   ssd   test  

Komentáře [0]

Co se to s tím blogem zase stalo, ptáte se?

A odpověď naleznete v příspěvku z 11/7/2008, který jsem upravil.

Loading zmínek Retweet

Komentáře [0]

Visual Studio 2010 beta 2 – Napodruhé nejde spustit, devenv.exe je spása

Někdy minulou středu vyšla druhá betaverze Visual Studia 2010, kterou jsem se hned jal vyzkoušet. Čekala mě ale ovšem nemilá věc – po deseti minutách hraní Visual Studio spadlo a nešlo opět spustit, jediná hláškou, kterou jsem dostal, byla “The application cannot start”.

Podle Googlu jsem nebyl zdaleka jediný s tímto problémem, ale řešení je naštěstí poměrně jednoduché, stačí jen smazat jakýsi uživatelský profil Visual Studia pomocí souboru devenv.exe a parametrem /resetuserdata. Můžete to udělat například přes CMD:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe /resetuserdata

(Cestu si samozřejmě upravte podle svého)

Loading zmínek Retweet
Tagováno »   visual studio  

Komentáře [0]

WebExpo 2009 – spousta IT ve 3 dnech

Fotky jsou jako již tradičně dole.

Po delší době (září a říjen jsou hektické měsíce) sem opět něco napíšu, tentokrát o druhém ročníku konference o webových technologiích WebExpo.

Druhý ročník se konal ve dnech 16. – 18. 10. 2009, ale sám jsem se kvůli škole mohl zúčastnit jen 17. a 18., tedy soboty a neděle. S ubytováním jsem naštěstí neměl problém, na rozdíl od několika dalších lidí. Zarezervoval jsem si totiž pokoj na kolejích ČZU téměř dva týdny před začátkem, ještě měli volno.

Samotné přednášky byly zajímavé, účastnil jsem se těchto:

  • Sobota
    • Moderní webdesign I.
    • Tajemství a používání a programování Firebugu
    • Moderní webdesign II.
    • Automatizované testování web aplikací
    • Finále Startup Show 2009
  • Neděle
    • Jak z vás lenost může udělat lepšího vývojáře
    • WCAG 2.0 – nový pohled na přístupnost

Vynikající byla přednáška o Firebugu od Jana Odvárka, dále pak Moderní webdesign II. od Jana Sládka, která pojednávala zejména o různých způsobech použití “exotických” fontů na webu (@font-face etc.) a úplně nejvíc se mi líbila "Jak z vás lenost může udělat lepšího vývojáře” od Christiana Heilmanna – skvělá prezentace, výborný projev, a ukázal nám sílu Yahoovského YQL.

Microsoft Surface

O MS Surface sem prostě musím napsat a pochlubit se, že jsem si na něj sáhnul. O tomto stolu od Microsoftu jistě spousta z vás slyšela, a kdo ne, tomu ho snad přiblíží fotky dole v galerii a Google.

A ten zbytek…

Čtenáři tohoto blogu si asi všimli, že se často rozepíšu o nějakém tématu a najednou to celé useknu a doplním jen samé obrázky. Nemám příliš v oblibě psaní delších “pocitových” článků, tak proto:-) Pro dokreslení atmosféry ještě následuje několik fotek a ještě zmínka, že jsem u MSDN stánku vyhrál 8 GB flashdisk Kingston :-).

                                                 

Loading zmínek Retweet
Tagováno »   přednáška   webexpo  

Komentáře [0]

IT podcasty, které se vyplatí sledovat

Jakožto maximálně spokojený majitel přehrávače Microsoft Zune 80GB ho využívám nejen k přehrávání hudby, ale za pomoci Zune software i ke stahování různých zajímavých podcastů (zvukové stopy a videa).

Dalo by se říct, že podcast je vlastně “multimediální RSS” – v Zune software či jiné aplikaci (podcasty podporují i iPody, existují i stahovátka na desktop,…) zadáte adresu RSS feedu a daná aplikace vám pak nový obsah automaticky stahuje. Osobně stahuju šest podcastů ze světa techniky:

  • .NET Rocks! – Má už něco přes 400 dílů, každý v průměru cca 45 minut. Výborná kvalita, spousta zajímavých informací, interviews, …
  • ASP.NET Podcast – Informace ohledně ASP.NET
  • StackOverflow Podcast – Kdo nezná StackOverflow.com, jako by nežil :-)
  • Hanselminutes – A další výborná věc, podcast Scotta Hanselmana, známého .NET vývojáře. Opět spousty informací o nejnovějších technologiích, tipy a podobné věci
  • Channel 9 – Novinky ze světa MS technologií
  • Sparkling Client – zaměřené jen na Silverlight a další RIA technologie

Možná, že tento výčet někomu přijde na jedno brdo, ale mně vyhovuje. Pokud hledáte nějaké technické podcasty, doporučuju tyto!

Loading zmínek Retweet
Tagováno »   podcasts   programming   zábava   zune  

Komentáře [0]

Sdílejte všechno se vším aneb jak to dělám já

Znáte to. Máte několik přístrojů – počítač, notebook, mobil a další. “Ideální” situace je taková, že všechny zařízení jsou co nejrozličnější, aby se nám potřebná data mezi nimi synchronizovala co nejobtížněji. Já sám vlastním první tři jmenovaná zařízení a potřebuju, abych měl na všech třech co nejaktuálnější kalendář, úkoly a kontakty. Navíc ještě chci mít aktuální verze některých souborů jak na desktopu, tak na notebooku. Tento článek pojednává o tom, jaké aplikaci používám já na všechny výše uvedené věci.

S čím začínáme

Začínáme s desktopem a notebookem, oba s Windows 7, a telefonem HTC Touch Pro s Windows Mobile 6.5. Na obou počítačích je nainstalovaný Outlook 2007 a telefon je spárovaný s desktopem.

Ještě pár slov k e-mailu: Mám ho na vlastní doméně (chrasty.cz), původně běžel na Microsoft Custom Domains, ale přešel jsem se stejnou adresou ke Google Apps (musím přiznat, že, ač mám Microsoft rád, tady Google jednoznačně vede. Na MS Custom Domains dokonce ani některé e-maily nechodily!). Z tohoto plyne ještě jedna výhoda – Live ID u Microsoftu mi zůstalo i tak, takže se můžu se stejným e-mailem přihlašovat jak na Googlovské, tak na Microsoftí služby.

To by jako úvod stačilo, teď si povíme o jednotlivých typech synchronizace a jak na ně.

Synchronizace souborů

Začnu tím asi nejstručnějším a tím je synchronizace souborů. Používám k tomu Microsoft Live Mesh, stáhnete si jen maličkého klienta na všechny PC, které potřebujete, nastavíme složky pro synchronizaci a soubory v nich se pak sdílí mezi všemi počítači a online 25 GB úložištěm. Synchronizace tak funguje, i když je jedno z PC vypnutých, protože kopie souborů je i na webu. Praktické.

Sdílení souborů uvnitř sítě

Druhou věcí související se soubory je sdílení některých dat s ostatními počítači v síti. Tady jsem si zamiloval koncept “domácích skupin” představený ve Windows 7. Pokud jsou počítače v jedné síti, stačí jen zadat heslo a hned máte přístup k předem vybraným složkám v ostatních počítačích v síti. To se sice dalo udělat i dříve starým známým sdílením po síti, ale domácí skupiny toto velmi zjednodušují.

Synchronizace e-mailů

Jak už jsem zmínil, e-mail mám u Googlu na vlastní doméně. Klasicky ho synchronizuju s počítačem, mobilem i notebookem pomocí Outlooku a IMAP. Možná stojí za zmínku, že e-maily stahuju přímo do mobilu, nedělám to přes desktopový Outlook. Gmail si v Outlooku vytváří speciální složky a raději, než abych se s tím nastavoval, těch pár kilobajtů na mobilu obětuju. No a co, když mám ten internet od O2 zdarma? :-)

Synchronizace kalendáře

U kalendáře není moc co řešit, používám aplikaci přímo od Googlu, funguje v pohodě. Z desktopu se mi pak kalendář synchronizuje i do mobilu.

Synchronizace kontaktů

Tady už to začne být docela zajímavé. Pro synchronizaci kontaktů totiž používám webovou službu. Jmenuje se Soocial a podporuje synchronizaci s Gmailem, Outlookem. různými typy telefonů a tak podobně. S Gmailem to funguje automaticky, stačí jen nastavit frekvenci s jakou se budou kontakty updatovat, pro Outlook si musíme stáhnout malý prográmek. Ve výsledku mám kontakty uložené na Soocialu, odkud se sdílejí s Gmailem a Outlookem na notebooku a desktopu. Z desktopu se mi pak synchronizují s mobilem, ve kterém se mi pro změnu stahují fotky lidí z Facebooku a přiřazují se kontaktům podle jména.

Synchronizace úkolů

A to nejzajímavější nakonec. Na úkoly používám webovou aplikaci s krásným názvem “Remember The Milk” (:-)). Je to jedním slovem skvělé, nové úkoly můžeme zadávat třeba SMSkou, e-mailem, Twitterem, nebo přes normální webové rozhraní. Kromě toho si můžete nechat posílat i upozornění, taky přes SMS, e-mail, Twitter, nebo třeba ICQ a jiné IM služby. O Remember The Milk by se dalo napsat neskutečné množství textu, proto radši odkážu na články ostatních, kteří o této služby už psali. Mrkněte na blog Petra Čaníka, Mít vše hotovo a na Javorové lístky.

Snad jsem řekl vše, co jsem měl na srdci. Jak jste na tom vy, co používáte? A neříkejte, že moje postupy jsou složité :)

Loading zmínek Retweet
Tagováno »   google   live mesh   rtm   soocial  

Komentáře [0]