دلفي 2005 مالجديد ؟
الفتره السابقه كنت مشغول تماما بالإضطلاع على المنتج الجديد Delphi 2005 , وللصراحه كان تاعبني البحث عن إجابه للسؤال : "هل تقدمت دلفي بعد ثوره .NET أم تراجعت للخلف ؟ "
(تفلايه) الإصدارة الجديدة ماكانت سهله أبدا , ولسا بدها تاخد وقت طويل لحتا تكتمل , بس رأيي الشخصي صار إيجابي بالنسبه للموضوع . والجواب بالنسبه إلي صار متوافق مع كتير آراء على الإنترنت بإنو الدلفي إستفادت بشكل كبير وأخدت دفعه عالحساب للأمام ..
مابعرف إذا كانت لعبه بورلاند بتضمين C# مع دلفي لعبه ذكيه ولا لاء , بس أنا مبسوط منها لإني كنت عم أستعد للإضطلاع على C# , وإجت على طبق من فضه .. معلش C# Builder منيحه , ولو أني كنت عم فكر MS C# ..
كمان بقيت دلفي تدعم تطبيقات Win32 .. وأضافه تحسينات Debugging (أفضل محرر شفره تعاملت معه منذ فترة طويله , بس بدو شويه تأقلم معه اول شي )
مكتبه هائله جدا من الأدوات مدعومه في VCL.NET , وعلى حد تعبير بورلاند أضخم مكتبه أدوات متوفره على .NET .
ضمان توافقيه كامله مع مايكروسوفت عند الحاجه بإستخدام WinForms بدل VCL.NET . وبالتالي تحسن كتير كويس لمشكله OS Integrity يلي كانت تعاني منها بشكل أو بآخر .
تحسينات على مستوى UnitTesting ,, للصراحه شغله ظريفه ومفيده
كل هاد مانو مهم ...
يلي خلاني قول أنو الدلفي أستفادت من .NET وتحسنت كتير هي الإضافات الجديدة على اللغه نفسها (Core) . وتحسينات حتى بدعم OOP يلي كان ممتاز أصلا ..
أنا طول عمري بحلم مثلا تكون الدلفي فيها ميزات متل Operator Overloading, أوfor..in loops أو Inlining شامل الخ ... من ميزات كانت حكر على لغات متل C++ ؟؟..
اليوم صار في مزايا موجودة بالدلفي بشكل فريد . لاحظ بند Delphi features not in C#/CLR
مشان ماكتر حكي كتير , رح قائمه مختصرة بالتحديثات الجديدة في Delphi 2005 , وجواب السؤال بيرجع لكل واحد منا :
Delphi 2005
Delphi Win32, .NET and C#
IDE, Language and RTL improvements
Better debugger, IIS-debugging
VCL and VCL.NET
ECO II, ASP.NET, Databases
Requirements, Source Control
Productivity improves!!
Unit testing
Source Version Control integration
Refactoring / SyncEdit
Help Insight
Error Insight
Structure View
History View
Tools Palette (components, files, snippets)
Language changes (D8/.NET)
Class static methods, constructors, vars, properties
Sealed and abstract classes, final methods
Strict private, strict protected
Nested types and consts
Class helpers
Operator overloading
Destroy maps to IDisposable
Language changes (D8/.NET)
Methods on records
Attributes support
Boxing, unboxing, autoboxing
Identifier escape (&) for reserved words
Unsafe code (improved)
Unmanaged exports (=reverse P/Invoke)
{$FINITEFLOAT OFF} for faster float code
Language changes (Win32 – undoc)
Class helpers
Strict private, strict protected
Class static methods and properties
Sealed and abstract classes
Final methods
Identifier escape (&) for reserved words
Language changes (Win32)
for..in loops
Inlined routines
Unicode identifiers (UTF8 and UCS2 source)
Some PIII/P4 optimizations (movzx)
Nested types and consts
Language changes (.NET)
for..in loops
Inlined routines
Unicode identifiers (UTF8 and UCS2 source)
Multi-unit namespaces
Rectangular dynamic arrays (array [,] of Type)
Virtual Library Imports (=Dynamic P/Invoke)
Forward declared record types
Multi-unit namespaces
MyCompany.MyModule.UnitA;
MyCompany.MyModule.UnitB;
Both end up in namespace MyCompany.MyModule
Important for integration with C# etc.
Wild-card uses (dropped)
– Uses MyCompany.MyModule.*
– Uses all required units from that namespace
for..in loops
for item in collection do statement;
Item must be declared with correct type
Static and dynamic arrays, strings, sets
RTL and VCL types (TList, TStrings, etc)
User defined types:
– GetEnumerator: TMyEnumerator method
– TMyEnumerator methods; MoveNext, GetCurrent
Inlining
$INLINE ON / OFF / AUTO
procedure MyRoutine; inline;
ON: inline directive (default)
OFF: don’t inline any routines
AUTO: auto-inline small routines (32 bytes)
Restrictions
– Size, complexity, visibility, order, asm
New compiler options
--docs: output XML documentation
--default-namespace
--depends: output unit dependency info
--platform:[x86|x64|IA64|portable]
--clrversion=v1.1.4322 (for 2.0, CE etc)
--unsafe[+|-]
Delphi features not in C#/CLR
Sets, Class references
Virtual class methods, Virtual constructors
Class helpers
Typeless var and out parameters
Type aliases, typed types
Default parameters
Resourcestrings, named constructors, etc
Win32 future features (AD)
Records with methods
Operator overloading for records
Multicast events
Parameterized types (=Generics)
Attributes support (?)
Productivity tools are cheap
New Delphi version
1-2 GB RAM
2-3 Ghz CPU
Lots of fast disk space
Two screens
Use keyboard-shortcuts
Use macro recorder
Hallvard Vassbotn
Senior Systems Developer, Infront AS
19 years professional programmer
Author for The Delphi Magazine
Technical Editor of Delphi books
My Blog: hallvards.blogspot.com