čtvrtek 12. ledna 2012

Expression Blend 4 - Školení Gopas - den 2.

Master Detail
Pokud chci vygeberovat tabulku
VS: Data / Show Data Sources
Přetažení z DataSource (přepnout combo z Gridu na Details) Je potřeba dělat na View, budeme na něj potom přetahovat entitu pro kterou chceme generovat formulář.

Binding
V blendu se nabindovaná property pozná podle žlutého čtverečku vedle jejího názvu

UpdateTrigger = Explicit
http://msdn.microsoft.com/en-us/library/system.windows.data.binding.updatesourcetrigger.aspx


Stavy
AddStateGroup
je potřeba mít stav v nějaké skupině

Výchozí stav Base - zde musí být již nachystané všechny Controly které chci použít v ostatních stavech

Tkačítkem [Turn On Fluid Layout] zapnu vlastnost která umožní plynulý přechod mezi diskrétními hodnotami. Například pokud ve stavech měním hodnotu Visibility přechod se podívá jak vypadá stav na začátku a na konci a plynule ho zanimuje.
<VisualStateGroup x:Name="NaseSkupina" ei:ExtendedVisualStateManager.UseFluidLayout="True">

Pomocí tlačítka [Turn On Transition Preview] zapne přecházení mezi stavy pomocí přechodu. Bez této funkce stavy přecházejí okamžitě.

FluidMoveBehavior
Na ItemPanelTemplate


SketchFlow
File / Package SketchFlow Project
Vytvářet skeče můžeme pro WPF a Silverlight. Pokud chceme vytvářet skeče pro WP7 musíme si stáhnout šablonu ze stránky http://wp7sketchflow.codeplex.com/

Window / SketchFlow Feedback
Tímto zobrazím panel do kterého si můžu importovat feedbacky od zadavatele a zobrazit si je přes sebe ve vrstvách.
V nápovědě: prototyping with SketchFlow / Convert a prototype - Convert into a production project

Poznámky:
Kurz bubnování
http://afro.cz/kurzy/brona-pavlicek

Visibility
Visible: Zobrazí element
Hidden: Nezobrazí element a rezervuje pro něj místo
Collapsed: Nezobrazí element a místo pro něj nerezervuje

středa 11. ledna 2012

Xaml Cop

Do Visual Studia existuje addon který hlídá kvalitu vámi psaného C# kódu. Jmenuje se StyleCop. Jelikož se v poslední době hodně věnuju aplikacím které mají UI psané v XAMLu hodil by se i nějaký XAML COP.
Na adrese http://xamlcop.codeplex.com/ jsem na něco takového narazil a teď se to hodlám vyzkoušet.
Pro kompilaci je potřeba stáhnout SDK pro XAML které je na adrese http://archive.msdn.microsoft.com/XAML/Release/ProjectReleases.aspx?ReleaseId=4720

nicméně pří úspěšné kompilaci a spuštění programu na vlastní projekt programu nevypíše XAML COP nic zajimavého. Tak jsem to zkusil na některý z našich projektů a XAML COP spadl protože nenašel naše knihovny tak kde si myslel že je máme.

Takže to zatím dávám k ledu až se objeví nějaká novější verze.

http://labs.ranjithvenkatesh.com/XamlCop/publish.htm

úterý 10. ledna 2012

SQL zobrazení chyby

Zrovna jsem dopsal SQL stored proceduru na smazání uživatele a všech jeho záznamů. Docela se mi hodilo vidět chybovou hlášku pokud nějaký záznam nebylo možné smazat kvůli navázanému záznamu.


BEGIN TRY
    -- Generate a divide-by-zero error.
    SELECT 1/0;
END TRY
BEGIN CATCH
    SELECT
        ERROR_NUMBER() AS ErrorNumber
        ,ERROR_SEVERITY() AS ErrorSeverity
        ,ERROR_STATE() AS ErrorState
        ,ERROR_PROCEDURE() AS ErrorProcedure
        ,ERROR_LINE() AS ErrorLine
        ,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO

čtvrtek 5. ledna 2012

Domácí síťování

Koupil jsem si nové hračky od Zyxelu, ale pořád se nemůžu zbavit pocitu, že to zase taková hitparáda není


Kopírovaný soubor 1,5GB
Ze serveru na notebook HP


Při propojení přes gigabitový switch 
Rychlost 30.000-50.000 kilobit/s
Samba doba kopírování 46s
FTP doba kopírování 30s

Při připojení přes WiFi 11g (54Mbps, reálně prý 22Mbps)
Samba doba kopírování 14min Rychlost 1.930 kilobit/s
FTP doba kopírování 13min Rychlost 2.200 kilobit/s
Tohle by tak sedělo

Při připojení přes WiFi 11n (300Mbps)
3-5.000 kilobit/s
Samba doba kopírování 5,5min Rychlost 4.600 kilobit/s
FTP se nepodařilo připojit nevím proč ...

http://cs.wikipedia.org/wiki/IEEE_802.11
http://www.lupa.cz/clanky/802-11g-rychlejsi-wifi/

Jiné rychlosti:
Kopírování CD cca 2MB/s

Expression Blend 4 - Školení Gopas - den 1.

Rozložení panelů programu Blend 4
Menu
  • File / New Project - založení nového projektu
  • Tools / Options - nastavení prostředí a zkratek
  • Windows / Workspace - přepínání klávesou F6. Možnost vytvořit si vlastní pracovní prostor a uložit si ho.
Levá strana
  • Projects - (Solution Explorer)
  • Assets - prostředky controls (ToolBox)
  • Triggers
  • States - prohlížení visual states
  • Objects & Timeline - visuální strom (něco jako DOM)
Pravá strana
  • Propertyes - Vlastnosti, události (atributy), které je možné filtrovat.
  • Resources -
  • Data a Data Context - umožňuje bindování pomocí Drag & Drop
Hlavní panel
  • F4 - skryje všechny panely
  • V - operace výběr prvku
  • H - operace přesunutí plátna
  • Scrool - Zoomování
Pohledy
  • Design - pouze návrh
  • XAML - pouze XAML kód
  • Split - obojí
  • Přepínání pomocí klávesy F11
Odlišnosti oprosti Visual Studia
Zoom pomocí Ctrl + Scrool
Tools / Options | Workspace - Theme = Expression light
Světlé téma
Tools / Options | Artboard - Mouse wheel = Ctrl + mouse wheel

Návrh UI
Přes shevron vlevo dole se rozbalí seznam Controlů kde je mořné vyhledávat podle názvu. Tlačítko pod shevronem umožňuje vložit posledně použitý control.

Styly
Styl mění již existující vlastnosti
Definujeme je v Resources. Mají platnost do hloubky od s vojí definice.
Pojmenovaný a implicitní styl
Pojmenovaný styl musím připojit ke controlu přes Style = {StaticResource ...}
implicitní styl se připojí ke všem elementům se stejným TargetTypem

Šablony (Templates)
Šablona mění implicitní styl prvku. Mění to jak prvek vypadá např. tlačítko je obdelník.
<Button Click="Button_Click"  >
    <Button.Content>
     <TextBlock>Naše tlačítko</TextBlock>
    </Button.Content>
    <Button.Template>
     <ControlTemplate TargetType="Button">
      <Grid>
       <Ellipse Width="120" Height="20" Fill="LightBlue" StrokeThickness="3"></Ellipse>
       <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
      </Grid>  
     </ControlTemplate>
    </Button.Template>
   </Button>


Pro seznamy
<StackPanel IsItemHost = "True" > 
</StackPanel>

Na zvoleném prvku vyvolám kontextovou nabídku a tam zvolím EditTemplate / EditCurrent
Toto mi umožní editovat pouze šablonu zvoleného prvku.
Klávesová zkratka G přepne do editace gradientu štětce.

Vytvoření kope výchozí šablony elementu
EditTemplate / Edit a Copy

Editace šablony položky ListBoxu
EditAditionallTemplate / Edit ... ItemTemplate / EditCurrent

Vytvoření ukázkových dat
V pravém panelu záložka Data kliknout na tlačítko [CreateSampleData] (tři elipsy a +)
[NewSampleData]

Databinding DataContext


čtvrtek 20. října 2011

DevReach 2011 Sofia Bulharsko

17. října
LEGO and The Microsoft Web Stack of Love (Novinky ve VS2011)
Scott Hanselman
Úvodní přednáška od Scotta Hanselmana ve které mluví ve zkratce o skládání .NET technologijí (ASP, Silverlight, Entity Framework, ...) dohromady jako kostky lega. 
Novinky ve VS2011:
Vylepšená podpora pro práci na dvou monitorech
Lepší podpora editace CSS - color picker, JavaScript - navigate to definition,
lepší navigace pomocí vylepšeného Solution Exploreru, který pod jednotlivé třídy přidává Object Browser. Pomocí něj se potom můžete jednoduše pohybovat mezi metodami aktuální třídy.
jQuery a validation, Nuget - TinyMCE - Wysiwyg editor, MVC a typovaný repeater, Kama - vyhledávání v solution,  ....


http://www.youtube.com/watch?v=KVbsNgN4wJg&feature=feedwll&list=WL


(Scottovy přednášky se ukázaly velice zábavné a zajímavé)




Want Better Estimates? Stop Estimating! (Chceš líp odhadovat? Přestaň odhadovat!)

Joel Semeniuk [Kanada]
Zajímavá přednáška o odhadování kolik nám daný úkol zabere času.
Je lepší odhadovat, že něco bude trvat 2-4 dny než říct "bude to trvat 3 dny"
Je lepší porovnávat dvě věci podle "velikosti" s tím že velikost jedné věci známe. Např. Jak dlouho mi zabere přidat sloupec do databáze? Už jsem to někdy dělal takže něco mezi 1-2 hodinama.
Planning Poker - výhodou je že nutí ke konverzaci mezi hráči (http://en.wikipedia.org/wiki/Planning_poker)
(ZS: pokud je něco ohodnoceno jako těžké, je potřeba to rozdrobit, na menší úkoly)
Neodhadovat na hodiny, dny, minuty, ale jestli je daná věc složitá, normální nebo lehká.


Moving your XAML applications to Metro (Převedení vaší aplikave v XAMLu do Metro stylu)

Carl Franklin
Přednáška začala veselou příhodou kdy si přednášející koupil dotykový notebook (tablet) který měl prasklý display protože mu vypadl z obalu.
Protože jeho převodník z HDMI nefungoval správně, všechny ukázky z tohoto tabletu se odehrávali pouze v červené a modré barvě :)
WinRT - nový NameSpace pro Metro
něco co jsem vygooglio o WinRT
http://www.readwriteweb.com/hack/2011/09/build-2011-what-is-winrt-and-i.php


Silverlight 5 for LOB development

Gill Cleeren
Nejzajimavjejší novinkou v Silverlightu 5 bude asi debugování Bindingu, při kterém je možné vložit BreakPoint na řádek v XAMLu kde se vyskytuje binding. Mezi další novinky bude patřit událost na DataContext_Change, 
Relativní dataContext umožňuje Bindovat na property předka.
Implicitní DataTemplate umožňuje definovat výchozí šablonu pro datový typ. Pokud neuvedete u položky seznamu styl nebo šablonu podle které se má vykreslit, Silverlight podle jejího typu (např. Person) vyhledá výchozí šablonu a pomocí ní ji vykreslí. Docela zajimavá vlastnost.
Dále bude Silverlight 5 obsahovat nějaký další Mod (In / Out of browser) který bude mít vyžší oprávnění a bude moci přistupovat ke všem souborům na disku.



Další informace o Silverlight 5
http://www.microsoft.com/silverlight/future/
Představení Silverlight 5.0 na Silverlight Firestarter 
http://channel9.msdn.com/Series/Silverlight-Firestarter/Silverlight-Firestarter-2010-Keynote-with-Scott-Guthrie

PhoneGap
( Odkaz od Rudy)


Večeře
K večeři jsem si dal Kebab a pivo ... můžu doporučit samozřejmě až na to pivo. Když sem si objednával slečna se ptala "large or small" samozřejmě large. Koukala stejně jak když si v čechách dáš malý ;) Už se těším na český pivo.


18. října


Tim Huckaby on The Future of Software Now: NUI-A New Genre of UX
Zajimavá přednáška o tom kam se posunuly počítače za několik posledních let.
Dotyk, kinnect, iPad, ...


Mobile development on iOS, Android and WP7
Alain (Lino) Tadros
MonoTouch - Framework pro vývoj aplikací pro iPhone, iPad, iPod v C# .NET
MonoDroid - to semé ale pro android http://android.xamarin.com/
oba dva projekty jsou komerční
Pro android není kompletní dokumentace. Emulátor pod windows během ukázky spadl. Android má mnohem složitější UI oproti iPhonu a vývoj aplikací pro Android může být nepohodlný (moc zařízení)
Z pohledu .NET programátora který nemá zkušenost s vývojem pro iPhone ani pro Android to je asi otázkou kdo udělá lepší "plugin a emulátor" do VS 2011 a kdo vývojáři psaní aplikace nejvíce umožní.
V návaznosti na některou předchozí přednášku to může být třeba zrovna PhoneGap.
Nepředpokládám že by programátor .NETu si najednou koupil MAC a začal programovat pro iPhone v XCode (vývojové prostředí na MAC OS).

Z téhle přednášky jsem nabyl dojmu že android je pro programátory a lidi co mají rádi složité veci. Naopak iPhone a iPed jsou pro lidi kteří nejsou tak zruční, nebo ani nechtějí být. Chtějí mít věci tam kde čekají že je najdou. Šéfové, manželky, děti.
Z pohledu programátora je vývoj pro iPed, iPhone jednoduchý. Jsou to pouze dvě zařízení navíc hodně podobná (jedna je v podstatě zmenšenina druhé). Naopak u Androidu je velice pravděpodobné že zařízení bude veliká spousta a každé bude úplně jiné. A jak pro takovou platformu něco napsat? Programátore kup si nejpoužívanější zařízení a prostě si to otestuj.
Poslední diskutovaná platforma WP7. Microsoft jde klasicky zlatou střední cestou. Dělej zařízení jaké chceš, ale dodrž tyhle parametry. Zatím si pořád ještě nedovedu přesně představit tu skupinu lidí kteří budou telefony s WP7 používat ale dovedu si představit toto pořadí iPhone, WP7, Android.
Pro každou jmenovanou platformu  existuje nějaký market aplikací. Koupi SmartPhonu bych přirovnal ke koupi drahého auta. Pokud máte na koupi Hammru, určitě vám zbyde i na jeho provoz (benzín / nafta). Pokud si koupíte mobil který je levný, jeho OS je levný určitě budete chtít i levné aplikace (zadarmo). Čímž chci říct že z marketingového hlediska to vidím tak že androiďáci budou chtít vaši aplikaci zadarmo a majitel iPhonu si za ni rád zaplatí. Týpek s WP7 si stáhne demo a poku mu aplikace bude vyhovovat tak si ji možná koupí.
Silverlight není mrtvej. Důležité upozornění od přednášejícího


The session where Hello World is forbidden: Advanced Silverlight
Gill Cleeren
Duplex comunication - komunikace serveru s klienty. Pushování zpráv do klientů přes http - protože je HTTP založeno na request / response není možné aby server aktivně tlačil data do klienta. Toto chování se obchází tím že klient se cca po 10ms dotazuje serveru jestli pro něj něco nemá. I když  přednášející mluvil o nějaké nízko úrovňové implementaci tak si myslím že toto musí být docela náročné na datové přenosy.
Tato přednáška mě moc nezaujala. Její obsah se netrefil do oblasti kterou v SL používám. Mluvilo se v ní o Zabezpečené komunikaci, kterou si píšete sami. Pro její vytvoření můžete použít jen omezené množství portů v horním rozsahu někde kolem 4000 (nevím přesně).

Mělo se mluvit také o MEF ale asi na něj nepřišlo. V půce přednášky jsem se skočil podívat na přednášku o Tips & Tricks for Adopting HTML5 Today [Todd Anglin], který měl včera přednášku o HTML 5 na Tabletech. Za tu chvilku co jsem tam byl a Todd mluvil o GPS lokalizaci a přehrávači videa, nabyl jsem dojmu že tahle přednáška bude jen další obecná přednáška o HTML 5. Několik takových už v ČR bylo (WUG, ...)
Doufám že ta přednáška v Listopadu v Praze bude za něco stát.




Building Applications with HTML 5 and Javascript – a new perspective: Windows 8
Mihai Tataran [Rumunsko]

WinJS, Controls
WinJS je Javascript knihovna která obsahuje metody pro psaní aplikací v metrostylu pomocí HTML 5

HTML 5 and Javascript
aplikace pouze s HTML5 Doctype
Pouze jedno okno





Z téhle přednášky jsem se šel podívat na přednášku You REST, the REST write cutting-edge web and mobile apps with HTML5, jQuery and Silverlight for you  přesto že na to byly klucí dva tak jim to moc nešlo [Emil Stoychev] a měli pro mě nerozpoznatelný přízvuk. Na přednášce řešili podle souborů v projektu napojení Silverlightu a WP7 na datapázi pomocí oData a WCF services. Asi se na ni podívám z pohodlí obýváku od začátku (přišel jsem tam zhruba v půlce). Ještě sem se skočil podívat na přednášku Taking Care of a Cloud Environment: Windows Azure [Maarten Balliauw] ani tady není moc lidí. Zajímalo by mě co je zaujalo z těch ostatních přednášek ale už zbývá jen jediná a to něco o Test Driven T-SQL a to pro nás co používáme Entity Framework ... no nevím.
Na přednášce o Azuru přednášející řeší problematiku škálování. Není možné toto dělat automaticky, Azure totiž neví jaké parametry jsou pro nás důležité a podle kterých chceme aby se měnil počet instancí nebo jejich výkon. Nebo kolik instancí jsme maximálně schopni zaplatit ;). Ukazoval že toto je možné měnit v managementu Azuru v konfiguraci ale myslím že je to možné řešit z WorkerRole pomocí PowerShelu nebo nějakou vlastní aplikací. Třeba se k tomu ještě dostane.

DiagnosticAPI
WASABi rules XML - něco co saml škáluje podle vytížení CPU nebo času
Na každé přednášce o škálování všichni udávají jako příklad streeamování videa. Jako další příklad udávají cestovní kanceláře nebo prodejny lístků na koncerty.

No a teď fakt nevím na kterou přednášku jít .... samá přestávka na kafe včera sem měl dvě a pak se mi nechtělo spát. Koukal sem na show Jerryho Springra - to co tam řešili sem ani psát nebudu. Ale docela mě překvapilo s čím vším jsou lidi schopní vylézt před televizní kameru.

Tak jo vyhrála to přednáška


Information Overload
Scott Hanselman
Nějak sem si toho týpka oblíbil.
Fakt dobrá přednáška. Sice měla přednáška Level 100 ale sál byl plný. Jednoduché téma TimeManagement. Ale hodně dobře podané. Odráží se od vlastní zkušenosti. Uvádí zajimavé aplikace které mu šetří čas.
číst maily až po obědě
"Taling" třídit maily Neodpovídat a nepsat maily po pracovní době.

Pomodoro - technika založená na 25min dlouhém sprintu kdy se nenecháte ničím rušit od práce.
http://www.pomodorotechnique.com/

Windows Phone 7 Application - from start to market

Jesse Liberty
Přednáška o vytváření aplikací v XAMLu za pomoci Expression Blendu
Jesse nás požádal abychom si sedli blíž protože některé ukázky budou lépe vidět. Sedím v druhé řadě ale zatím mě teda moc nezaujal.
Stále se omílá Dormant a Thumbstone. Doufám že se mi o tom nebude zdát.
No nic začal dělat v Blendu tak jdu dávat pozor.
Ukazuje jak funguje StateManager a jak je mořné ho měnit na základě stisknutí tlačítka přímo v XAMLu



Obecně
Je docela zajimavý že je tu i docela dost žen. Zajímalo by mě jesi jsou to všechno programátorky.
Asi se začnu zajímat o to jak si udělat Microsoft MVP. Hafo speakrů to tu má. Dají se na to zbalit nějaký holky ? :-D
Někteří přednášející mají docela velké trička a velké brýle. Asi jsou to zasloužilý programátoři. Doufám že v jejich věku na tom budu líp.


Odkazy
Plán přednášek: http://devreach.com/Event/Schedule.aspx
Rezervace hotelu: http://www.booking.com/hotel/bg/holiday-inn-sofia.cs.html?sid=a624887fb0c343e57dbe0b4422f4afa5
Rezervace letenky: http://www.kralovna.cz/







pondělí 20. června 2011

UPC a veřejná IP adresa

Pokud chcete mít doma svůj vlastní web server, nebo mít možnost přihlásit se na vzdálenou plochu domácího PC. Je u některých poskytovatelů internetu (UPC, O2, ...) problém v tom, že Vám sice dají veřejnou IP, ale ta je dynamická a sem tam se změní.
Pokud by jste chtěli mít IP adresu statickou, počítejte s poplatkem min 100,- Kč / měsíc. Ke změně adresy naštěstí nedochází často, ale může se to stát třeba 3x za rok. (Výpadek proudu, upgrade HW jak na vaší straně nebo u poskytovatele).
Většina routerů umožňuje nastavit Dynamické DNS tato služba je pro dvě domény zdarma. Na adrese https://www.dyndns.com/ si můžete vytvořit účet a zvolit si název vaší domény, která bude odkazovat na vaši IP adresu internetové přípojky. Pokud dojde ke změně vaší IP adresy, router tuto změnu okamžitě publikuje na server dyndns a provede změnu DNS záznamu tak aby ukazoval na aktuální IP adresu.