Začali jsme sérii příspěvků na blogu o nastavení kompatibility a tajných možnostech, které mohou výrazně pomoci zlepšit výkon a chování vašich aplikací(QUERY BY FORMULA, Transactions a tečka a čárka). V tomto závěrečném příspěvku seriálu přineseme přehled zbývajících nastavení.
Zde je příklad struktury vytvořené před mnoha lety. Možnosti kompatibility jsou zakázány, což znamená, že běží zcela v režimu v17.
Mějte na paměti, že nastavení kompatibility umožňuje emulovat starší chování, ale nemá být trvalé. Poskytují vám prodlouženou dobu migrace, ale nečekejte příliš dlouho … časem možnosti migrace zmizí. Vzhledem k tomu, že nově vytvořené struktury neumožňují použití těchto starých nastavení, jsou testovány stále méně, což zvyšuje riziko neočekávaného chování.
Režim Unicode
Systémy OS X, Windows NT a 4D v11 (a novější) jsou určeny a pracují pouze v Unicode. Databázový stroj 4D pracuje pouze s Unicode. Jazyk podporuje režim kompatibility, ve kterém každý spuštěný řádek převádí text do/z Unicode, aby se emulovalo zpracování kódování MacRoman. A ano, to snižuje výkon. Za posledních 10 let bylo vydáno mnoho technických poznámek, zasedání 4D Summit a školení o tom, jak přejít na Unicode. Pokud jste tak ještě neučinili, je na čase s tím začít.
Při zapnutém Unicode byste měli povolit také nastavení kompatibility „Uložit metody jako Unicode“. Jakmile je tato funkce povolena, každá nová analyzovaná metoda se uloží v Unicode, což umožní používat rozšířené znakové sady jako literály ve vašem kódu. S ukládáním metod v Unicode není žádný problém z hlediska kompatibility, s výjimkou případů, kdy používáte staré zásuvné moduly pro přímé čtení/zápis metod (které jsou již dávno zastaralé).
A konečně (ale ROZHODNĚ ne v poslední řadě), zápis objektů je možný pouze v Unicode.
V objektech používejte místo formátu data ISO typ datum
Tato možnost je ve verzi v17 nová, více informací najdete v příspěvku na blogu o datech uvnitř objektů.
Použití nové architektury pro nasazení aplikací
Tato volba usnadňuje vytváření aplikací pouze pro čtení, a protože cesta k naposledy použitému serveru nebo datovému souboru již není uložena uvnitř aplikace, usnadňuje také nasazování aktualizací. Více informací najdete v tomto příspěvku na blogu.
Zabránění vypadávání dat, která nepocházejí ze 4D
Pokud je toto nastavení povoleno, vaše aplikace stále běží v režimu 4D v2004, kdy přetahování dat z jiných aplikací do 4D (kromě textu a obrázků) nebylo možné.
Pokud tak ještě nebylo učiněno, nastal čas pro podporu přetahování. Další informace naleznete v kapitolách Přetahování a správa vkládacího panelu v dokumentaci.
Nepoužívejte nový režim kontextových odkazů
Toto nastavení je tak staré, že si upřímně řečeno ani nepamatuji, zda emuluje 4D 6.0 nebo 6.5.
Pokud nepoužíváte webový server 4D, prostě ho zakažte. Pokud jej používáte, je povoleno a 15 let jste se svého kódu nedotkli, je čas na aktualizaci …
Odstranění „/“ na neznámých adresách URL
Tímto nastavíte webový server do režimu 4D v2003. Pokud je toto nastavení povoleno, je čas přepsat váš kód.
Automatické přiřazování proměnných
Pokud je povoleno: NALÉHAVÉ – PŘEČTĚTE SI TO HNED!
Jedná se o potenciální bezpečnostní problém, možná obrovský (v závislosti na vašem kódu).
Před 20 lety to byla komfortní funkce, která byla rychle nahrazena bezpečnějším přístupem (a vyžadovala více kódování).
Jsou-li povoleny, proměnné HTML použité ve formuláři HTML se automaticky mapují na proměnné 4D, pokud jsou definovány v Compiler_Web. Ačkoli je tam obvykle definována jen malá podmnožina proměnných, zůstává potenciální hrozba, že by tyto proměnné mohl přepsat hacker.
Lepší způsob přiřazování proměnných (zavedený ve verzi 4D 6.5) spočívá v použití příkazu WEB GET VARIABLES.
Společnost 4D důrazně doporučuje přepsat kód (pokud je to nutné) a toto nastavení vypnout.
… na závěr
Tímto závěrečným příspěvkem uzavíráme seriál o nastavení kompatibility, doufáme, že se vám líbil. Nyní se kochejte novými znalostmi o kompatibilitě a bavte se nastavováním svých aplikací tak, aby fungovaly bezpečně a optimálně!