450 likes | 675 Views
Urnik. Sodobno orodje za sodobne potrebe. Win64. Novi računalniki imajo nameščen 64-bitni OS Poganja 32-bitne programe, a do kdaj? Dostop do > 4 GB pomnilnika Integracija v 64-bitni OS Shell extensions. Win64. Integer, Longint, Cardinal = 4 bajti (32 bitov) Int64 = 8 bajtov (64 bitov)
E N D
Win64 • Novi računalniki imajo nameščen 64-bitni OS • Poganja 32-bitne programe, a do kdaj? • Dostop do > 4 GB pomnilnika • Integracija v 64-bitni OS • Shell extensions
Win64 • Integer, Longint, Cardinal = 4 bajti (32 bitov) • Int64 = 8 bajtov (64 bitov) • NativeInt, NativeUInt = 4/8 bajtov (32/64 bitov) • System::NativeInt, ssize_t • System::NativeUInt, size_t • SizeOf(pointer) = SizeOf(NativeInt)
Win64 • Extended => Double • TExtended80Rec • Ni mešanja pascalske kode in zbirnika • Integriran razhroščevalnik • Možnost: razvoj na Win32, oddaljeno razhroščevanje na Win64
Win64 • Problemi • Pointer(i), integer(p) • DLL • ActiveX • Asm -> pascal • http://docwiki.embarcadero.com/RADStudio/XE5/en/Converting_32-bit_Delphi_Applications_to_64-bit_Windows • http://blog.marcocantu.com/blog/getting_ready_delphi_64.html
Unicode • ANSI (en znak = en bajt, 256 znakov) => Unicode (en znak = 4 bajti, max 1,114.112 »znakov«) • String = UnicodeString, Char = WideChar • SizeOf(Char) = 2 • System.Character • Izbirnozanamizje, obveznozamobilnenaprave • http://www.embarcadero.com/rad-in-action/migration-upgrade-center
Unicode • Sestavljena oblika • »ö« = U+00F6 • Komponentna oblika • »ö«= U+006F, U+0308 • Komponente (diakritična znamenja) lahko nizamo
Unicode • Kodiranja • UTF-32 (LE, BE) • UTF-16 (LE, BE) • UTF-8 • BOM • UTF-32LE$FF $FE $00 $00 • UTF-32BE$00 $00 $FE $FF • UTF-16LE$FE $FF • UTF-16BE$FF $FE • UTF-8$EF $BB $BF
Unicode • String[] • AnsiString • Kodna stran! • RawByteString = AnsiString($FFFF) • UTF8String = AnsiString(65001) • UnicodeString • WideString • UCS4String
Unicode • TEncoding • .ANSI, .ASCII, .BigEndianUnicode, .Unicode, .UTF7, .UTF8 ime16be:= TEncoding.BigEndianUnicode.GetString( TEncoding.Unicode.GetBytes(FIme));
Unicode • TField.AsString = ANSI • TField.AsWideString = Unicode
Slogi VCL • Options, Application, Appearance • TStyleManager • Lastni slogi • Tools, Bitmap Style Designer • Omejitve operacijskega sistema • Firemonkey podpira polno prilagodljivost
Object Pascal • for .. in • inline • Gnezdeni razredi • Razredne konstante, lastnosti, tipi, spremenljivke • »Pametni« zapisi (record)
Object Pascal • Pomočniki za razrede, zapise, vgrajene tipe • Operatorji za zapise • Generični tipi • Anonimne metode • Hierarhična imena enot
C++ • C++0x • delno, 32-bit • C++11 • 64-bit
Visual LiveBindings • Določanje »toka« podatkov v vizualnem orodju • Enosmerno ali dvosmerno • Samodejno izvajanje • Povezovanje podatkovnih virov z uporabniškim vmesnikom • Prototipiranje podatkov • Ločevanje uporabniškega vmesnika od kode (MVVM)
FireDAC • Komponente za delo z bazami v XE5 • FireDAC • dbExpress • dbGo • IBX • BDE
FireDAC • FireDAC = AnyDAC (DASoft) • Univerzalne komponente za dostop do podatkov • Delphi in C++Builder
FireDAC • Organizacija komponent podobna BDE • Neposredno urejanje podatkov (Live Data Window) • Paketno urejanje (Array DML) • Samodejno generiranje UPDATE stavkov • Poenoten API • SQL abstrakcija • Transakcije • Gonilniki se prevedejo v aplikacijo • TClientDataSet ni več potreben
FireDAC - gonilniki • Advantage Database • Firebird • IBM DB2 Server • InterBase • MySQL • Microsoft Access • Microsoft SQL Server • Oracle Database • PostgreSQL • SQLite • Sybase SQL Anywhere • DataSnap
FireMonkey Jezik Ogrodje 3D API Platforma Namizje Mobilno
FireMonkey • Forme in komponente, tako kot VCL • Slogi vgrajeni od vsega začetka • Oponašanje domorodnih aplikacij – slogi + domorodni gradniki • Animacije in učinki • 3D forme • Data-aware => Visual Live Bindings
Večplatformni razvoj • Prevajalniki – C++ • bcc32, bcc64, bccosx, bcciosarm, (bccaarm) • Prevajalniki – Delphi • dcc32, dcc64, dccosx, dcciosarm, dccios32, dccaarm
Mobilni pascal • String (Ansi, Wide, Unicode ...) • http://andy.jgknet.de/blog/2013/10/the-return-of-the-byte-strings/ • Prvi element ima indeks 0 • $ZEROBASEDSTRINGS • ARC (automatic reference counting) • [weak] • Pointer • Operatorjizarazrede
Koristniprogrami • TightVNC, www.tightvnc.com • TeamViewer, www.teamviewer.com • Synergy, synergy-foss.com • Reflector, www.airsquirrels.com/reflector/ • VMLite VNC Server, www.vmlite.com • Android Screen View, delphi.org/2013/09/android-screen-view/
Senzorji • Lokacija (TLocationSensor) • Premikanje (TMotionSensor) • Orientacija (TOrientationSensor) • TSensorManager • System.Sensors
Kretnje • TGestureManager • .Touch • .Gestures • .InteractiveGestures • http://www.cromis.net/blog/2014/02/true-multi-touch-support-for-delphi-xe5/
Standardne akcije • Tipkovnica • Kamera • Deljenje podatkov • Telefoniranje • Premikanje po vmesniku • LiveBindings
Dialogi • ShowMessage, MessageDlg, QueryInput • ShowModal(procedure (res: TModalResult)begin …end);
Prilagodljivo oblikovanje • Align, Anchors, Margins • TFlowLayout, TGridLayout, Tlayout • Form family • FormResize • CreateForm v .dpr • Omejitve orientacije naprave
Baze • dbExpress • Professional • [lokalno] InterBase, MySQL, SQLite • Enterprise, Ultimate, Architect • InterBase, Firebird, Oracle, MySQL, SQL Anywhere, Informix, SQLite • DataSnap, ClientDataSet
DataSnap • MIDAS • Odjemalec/strežnik • Večnivojske arhitekture • dbExpress • REST
DataSnap • Strežnik: Win32/64 • Odjemalec [RAD Studio]: Win32/64, OS X/32, iOS … • Odjemalec [proxy]: Android, BlackBerry, Windows Phone, iOS … • Odjemalec [JS]: brskalniki • Odjemalec [REST]: karkoli
DataSnapzamobilnenaprave • Večplatformna orodja • Specializirana orodja • JS = ASM ✔ RAD Studio ✔ proxy lib, REST ✔ JS proxy, REST
REST • REpresentational State Transfer • Nov REST odjemalec • REST razhroščevalnik
REST • Asinhrono izvajanje • Proxy • HTTPS • OAuth 1 in 2 • JSON