Kompiler pro VS2005
Rad bych se zeptal i kdyz asi tezko neco takoveho bude na svete :/ Shanim nejaky kompiler, kterym bych mohl zkompilovat aplikace vyvijene ve VS2005 C# NetCF tak, aby nebylo potreba mit na PDA nainstalovane NetCF tj. aby se aplikace zkompilovala se vsemi knihovnami a vsim, co je potreba ke spusteni.
Jednocuha odpoved - na tohle zapomente.
Pro velky NF sice existuje utilitka, ktera NF prilinkuje primo k exe, ale je to nepodporovana PRASARNA, navic v CNF nic takoveho neni.
A budte rad - nedovedu si predstasvit, jak WM zarizeni s malou pameti museji ukladat a pracovat s nekolika MB exe...
//Edit- Chcete-li jedno exe, pouzijte C++
Na vetsine zarizeni se ale muzete spolehnout, ze CNF obsahuji - i jeho automaticka instalace pres AS je pomerne jednoducha.
Pro velky NF sice existuje utilitka, ktera NF prilinkuje primo k exe, ale je to nepodporovana PRASARNA, navic v CNF nic takoveho neni.
A budte rad - nedovedu si predstasvit, jak WM zarizeni s malou pameti museji ukladat a pracovat s nekolika MB exe...
//Edit- Chcete-li jedno exe, pouzijte C++
Na vetsine zarizeni se ale muzete spolehnout, ze CNF obsahuji - i jeho automaticka instalace pres AS je pomerne jednoducha.
hmmm no v native kodu se dost ztracim a kdyby nebyl potreba k developeni klavesnice (SIP) tak bych se v nem ani nehrabal :) me na NetCF vadi v podstate jen to hrozne dlouhe spousteni zkompilovaneho EXE :( treba muj programek TapTapSMS se spousi neco kolem 12s (PDA - CPU 520MHz, RAM 64MB, WM5 AKU3.5). Muzete pls nahodit nejaky odkaz popr. par rad, jak to zkratit a vubec jak moc se to da vubec zkratit?
No tady to vidím na problém v samotné aplikaci. Obecně je sice spouštění .NET kódu o něco pomalejší, ale rozhodně tam není overhead v řádech sekund. Jak jsem řek, problém bych viděl v samotném zdrojáku.
bkf1: Kdybych chtel byt jizlivy, rekl bych, ze kdyz neumite zabojovat s kodem v C++, tak napisete i horsi kod v C#. Ale jizlivy nebudu. :)
15 s je silene moc - nevim, co mate za aplikaci a co delate pri jejim startu. Nemate mnoha ukoly prehlcenou metodu OnLoad? Zkousel jste vytvorit a zobrazit nejdrive splash screen?
Pro "velky" NF existuje utilita ngen.exe, ktera vytvori "predkompilovany" nativni image a muze zrychlit dobu startu. Pro CNF ale bohuzel ngen neexistuje.
15 s je silene moc - nevim, co mate za aplikaci a co delate pri jejim startu. Nemate mnoha ukoly prehlcenou metodu OnLoad? Zkousel jste vytvorit a zobrazit nejdrive splash screen?
Pro "velky" NF existuje utilita ngen.exe, ktera vytvori "predkompilovany" nativni image a muze zrychlit dobu startu. Pro CNF ale bohuzel ngen neexistuje.
TO RSTEIN:
Ano je to tak ja jsem takovy pseudo-programator co ma rad RAD jako je Delphi, C++ Builder atd. ve kterych se daji velice rychle a jednoduse delat formularove programky coz jsou v podstate vsechny uzitkove programy... jinak zkousel jsem na test vytvorit ten nejjednodusi program v NetCF tj. prazdny Form a tlacitko na zavreni a stejne doba spousteni tohoto "programku" je 8s :( Jaka je vase doba spousteni a na jakem PDA?
PS: mam NetCF 2.0 SP2 a k instalaci na PDA jsem pouzil "NETCFv2.wm.armv4i.cab". Je divne ze po pouziti nekterych veci v kodu C# (napr. Microsoft.WindowsMobile.PocketOutlook) je nutne abych prilozil prislusnou knihovnu DLL (v tomhle pripade treba "Microsoft.WindowsMobile.PocketOutlook.dll") :( Reinstal celeho NetCF jsem uz zkousel...
Ano je to tak ja jsem takovy pseudo-programator co ma rad RAD jako je Delphi, C++ Builder atd. ve kterych se daji velice rychle a jednoduse delat formularove programky coz jsou v podstate vsechny uzitkove programy... jinak zkousel jsem na test vytvorit ten nejjednodusi program v NetCF tj. prazdny Form a tlacitko na zavreni a stejne doba spousteni tohoto "programku" je 8s :( Jaka je vase doba spousteni a na jakem PDA?
PS: mam NetCF 2.0 SP2 a k instalaci na PDA jsem pouzil "NETCFv2.wm.armv4i.cab". Je divne ze po pouziti nekterych veci v kodu C# (napr. Microsoft.WindowsMobile.PocketOutlook) je nutne abych prilozil prislusnou knihovnu DLL (v tomhle pripade treba "Microsoft.WindowsMobile.PocketOutlook.dll") :( Reinstal celeho NetCF jsem uz zkousel...
Na MDA Vario III jsem ted aplikaci, kde na formulari je treeview plnene z XML, spustil asi za 4 s. Opravdu ale dobu spusteni nepovazuji za nejaky vetsi problem - at se aplikace spusti jednou, kdyz bude narocnejsi a zustane v pameti - tak byly i puvodne aplikace pro Pocket PC navrhovany.
mimochodem - mate aplikace zkompilovanou v release konfigurace?
A k tem assembly Microsoft.*- distribuovat byste je nemel. Od WM5 jsou v a dresari Windows (jsou ulozeny v GAC a jejich prefix je GAC)...
mimochodem - mate aplikace zkompilovanou v release konfigurace?
A k tem assembly Microsoft.*- distribuovat byste je nemel. Od WM5 jsou v a dresari Windows (jsou ulozeny v GAC a jejich prefix je GAC)...
To ře to do výstupu přidává knihovny které nejsou součásti .NET CF je notmální. Jinak prográmek co říkáš se u mě otvírá cca 1sec. Testováno na Advantage a QTEK9000
Phacker: To sice je obecne pravda, ale zminovana knihovna Microsoft.WindowsMobile.PocketOutlook je beznou soucasti systemu a je i popssana v zakladnim SDK od WM 5.0.
Je veci OEM vyrobcu, zda CNF do systemu daji - a vetsina z nich to dela.
Obecne Microsoft razi tezi, ze pro beh CNF aplikaci neni potreba CNF instalovat a toho by se meli vyrobci drzet.
Compact .Net framework ne vetsine zarizeni s WIM5 je ( na HTC Artemis jsem nic neinstaloval), stejne jako je nyni CNF od zacatku na MDA Vario III.
Knohovny Microsoft* jsou take vetsinou distribuovany se systemem - nejsou soucasti CNF jen proto, ze jsou dostupne pouze od WM5 a patri mezi "MS Specific" veci...
Obecne Microsoft razi tezi, ze pro beh CNF aplikaci neni potreba CNF instalovat a toho by se meli vyrobci drzet.
Compact .Net framework ne vetsine zarizeni s WIM5 je ( na HTC Artemis jsem nic neinstaloval), stejne jako je nyni CNF od zacatku na MDA Vario III.
Knohovny Microsoft* jsou take vetsinou distribuovany se systemem - nejsou soucasti CNF jen proto, ze jsou dostupne pouze od WM5 a patri mezi "MS Specific" veci...
[QUOTE="RStein"]mate aplikace zkompilovanou v release konfigurace?[/QUOTE]
mam... v cem by jeste mohl byt zakopany pes? jako rozdil vasi 1s a mych 8s je proste propastny... jinak mam uzivatelskou ROM ve ktere urcite standartne zadne knihovny NetCF nebyly a v originalni ROM uz vubec ne...
mam... v cem by jeste mohl byt zakopany pes? jako rozdil vasi 1s a mych 8s je proste propastny... jinak mam uzivatelskou ROM ve ktere urcite standartne zadne knihovny NetCF nebyly a v originalni ROM uz vubec ne...
Uzivatelskou ROM? To znamena "zbastlenou" nadsenci? :)
Pak se nedivte, ze nemate nektere veci v ROM...
Plneni treeview mi trva asi4 s (ne 1) . ale jedna se opravdu o neoptimalizovane cteni XML.
Nebezi Vam na zarizeni nejake procesy, co pravidelne vytezuji Mio? Mate dostatek pameti?
Pak se nedivte, ze nemate nektere veci v ROM...
Plneni treeview mi trva asi4 s (ne 1) . ale jedna se opravdu o neoptimalizovane cteni XML.
Nebezi Vam na zarizeni nejake procesy, co pravidelne vytezuji Mio? Mate dostatek pameti?
A jeste me napadlo, ze muzete zkusit u sve aplikae perf. monitor - i kdyz casy startu a duvody prodlev z nej nevyctete
"
Při vývoji aplikace pod compact .Net Frameworkem nám chybí základní statistiky o běhu aplikace, respektive o výkonnosti běhového prostředí. Alespoň základní výkonnostní ukazatele (Performance Counters) zjistíme po přidání klíče HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework\PerfMonitor do registrů. Pod nově vytvořený klíčem přidáme novou položku typu DWORD, nazveme ji Counters a její hodnotou bude číslo 1.
Pak můžete spustit jednu CF aplikaci, simulovat běžnou práci uživatele a po ukončení aplikace analyzovat nově vygenerovaný soubor Mscoree.stat v kořenovém adresáři PDA. "
Tohle jsem psal jako tip pro 1.1. - ve 2.0 se myslim tvori soubor.stat
"
Při vývoji aplikace pod compact .Net Frameworkem nám chybí základní statistiky o běhu aplikace, respektive o výkonnosti běhového prostředí. Alespoň základní výkonnostní ukazatele (Performance Counters) zjistíme po přidání klíče HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework\PerfMonitor do registrů. Pod nově vytvořený klíčem přidáme novou položku typu DWORD, nazveme ji Counters a její hodnotou bude číslo 1.
Pak můžete spustit jednu CF aplikaci, simulovat běžnou práci uživatele a po ukončení aplikace analyzovat nově vygenerovaný soubor Mscoree.stat v kořenovém adresáři PDA. "
Tohle jsem psal jako tip pro 1.1. - ve 2.0 se myslim tvori soubor
Mno bez teto ROM "zbastlenou" nadsenci (resp. jednim spanelem) tak by bylo Mio absolutne nepouzitelny kram, protoze oficialni ROM jsou asi na takove urovni jako "pojd kamo zahod tu lopatu a jdem delat ROM" :D Mno takze je jasne ze ROM (oficialni/neoficialni) obsahuje co se tyce WM5 jen to uplne zakladni :/ Jinak nemam zadny procesy na pozadi, RAMky mam 35MB a ROMky mam jeste 28MB (pouzivam lokalizaci od SunnySoftu ale bez ni je to uplne stejne co se tyce rychlosti spousteni aplikaci v NetCF) ;)
Jinak bezi mi gwes.exe, filesys.exe, device.exe, shell32.exe, services.exe, cprog.exe, connmgr.exe, SDDaemon.exe, tmail.exe, srvtrust.exe, internat.exe, poutlook.exe, sms_alert_fix.exe (oprava prijimani SMS pri "spicim" stavu - po vypnuti neni zmena), allinone.exe (panel malych ikonek rychleho spusteni vpravo dole - po vypnuti neni zmena) a NK.exe.
Jinak bezi mi gwes.exe, filesys.exe, device.exe, shell32.exe, services.exe, cprog.exe, connmgr.exe, SDDaemon.exe, tmail.exe, srvtrust.exe, internat.exe, poutlook.exe, sms_alert_fix.exe (oprava prijimani SMS pri "spicim" stavu - po vypnuti neni zmena), allinone.exe (panel malych ikonek rychleho spusteni vpravo dole - po vypnuti neni zmena) a NK.exe.
Tak to vam nezavidim - vypada to, ze ma MIO mizerny vykon ve vsech smerech.
Zkuste aplikaci sledovat chvili profilerem. No a ten nativni kod mate porad v zaloze. ;)
Zkuste aplikaci sledovat chvili profilerem. No a ten nativni kod mate porad v zaloze. ;)
mno spise bych to videl ciste na problem NetCF, jeho knihoven a vubec jeho integrace do systemu na Miu... a ten profiler vezmu kde?
PS: s native me nestraste jeste mam porad nocni mury z toho jak jsem zoufale volal o pomoc se zakladnimi vecmi ovladani klavesnice v sample DvorakSip ktery je u WM5 SDK :mad: nakonec jsem si na to samozrejme musel prijit sam zhe... :dead:
PS: s native me nestraste jeste mam porad nocni mury z toho jak jsem zoufale volal o pomoc se zakladnimi vecmi ovladani klavesnice v sample DvorakSip ktery je u WM5 SDK :mad: nakonec jsem si na to samozrejme musel prijit sam zhe... :dead:
Viz muj tip vyse - pridejte polozku do registru a spustte aplikaci.
A k nativnimu kodu- ted jsem nasel jen jednu vasi trochu zmatene (s prominutim ;) ) formulovanou otazku k SIPu, na kterou se dalo tezko odpovedet bez znalosti kodu. Chapu ale, ze pro cloveka, co v C++ nepise, je to proti C# dost nepohodlne kodovani. ;)
A k nativnimu kodu- ted jsem nasel jen jednu vasi trochu zmatene (s prominutim ;) ) formulovanou otazku k SIPu, na kterou se dalo tezko odpovedet bez znalosti kodu. Chapu ale, ze pro cloveka, co v C++ nepise, je to proti C# dost nepohodlne kodovani. ;)
ok zkusim ;) jinak ohledne klavesky pokud myslite tohle https://www.ce4you.cz/forums/view_topic.asp?t=25793 tak z toho se dalo dost dobre pochopit o co mi jde ;) je tam prilozeny i hotovy programek (jak jinak nez v C# :) ) podle ktereho se to dalo pochopit jake funkce potrebuju resit ;) tedka uz to ale vim tak me jenom ceka "mraveniste" (tj. mravenci prace :) ).
Presne to jsem mel na mysli - omlouvam se, kod jsem prehledl, jinak bych se do nej podival - reseni uz ale stejne mate. :)
Jen tak pro doplneni k rychlosti spousteni aplikaci programovanych NetCF... tedka na svem Miu A701 provozuju velice kvalitni WM6 ROM (5.2.1933 - build 18533.0.7.0) puvodem z nejakeho HTC a spusteni jednoduche aplikace programovane v NetCF trva tak kolem te 0,5 - 1 s, jak tady uvadeli nekteri majitele HTC PDAcek. Skutecne zalezi, jak je NetCF do systemu integrovano a kdyz neni moc dobre integrovano, tak zadna instalace NetCF (ani vyssiho treba 3.5) nepomuze.
[QUOTE="bkf1"]Skutecne zalezi, jak je NetCF do systemu integrovano a kdyz neni moc dobre integrovano, tak zadna instalace NetCF (ani vyssiho treba 3.5) nepomuze.[/QUOTE]
Metadoplneni - Doplneni k doplneni :) O nejakem stupni integrace se neda mluvit - proste na vykon CLR (vcetne GC) ma vliv celkova rychlost a vyladenost ROM.
NetCF aplikace je vzdy aktivovana stejne - tzn., ze na pocatecni start aplikace ma nejvetsi vliv rychlost vytvoreni hostitele CLR v procesu a rychlost kompilace IL instrukci).
A samozrejme novejsi verze CNFmuze mit vliv na rychlost spousteni aplikaci i na horsich ROM (daji se poznat na jakekoli ROM rozdily mezi CNF 1.0 a CNF 3.5).
Metadoplneni - Doplneni k doplneni :) O nejakem stupni integrace se neda mluvit - proste na vykon CLR (vcetne GC) ma vliv celkova rychlost a vyladenost ROM.
NetCF aplikace je vzdy aktivovana stejne - tzn., ze na pocatecni start aplikace ma nejvetsi vliv rychlost vytvoreni hostitele CLR v procesu a rychlost kompilace IL instrukci).
A samozrejme novejsi verze CNFmuze mit vliv na rychlost spousteni aplikaci i na horsich ROM (daji se poznat na jakekoli ROM rozdily mezi CNF 1.0 a CNF 3.5).
[QUOTE]jinak zkousel jsem na test vytvorit ten nejjednodusi program v NetCF tj. prazdny Form a tlacitko na zavreni a stejne doba spousteni tohoto "programku" je 8s[/QUOTE]
Je to nejspíše proto, že tvůj .NET CF není v ROM a na tvém zařízení neběží jiný .NET CF program. Do paměti RAM se v tom případě musí načítat plno knihoven běhového prostředí.
Soubory v ROM v sekci Modules mají pevně danou adresu a není potřeba je při spuštění nahrávat.
Je to nejspíše proto, že tvůj .NET CF není v ROM a na tvém zařízení neběží jiný .NET CF program. Do paměti RAM se v tom případě musí načítat plno knihoven běhového prostředí.
Soubory v ROM v sekci Modules mají pevně danou adresu a není potřeba je při spuštění nahrávat.