Vývojářský blog Jaromíra Nechanického

Poslední články

Období
RSS Feed
.NET Tips 2D 3D Aplikace ASP.NET C# C++ HTML+CSS Internet Javascript Office Silverlight SQL VB.NET VB6 VbNet.cz Vista VS Život, vesmír a vůbec Všechny články
Skoro rok jsem používal mobilní telefon HTC Desire s OS Android 2.2. Pro Android zároveň již nějakou chvíli vyvíjím aplikace. Dnes jsem dostal od Microsoftu zapůjčen HTC Radar. Jelikož mám z přechodu velmi rozporuplné pocity, a zároveň jsem podobný seriál nikde jinde nezaregistroval, rozhodl jsem se popsat subjektivní dojmy z výhod/nevýhod jednotlivých platforem. Zatím pouze z hlediska uživatele.
První věc, která mne “mile” překvapila byl update. Po prvním zapnutí se ihned začali stahovat updaty a telefon byl na dalších přibližně 30 minut nepoužitelný
. A to jsem si naplánoval jako náplň pracovní pauzy konfiguraci exchange. No aspoň mám pocit, že se o mne jakožto o zákazníka starají. S Desirem jsem za celý rok nezaregistroval jediný update (a že tam pár nevychytaností bylo).
Konfigurace pošty mi zas tak moc uživatelsky přívětivá nepřišla. Jelikož máme selfe-signed certifikáty, musel jsem je nahrát nejlépe na skydrive. Ten pak spustit z telefonu (aplikace pro skydrive je již přítomna) a certifikát nainstalovat. Pak již to bylo stejné, jako na Androidu, který si ovšem uměl odkliknout “povolit” přímo z nastavení.
Co mě nadchlo je rychlost a snadnost ovládání. Prvně Desire nebyl zrovna svižný. To se ale nedá porovnávat, neboť srovnávám s jinou generací telefonů. Rozdíl je ovšem markantní a to i oproti dalším zařízení, co mám k dispozici (NotionInk Adam, Dell Streak 7). Další moc povedenou věcí jsou “Huby”. Opravdu se mi líbí, že mám kontakty ze všech služeb na jednom místě, sms a MSN na jednom místě atd.
Ovládání WP7 má ale i své mouchy. První naprosto nepochopitelnou záležitostí je nemožnost přemapovat hardwarový “search button”. A to ani ne tak uživatelem, jako že si ho nemohou přemapovat aplikace. Bohužel to nedělají ani ty přímo vestavěné, které tímto omezením pravděpodobně svázány nejsou. Například “search button” v kontaktech ,místo aby vyvolal okno hledání, spustí bing.
[Pokračování článku]
Datum: 16. 12. 2011 14:28
Pokud chcete připojit VS debugger k již běžícímu procesu na windows mobile, musíte provést následující kroky:
- Připojit zařízení
- Spustit “Windows CE remote registry editor”
- Otevřít klíč HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/.NetCompactFramework
- Otevřít klíč “Managed Debugger”
- Pokud není, tak ho vytvořte
- Nastavit hodnotu “AttachEnabled” na 1
- pokud zde tato hodnota není, vytvořte ji jako novou DWORD value.
Vlastní připojení pak provedete stejně, jako u desktopové aplikace. V menu tools vyberte “Attach to process”, transport změňte na “Smart Device”, v ComboBoxu níž vyberte požadované zařízení a již je hotovo.
Nyní ovšem to nejdůležitější, proč o tomto postupu píšu. Možnost připojit se k běžícímu procesu je zajisté fajn, ale ne kriticky potřebná. Včera jsem ovšem narazil při přidávání řádků do SQL CE databáze (okolo 300) na výjimku: “Not enough storage is available to complete this operation”. Místa na zařízení ovšem bylo dost i na zahrání “Quake III” a co bylo nejvíce zarážející, pokud se aplikace napoprvé nahrála do zařízení z VS, tato chyba neproběhla. Nastávala tedy pouze při kopírování binárek aplikace do zařízení, případně při instalaci z CAB souboru. Nevím proč, ale povolení “remote debuggingu” oním registrem na zařízení chybu odstranilo. Pokud byste narazili na něco podobného, zkuste povolit AttachEnabled a třeba vše začne fungovat :-)
[Zobrazit článek]
Datum: 31. 3. 2010 11:43
Narazil jsem na zajímavý bug týkající se kompilace pro .NET Compact Framework. Čím více uděláte buildů, tím déle bude ten následující trvat. Vše má na svědomí tzv. “Platform verification task”. Více o této post-build akci a hlavně jak ji zakázat se dozvíte zde
[Zobrazit článek]
Datum: 7. 3. 2010 2:08
V projektu, na kterém právě pracuji je nutné mít dynamické načítání částí GUI. Pro jednotlivé části jsem vytvořil interface a jednotlivé implementace dal do separátních DLL. Problém nastal, když jsem chtěl bindingy naklikat v Blendu (asi jediná věc, na kterou je dobrý). Pokud v Blendu 3 otevřete standardní dll knihovnu, kterou jste při vytváření nedali jako WPF * library, Blend vám nezobrazí ani designer jednotlivých prvků, ale ani vlastnosti jednotlivých control. Řešení je jednoduché, nepraktické a trvalo mi celkem dlouho ho “vybingovat”.
Musíte otevřít csproj soubor daného projektu a do prvního elementu <PropertyGroup> musíte přidat child element:
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
CSPROJ soubor pak bude vypadat nějak takto:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<!--rest of PropertyGroup-->
</PropertyGroup>
<!--rest of csproj file-->
</Project>
[Pokračování článku]
Datum: 1. 3. 2010 3:07
V tomto díle si představíme, jak funguje objektová PipeLine v PowerShellu.
Pokud nejste s principe fungování PipeLine seznámení z jiných jazyků (například již zmiňovaný bash), pak vězte, že myšlenka je velmi jednoduchá. Jedná v podstatě o přeposlání výstupu z jednoho příkazu (CmdLetu) na vstup druhého příkazu (CmdLetu). Jak již sám název napovídá, můžete si PipeLine představit jako kdybyste propojili dva příkazy trubkou a tou trubkou posílali data. Jedná se o jednosměrnou komunikaci.
PipeLIne má značku | a její použití si ukážeme v následujícím příkladu. Tento příklad vypíše všechny txt soubory v adresáři a smaže je.
Get-ChildItem *.txt | Remove-Item
Výhodou je, že narozdíl od bashe, či většiny unixových shellů PowerShell je objektový. To znamená, že zatímco v linuxu vám skrz PipeLine “přiteče” do dalšího příkazu pouhý text, který musíte složitě parsovat a upravovat, v PowerShellu tečou objekty. K aktuálně zpracovávanému objektu se dostaneme pomocí speciální proměnné $_.Nejste-li si jistí, jakého typu je objekty, který vám přiteče, můžete použít příkaz get-member. Následující příkaz vypíše všechny vlastnosti souboru, které můžete volat/vypsat.
[Pokračování článku]
Datum: 24. 1. 2010 1:26
Strana 1 z 2 (článků: 9) 12Další »»»