je třeba se v moderních aplikacích vyhnout dialogům?
<p>na posledním navrženém systému jsem použil několik dialogů. tato aplikace byla obchodní aplikací s mnoha databázovými tabulkami a pro zobrazení dat jsem použil mnoho datových sítí. bylo běžné, že jsem umístil tlačítko pod datovou mřížku s textem <code>create new item</code> nebo <code>create new group</code> nebo cokoli, co bylo uvedeno v mřížce. jinými slovy bylo tlačítko použito k vytvoření nového řádku v tabulce.</p><p>když uživatel klikl na tlačítko, byl vytvořen nový (modální) dialog s textovými poli a dole tlačítko pro odeslání. ale je to opravdu doporučený způsob, jak toho dosáhnout? nebo jak mám navrhnout aplikaci bez modálních dialogů?</p><p>pokud se jednalo o webovou aplikaci, pravděpodobně jsem uživatele poslal na novou webovou stránku obsahující formulář, ale to mi zní podobně jako modální dialog.</p><p>je třeba se v moderních aplikacích vyhnout dialogům? a jaké jsou alternativy?</p>
<p>obecně platí, že byste měli používat dialogová okna pouze tehdy, když musíte. je výhodné použít přímou manipulaci nebo zadávání nebo úpravy na místě, kde uživatel pracuje přímo na datových objektech reprezentovaných v primárním okně. v případě vytváření objektů má přístup úpravy na místě buď:</p><ul> <li> <p>tlačítko vložit, které vytvoří objekt a přidá do datové mřížky prázdný řádek pro zadání hodnot pole,</p> </li> <li> <p>trvalý prázdný řádek v dolní části datové mřížky (nebo jinde) - pokud do ní uživatel zadá hodnoty, aplikace vytvoří nový objekt.</p> </li> </ul><p>srovnávám tyto dva přístupy so v odpovědi na otázku „ <a href="https://stackoverflow.com/questions/667539/whats-best-when-inserting-into-a-table-view-and-add-button-or-a-blank-line/669176#669176">co je nejlepší při vkládání do zobrazení tabulky, tlačítka přidat nebo prázdný řádek?</a> “</p><p>ve srovnání s přístupy upravenými na místě mají dialogová okna následující nevýhody:</p><ul> <li> <p>další učení. přidá do aplikace okno, jeho záhlaví a tlačítka (např. ok a storno) a pole - pole, která již často existují na nadřazené datové mřížce, ale jsou uspořádána jinak. to postupně zvyšuje to, co se uživatelé musí naučit.</p> </li> <li> <p>posun pozornosti. vyskakování dialogu vyžaduje, aby uživatel přesunul pozornost na něco nového, což má určité náklady na opětovnou orientaci a aby se uživatel cítil méně pod kontrolou dat.</p> </li> <li> <p>další kliknutí. dialogová pole je třeba provést a zrušit. to vyžaduje alespoň jedno kliknutí navíc. naproti tomu s úpravami na místě může uživatel před uložením vytvořit více objektů (pokud ukládání není automatické).</p> </li> <li> <p>modalita. pokud musíte mít modální dialogové okno, odstraňujete flexibilitu uživatele a nutíte uživatele dokončit vytvoření nebo jej opustit. pokud pro dokončení vytváření potřebují další informace odjinud v aplikaci, jsou nuceni zahodit veškerou práci, kterou odvedli.</p> </li> <li> <p>riziko ztráty práce. jedním neúmyslným kliknutím na tlačítko storno se vrací jakýkoli vstup, který uživatel provedl, a dialogové okno se zruší, což uživatele nutí začít znovu. ztráta více vstupů jediným kliknutím není charakteristická pro správně navržená primární okna a primární okna obvykle podporují zpět.</p> </li> </ul><p>dialogy by měly být použity pro atomové akce, které vyžadují parametry; to je situace, kdy aplikace musí mít určitý vstup od uživatele, aby mohla akci technicky nebo logicky dokončit. pokud například vytvoření objektu vyžaduje hodnoty polí, které nelze přednastavit, je pravděpodobně vhodné použít dialog.</p><p>takový dialog vytvořit by měl pravděpodobně obsahovat pouze povinná pole, nikoli žádná nepovinná. nechte uživatele vyplnit všechna volitelná pole zpět na datové mřížce. z důvodu modality a rizika ztráty práce by dialogy měly být co nejjednodušší. jako hrubé pravidlo by uživatel měl být schopen dokončit vstup za přibližně 20 až 30 sekund - to je přijatelné množství práce, kterou musí znovu provést.</p><p>máte pravdu, že ve webových aplikacích je samostatná vstupní stránka do značné míry ekvivalentní modálnímu dialogovému oknu, kde je uživatel nucen dokončit nebo zrušit transakci dříve, než učiní cokoli jiného. to dává mnoha webovým aplikacím neohrabaný „nepřímý“ pocit ve srovnání s tekutým pocitem ekvivalentu přímé manipulace s stolním počítačem.</p>
Upřímně řečeno, já bych jít s sestavení .NET, jak se zdá být jednodušší řešení a těsněji obsahoval řešení, než zahájit nový proces. Některé z důvodů, proč jsem pocit, že způsob, jakým jsou tyto:


1. S nástrojem příkazového řádku, že jste na trh nový proces. Takže je to zcela samostatný proces ID běh a bude probíhat mimo rozsah a aplikační domény vaší stávající aplikace. Veškerá komunikace mezi aplikací a procesu bude přes hranice procesu a bude muset být provedeno buď s telefonem, jakési sdílené paměti, nebo nějaký jiný přístup, který by mohl být těžkopádný (zejména při řešení otázek).
2. Se zahájením nového procesu, jste v podstatě ztratí kontrolu nad tímto procesem z vaší aplikace. Pokud vaše aplikace zemře nebo se vypne, budete muset tento proces výslovně zabít - jinak budete muset úchyty zůstat otevřené soubory uzamčeny, atd.
3. Včetně sestavení .NET v aplikaci umožňuje vše spustit ve stejném kontextu (obecně), který umožňuje lepší komunikaci mezi složkami, snadnější ladění a odstraňování poruch (obecně), a jediný způsob je řízena.
4. Máte trochu větší kontrolu nad kódu. Zahájení procesu je v podstatě black-box - nemáte ponětí, co se děje uvnitř ní. Je pravda, že se sestavení .NET máte podobný black-box scénář, ale vzhledem k tomu, že je ve stejném procesu, může mít nějaké další vhled do toho, jak jsou hovory byly provedeny, kde jsou výjimky být hozen, atd. V podstatě mít trochu větší vhled do složky s sestavení .NET spíše než zahájit nový proces.


To jsou jen některé myšlenky z vrcholu mé hlavy. Doufám, že to pomůže. Máte-li dotazy, dejte mi vědět a já vám zpracovat mé odpovědi. Hodně štěstí!! Není lepší motivovat prodejce k lepšímu prezentování procenty z prodejů, než šmírováním? Obávám se, že v moderních operačních systémech to není bez hlubšího zásahu do systému možné. Můžeš ještě monitorovat spuštěnou aplikací, ale ne to, co v té spuštěné aplikací provádíš, protože aplikace jsou od sebe z bezpečnostních důvodů oddělené. Mám 6.02 a žádný problém, rada je v možnostech složky natlač nový vzhled ikon, ale dělat bych to nechtěl :O) Co zkusit vytvořit nový účet, jestli to tam bude zlobit. Nejsem si jistý, proč se to stalo, ale políčko jsem přidal byl ovládací prvek ActiveX, a můj dialog to zlomilo. Když jsem se objevil panel panelu nástrojů, a táhl zaškrtávací políčko odtamtud, fungovalo to dobře. Nejde, jen hodně složitě a omezeně. [https://appletoolbox.com/2016/10/want-imessage-win...](https://appletoolbox.com/2016/10/want-imessage-windows-pc/) Mne se taky bohužel sekala mobilní aplikace. A tak jsem radši přešel na PC verzi. Duolingo si z mobilu odinstaloval. Nechal jsem si v mobilu jen takové aplikace, které se na mém mobilním telefonu nesekají. 


Na Duoligu nebo i na Memrise je dobré to, že existuji i PC webovky a není třeba si tak nic instalovat. Jen je to možná o něco méně pohodlné. Je však pravda, že spíše se mi dělají dobře zápisky u PC.


Pokud by nepomohla další aktualizace Duolinga, tak bych ještě zkusil na mobilu promazat data v mezipaměti - někdy to pomáhá... :) Myslím, že chceš něco co nejde. Aby se webová stránka přepla do mobilní verze tzv. rezistentního zobrazení, musí být ta stránka taky tak napsána. Stránka, která je vytvořena jak pro normální monitor tak pro mobil nebo tablet má na začátku test na čem se stránka bude zobrazovat. Nedá se to tedy vynutit.Ahoj A nebo neumíš ani hledat na samotných stránkách? Jak teda chceš tvořit WEB? Umíš hledat v knihovně a listovat v knihách? Ještě nedávno bys musel zvednout zadek a jít trávit půlden v knihovně. Žádný internet. Tak se snaž sám, to máme hledat za tebe? Pohodlnost dnes nade vše. <p>zkuste si přečíst tento užitečný článek: <a href="http://digwp.com/2009/12/redirect-mobile-users-to-mobile-theme/">http://digwp.com/2009/12/redirect-mobile-users-to-mobile-theme/</a> </p> To by mě taky zajímalo. Chtěl bych odstranit konverzaci, ale jde jen skrýt.