Fussuk át először a legfontosabb újdonságokat lista szerűen, aztán rátérhetünk a részetekre:
- Visual Assist integráció a C++Builder IDE-be (kódkiegészítést, kódnavigációt és átnevezést biztosít a C++ nyelv számára).
- Egy jelentősen frissített CLANG-alapú C++ fordító előzetese Win64 számára, amely támogatja a legújabb C++ szabványos nyelvi jellemzőket, és jobb integrációt kínál a külső könyvtárakkal és a C++ kóddal.
- Delphi nyelvi kiegészítések, beleértve a többsoros karakterlánc literálokat is
- Skia-támogatás a FireMonkey-ben, amely nagyobb teljesítményt és minőséget kínál a grafika és a felhasználói felület vezérlőelemeinek renderelésében minden célplatformon
- Átdolgozott MDI és új tab-okat használó UI-architektúra a VCL számára
- Egy új FireDAC Query by Example (QBE) komponens a könnyebb adatszűréshez és egy új JSON varázsló a Delphi számára, hogy a népszerű JSON formátumban lévő adatokat objektumokra lehessen leképezni, hasonlóan ahhoz ahogyan azt az XML esetében is tesszük.
- Az intelligens azonosítók támogatása a RAD Serverben
- Több mint 2391 ügyfél kérés teljesítése
Újdonságok a C++ fejlesztőknek
Az új kiadás jelentős hangsúlyt fektet a C++Builderre és a (RAD Studio-ban is elérhető) C++ eszköztárra, azon belül is két kulcsfontosságú C++ fejlesztésre összpontosítva: a C++ fordítók és eszköztár modernizálására, valamint a termelékenység javítására a kódkiegészítéssel és a refaktorálás és a navigáció hozzáadásával a Visual Assist integrálásával.
A C++ toolchain frissítése is más szintre emelni a C++ támogatást. Az új verzió nemcsak a Clang új verzióját tartalmazza, hanem a C és C++ futásidejű könyvtárakat és az STL-t (a C++ Standard Template Library-t), valamint a linkelőt és a hibakeresőt is. Ennek a frissítésnek az a célja, hogy modern C++ szabványokat kínáljon, a legújabb könyvtárakban és projektekben található C++ kód futtatásának lehetőségével, harmadik féltől származó könyvtárak egyszerű használatával, a modern biztonságos kódolási szabványok kihasználásával, nagyobb teljesítményű alkalmazásokkal és kiváló hibakereséssel. További cél az olyan területek közvetlen javítása, mint a linkelés és az STL, valamint a Windows platform szabványok felé való elmozdulás, például a COFF és PDB objektum- és hibakeresési formátumok használata, ami potenciálisan sokkal szélesebb körű kompatibilitást tesz lehetővé más eszközökkel. Erről a funkcióról bővebben ebben az előzetes blogbejegyzésben olvashat: https://blogs.embarcadero.com/win64-clang-toolchains-in-rad-studio-12/.
A 12.0-ban ennek az új C++ eszköztárnak egy előnézeti változata érhető el (parancssori fordítóprogramként). Ígérete szerint a gyártó a meglévő C++ fordítókkal párhuzamosan tovább dolgozik ezen új C++ eszközlánc IDE-integrációján, valamint a RAD Studio Delphi könyvtárakkal való integráción, beleértve a VCL és a FireMonkey UX könyvtárakat is.
A C++Builder 12.0 másik jelentős újítása a Visual Assist technológia integrálásából származik, amely jobb kódkiegészítést, kódnavigációt és a refaktorálást kínál. Már most is rengeteg VA-funkció lesz elérhető, beleértve a szimbólumok és hivatkozások megtalálását, a projektvázlat megjelenítését, az implementációtól a deklarációig és vissza navigálást, valamint az átnevezési refaktorálást. A VA-ról a C++Builderben ebben a blogbejegyzésben olvashattok részletesebben: https://blogs.embarcadero.com/yukon-beta-blog-c-and-visual-assist-in-rad-studio-12-0/
Delphi újdonságok
Az új 12-es verzióban a Delphi fordító néhány apró, de hasznos újítást tartalmaz, köztük a hosszú karakterlánc literálok támogatását, és a többsoros karakterlánc literálok támogatását, melyek lehetővé teszik az SQL, HTML, JSON, XML és hasonló többsoros szövegek könnyebb beágyazását az alkalmazás forráskódjába. Erről a funkcióról bővebben ebben az előzetes blogbejegyzésben olvashat: https://blogs.embarcadero.com/yukon-beta-blog-delphi-language-modernizing-string-literals/. A Delphi 12 fordítója emellett weak type alias definíciót kínál a NativeInt számára, a továbbfejlesztett Win32/Win64 kompatibilitás érdekében, a NaN lebegőpontos számok összehasonlításának jobb támogatását, valamint a lebegőpontos kivételek letiltását minden platformon.
A platformtámogatás tekintetében a Delphi 12.0 kompatibilis a Android API 33-as szintjével, ami a Google követelménye a Play Store alkalmazások esetében.
FireMonkey és Skia alapok
Az UI könyvtárak tekintetében a RAD Studio 12.0 legjelentősebb fejlesztései mind a Delphi, mind a C++Builder esetében a nagyon népszerű cross-platform renderelő motor, a Skia FireMonkey integrációjából származnak. Ez a Skia4Delphi nyílt forráskódú projekt integrálásával valósul meg, de emellett Vulkan-támogatással, a Skia Shading Language effektek és szűrők támogatásával, WebP Encoderrel, nyomtatótámogatással és PDF-be nyomtatással is bővül.
A RAD Studio Skia-támogatás közvetlen API-kat, speciális UI-vezérlőket (TSkAnimatedImage, TSkLabel, TSkPaintBox és TSkSvg), valamint a FireMonkey UI-vezérlők UI-renderelésének automatikus leképezését tartalmazza a Skianak köszönhetően. Általánosságban elmondható, hogy a Skia javítja a renderelés minőségét és a teljesítményt. Ugyanazok a Skia UI-vezérlők a VCL ablakkönyvtárban is rendelkezésre állnak.
A Skia-támogatáson kívül, javították az Android-támogatást is. Hozzá lett adva az osztott képernyő támogatás, hogy a FireMonkey alkalmazás egymás melletti ablakban dolgozhasson iOS-en és Androidon egyaránt, és alaposan átdolgozták az egysoros TEdit és a többsoros TMemo vezérlők szövegbeviteli képességeit.
A FireMonkey-fejlesztés szempontjából az IDE másik jelentős fejlesztése egy olyan varázsló bevezetése, amely egyetlen SVG-képből kiindulva az Apple és a Google által megkövetelt összes felbontású ikonok és kezdőképernyők generálására képes, valamint az Android adaptív ikonjainak támogatása. Erről itt olvashattok bővebben: https://blogs.embarcadero.com/multi-device-icon-generator/
VCL korszerűsítés MDI-vel és tab-os UI architektúrával
A 12.0-ban a hangsúly a régimódi, de még mindig népszerű MDI (Windows Multi Document Interface) modell életben tartásán van. Az új kiadással az ügyfelek teljes HighDPI-támogatást alkalmazhatnak az MDI-alkalmazásokhoz, és VCL-stílusokat is alkalmazhatnak. Ezzel lehetőség nyílik arra, hogy megkerüljük azokat a platformproblémákat, amelyek abból adódtak, hogy a Microsoft az elmúlt években elhanyagolta az MDI támogatását.
Ezen kívül a RAD Studio 12.0 bevezet egy új, tab-alapú felhasználói felületet, mely megkönnyíti az MDI-ről való egyszerű átállást, vagy egy teljesen új modell létrehozását az új TFormTabsBar vezérlővel.
A VCL fejlesztések részeként az új kiadás számos új tervezőt vezet be, amelyek segítik a munka egyszerűsítését: Van egy új karakterlánc-listaszerkesztő, egy többsoros karakterláncszerkesztő, valamint gyors konfigurációs párbeszédpanelek a gombokhoz, rádiócsoportokhoz és panelekhez. E praktikus eszközök némelyike eredetileg a KSVC (Konopka Signature VCL Controls) része volt, és mostantól bárki számára elérhető, akár e kiegészítő vezérlőcsomag telepítése nélkül is.
Az alapvető RTL-definíciók mellett elérhető mostantól egy új egységkészletet a teljes Windows API fejlécével, amelyet Object Pascalra konvertáltak, hogy a Delphi fejlesztők számára megkönnyítsék minden olyan Windows platform API hívását, amelyet nem elérhető a komponenskönyvtárakban. Ez az API-konverzió 311 Delphi fejlécfájlt tartalmaz 41 MB kóddal, amely a Microsoft által biztosított teljes platform API-t lefedi.
Emellett új interfészekkel, tulajdonságokkal és eseményekkel javították az Edge böngésző integrációját, amelyek illeszkednek a platform WebView 2 vezérlőjének a legutóbbi kiadás óta végrehajtott fejlesztéseihez. A VCL további fejlesztései közé tartozik a rendkívül rugalmas TControl enumerátor, a Desktop Windows Manager (DWM) fejlesztései és a Double Buffering mód változtatásai.
Újdonságok a Delphi RTL terén
Számos fejlesztés történt más C++ Builder által használt Delphi core runtime könyvtárakban is. A FireDAC esetében hozzáadták a klasszikus QBE mód (Query-By-Example) támogatását, amely lehetővé teszi egy felhasználói felület fejlesztését az egyszerű adatszűrési kritériumok megadásához.
Ezen kívül a FireDAC komponensek néhány további funkciót is kínálnak a fejlesztők számára az alkalmazásbiztonság javításához, azáltal, hogy korlátozzák az SQL-parancsok típusát egy adott lekérdezésvezérlőhöz, megtiltják a többszörös parancsokat, és blokkolják a további SQL-módosításokat.
A RAD Studio 12.0 egy új JSON mapping varázslót is bevezet, amely képes JSON adatstruktúrának megfelelő osztályokat és megfelelő olvasási és írási kódot generálni a JSON objektumkészlet beolvasásához és egy új fájlba történő kiírásához.
RAD Studio IDE fejlesztések
Megújult a funkciótelepítő. A párbeszédpanelt teljesen újratervezték viselkedésében és felhasználói felületében is. A könnyebb használatot segíti elő, hogy az összes fontosabb telepítési lehetőség, beleértve az extra kiegészítőket is, mostantól egy oldalon található, ellentétben a korábbi többlépcsős kialakítással. Az új párbeszédpanel jobb hibainformációkat is kínál telepítési problémák esetén.
The IDE has now syntax highlighting in many secondary windows, like the call stack and structure view. There are also improvements in source code searches, in the way the navigation toolbar works, and in the use of multiple edit windows, plus many other small tweaks.
A szintaxis-kiemelés most már elérhető számos másodlagos ablakban is, mint például a call stack és a struktúra nézetben is. A forráskód-keresés, a navigációs eszköztár működése és a több szerkesztőablak használata is javult, valamint sok más apró finomítás is történt.
A Visual Assist integráció bevezetése mellett a C++Builder számára további fejlesztések is történtek a Code Insight által használt DelphiLSP támogatásban. Például a kódkiegészítés most már tartalmazza a nyelvi kulcsszavakat, és a kódsablonok a kiegészítés során a kód kontextuálisan megfelelő területein jelennek meg, valamint jobban támogatják a generikusokat és a tömbök vagy tömbtípusok kiegészítését.
A RAD Studio tovább bővíti az új ToolsAPI-t a kódszerkesztőhöz, így az ügyfelek és a külsős gyártók rugalmasabb bővítményeket hozhatnak létre az IDE-hez.
RAD Server és InterBase
A RAD Server legújabb újdonsága, egy REST szerver API hosting platform, olyan jelentős fejlesztéseket tartalmaz, mint például az intelligens azonosító modell bevezetése a hatékonyabb erőforrás-azonosításhoz, a nagyobb teljesítmény, az adatlapozás, a továbbfejlesztett munkamenet-hitelesítés és az általános minőségjavítás. Emellett a RAD Studio új verziója már tartalmazza a nemrég megjelent InterBase 2020 Update 5 fejlesztői és beágyazott kiadását is.
További anyagok:
- Hivatalos bejelentő Blog Post: RAD Studio 12 Announcement
- What’s New Docwiki Page: RAD Studio 12 What’s New
- Feature Matrix: Feature Matrix
- What’s New Web Page: What’s New in RAD Studio 12?
- Demó tár: GitHub