سؤال

أي نصيحة حول كيفية ترحيل القائمة دلفي 7 تطبيقات الأعمال إلى .NET 2.0 في Visual Studio 2005 ؟

Visual Studio 2005 تم شراؤها من الشركة تريد أن تتحرك بعيدا عن بورلاند/Codegear الأدوات.

التطبيق هو واحد عميل ملقم قابل للتنفيذ ، وذلك باستخدام عدد من 3rd الطرف الضوابط واجهة المستخدم و Crystal reports 10 الإبلاغ.

هناك تجارية واسعة المنطق تنتشر عبر دلفي أنواع في واجهة المستخدم فضلا عن العديد من SQL Server 2000 الإجراءات المخزنة.نقل الكثير من تخزينها proc المنطق في .صافي الطبقات هدف آخر.

للحد من تأثير على العملاء ، قطعة قطعة النهج بدلا من استكمال إعادة كتابة/التحويل سيكون من المفضل ، إذا كان ذلك ممكنا.شكرا مقدما.

[تحديث] وقد أي شخص لديه أي خبرة جيدة أو سيئة أو قبيحة ، باستخدام تمكنت VCL لهذا النوع من السيناريو ؟

هل كانت مفيدة؟

المحلول

وعملت في الشركة التي تم المهاجرة من دلفي لبرنامج الأغذية العالمي / صافي حوالي 2007. لقد حاولنا قطعة قطعة النهج. كان مؤلمآ. كنا نجري دائما إلى الأخطاء الطفيفة في إمكانية التشغيل المتداخل. الاتصال من دلفي إلى WPF أو WinForms عناصر والظهر مؤلمة. إذا كانت الضوابط UI المختلفة ونوافذ دعوة التطبيق الخاص بك على كل الكثير غيرها، أعتقد أنك سوف تواجه آلام النمو كبيرة.

إذا كنت تستطيع أن تفعل ما يدور من حديث في آن واحد وأود أن أذهب لذلك. إن لم يكن، وتقسيم للخروج أجزاء من التطبيق التي هي بذاتها أو لديك الحد الأدنى من التفاعل مع بقية التطبيق.

وأود أن أقترح أيضا القفز إلى صافي 2008. لماذا اختيار التكنولوجيا التي هي تقريبا 4 سنوات (VS 2005)؟ وأعتقد أنه هو قرار تجاري جدا، سيئة للغاية لاختيار القفز إلى صافي 2.0 عند صافي 3.5 غير مستقر للغاية. ان سبب وجيه الوحيد الذي سيقدم من أي وقت مضى إلى الإدارة لصافي 2.0 في دعم نظام التشغيل Windows 2000. هل لا يزال لديك عملاء على WIN2K؟ سوف لا يزال لديك عملاء على WIN2K في الوقت التحويل اكتمال؟ هل لديك عملاء لا يمكنك الحصول على للانتقال إلى XP أو فيستا؟ صافي 3.0 و 3.5 غير معتمدة في WIN2K. وهذا هو الجانب السلبي الوحيد الذي يمكنني أن أفكر.

وصافي 3.5 و C # 2008 عرض كبير من المزايا لشركتك. لديك عدد من ميزات اللغة التي من شأنها تسريع تطوير الوقت مقارنة مع 2.0 C #. لديك برنامج الأغذية العالمي، وهو يتفوق على WinForms عناصر. أنا أزعم أن تتمكن من تطوير نفسها، batteleship الرمادي ويندوز ستحصل عليه في WinForms عناصر مع برنامج الأغذية العالمي، وتطوير بشكل أسرع، وعندما تريد بعض العين الحلوى التي سوف تستخدم التكنولوجيا التي يمكن أن توفر بسهولة. إذا كنت تعلم منصة النوافذ الجديدة لهذا التحويل، لماذا لا تستثمر في تعلم أشياء جديدة؟

وأيضا، من فضلك قل لي أنك لم فعلا شراء VS 2005. يمكنك شراء <لأ href = "http://msdn.microsoft.com/en-us/subscriptions/default.aspx" يختلط = "نوفولو noreferrer "> رخصة MSDN العالمي للحصول على حول نفس التكلفة، والحصول على كل منتج الصلة بالتنمية تقدم Microsoft. شرائه من 3rd الطرف وسوف تحصل على خصم جيد.

وعذرا إذا جئت قبالة سلبية. مع خالص التقدير، حظا سعيدا على الهجرة. لدي فقط ذكريات الماضي عندما أفكر في الاضطرار الى التخلي عن كل الأشياء الجيدة في صافي 3.5.

نصائح أخرى

وهذا يبدو وكأنه فكرة سيئة حقا للي.

هل هناك أي ميزة التكنولوجية للمنتج الخاص بك لتكون في .NET، أو هو في الغالب قرار سياسي ليكون متجر مايكروسوفت؟ لخدمة العملاء، دلفي صعبة جدا للفوز. لقد استعملت VS2005 / 8 و هو فعلا وحقا حقا وبصدق ليست جيدة كما دلفي لتطوير Win32 و. ولكن إذا كنت تريد الذهاب إلى الهجرة إلى شبكة الإنترنت على الطريق، ثم VS لديها مزايا محددة.

إذا اهل الأعمال العنيد ببساطة يرفضون استخدام دلفي بعد الآن، ثم KiwiBastard هو الصحيح، IMO. تحويل الأول إلى Delphi.NET، ثم تهاجر منها إلى VS2005. أو عام 2010، لأن ذلك هو وضع جدول زمني أكثر واقعية:)

وعملت سابقا في الشركة التي يريد التحول من دلفي إلى C # .NET ل. NET هو كل شيء <م> بارد وبراقة . أحضروا في بعض المزيد من المطورين الذين لديهم الكثير من C # الخبرة وانتهى الأمر أخذ 3 مرات المطورين مرتين طالما إلى ميناء التطبيق إلى C # ثم فعلت لكتابة هذه هي المرة الأولى في دلفي لبعض جدا ROI إضافية (عدد قليل تم إضافة ميزات جديدة في هذه العملية). بالإضافة كانوا عملاء غير راضية عن أداء التطبيقات أو واجهة المستخدم.

وبعد دراسة الحالة دراسة حالة تبين أن إعادة كتابة هي فكرة سيئة . (طرف القبعة ل kogus )

وإذا كان يجب الانتقال إلى صافي (نعم، أنا أعرف، أنت لم يتخذ القرار، شخص مع معلومات أقل فعل) ثم أود أن أقترح استخدام <لأ href = "HTTP: / /www.codegear.com/products/radstudio "يختلط =" نوفولو noreferrer "> دلفي ل. NET أو <وأ href =" http://www.remobjects.com/oxygene "يختلط =" نوفولو noreferrer " > RemObjects الأكسجين . وهذا الأخير هو المكونات في برنامج Visual Studio. ولكن حتى مارك هوفمان، وقال كبير مهندسي برامج الكمبيوتر من RemObjects الأكسجين انها فكرة سيئة ل ترحيل تطبيق العمل على أكمل وجه لصافي "لمجرد".

إذا كنت تستطيع الانتظار لدلفي بريزم، الذي هو أيضا البصرية ستوديو الإضافية، ومن المتوقع أن يكون في وقت لاحق هذا العام.

والتحويل التدريجي يعني تغيير دلفي رمز الأصلي لاستخدام COM وبالتالي فإن الجانب. NET يمكن أن تتعايش مع دلفي (أو ربما باستخدام بعض التقنيات الأخرى - من الصعب القول)

إذا كنت تستطيع، وأنه قد يكون من الأسهل لتحويل التطبيق إلى Delphi.NET أولا، ثم على الأقل البتات. NET سوف تكون قادرة على التواصل أسهل قليلا.

ومجرد التفكير.

الابتعاد عن CodeGear/Borland أدوات أساسا يلغي أي دلفي .صافي أساس الحل إجمالي إعادة كتابة التطبيق الخاص بك.

أرجو إجابتي أدناه تساعد في اتخاذ القرارات الخاصة بك.

من تجربة (بعد كتابة تطبيق دلفي مع فريق من الناس) فإنه يتلخص إما من اثنين من الخيارات أدناه.

ولكن أول تحذير:سوف يستغرق ما لا يقل عن مجموع جهود التنمية استغرق كتابة الحالي دلفي التطبيق.

في حالتنا هذا الجهد كان هناك ما يبرر منذ القديم دلفي التطبيق (وهو في الواقع كان Kylix) كان نهاية الحياة لأسباب مختلفة.لدينا كتابة يتألف من قسمين:كتابة محدودة مع وظائف اضافية المتبعة من قبل الكثير من وظائف إضافية (تصميم الجزء الأول بالفعل أخذت الجزء الثاني بعين الاعتبار).

العودة إلى الخيارات الخاصة بك:

1 - مجموع كتابة في C# أو VB.NET في Visual Studio

2 - جزئية إعادة استخدام القائمة الخاصة بك دلفي طبقة رجال الأعمال البرمجية باستخدام الأكسجين من RemObjecs (Visual Studio البرنامج المساعد مع الجملة التي هي مشابهة جدا دلفي جملة).CodeGear سوف نقدم المنشور قريبا (على الأرجح قبل نهاية عام 2008) ، والتي سوف أيضا الاندماج في Visual Studio.

لأن .صافي الوصول إلى البيانات واجهة المستخدم هي مختلفة تماما من دلفي ، عليك أن تفعل هذه من الصفر (سواء بالنسبة السيناريو 1 و 2).Visual Studio 2008 تقدم الكثير من الفوائد هنا على Visual Studio 2005.

لا يوجد مثل هذا الشيء كما فعل هذه الهجرة تدريجيا, منذ كنت لا منصة كاملة التغيير هنا هو كل شيء أو لا شيء النهج.

كل السيناريو سوف يستغرق قدرا كبيرا من الوقت (على الرغم من أن لديك دلفي تجربة, الحصول على نفسك معتادة في .صافي العالمي سوف يستغرق وقتا طويلا).

Visual Studio يمكن أن تتفاعل مع تقارير Crystal, و سارت الامور بشكل جيد مع SQL Server.

منذ 2008 Visual Studio يوفر الكثير من الفوائد (ليس فقط .NET framework 3.5 ولكن أيضا الإنتاجية الحكمة), من الأفضل أن تذهب مع ذلك.على الجانب UI تحتاج إلى جعل متوازن الاختيار بين WinForms (ويعرف أيضا باسم Windows Forms) و نوافذ العرض مؤسسة (ويعرف أيضا باسم برنامج الأغذية العالمي).

إذا كان هو 1-إلى-1 كتابة ، قد تريد أن العصا مع WinForms كما هو مألوف ما لديك.ربما تحتاج إلى استخدام بعض 3rd الطرف المكونات للحصول على واجهة المستخدم الخاصة بك ؛ DevExpress هو خيار جيد هنا لأنها قد مكونات مماثلة في دلفي و Visual Studio.

ولكن إذا كنت تريد أن تذهب في المستقبل الحلوى العين ، فإنك قد تنظر في WPF.تكون على استعداد للحصول على منحنى التعلم حاد من هنا WinForms كما أنها مختلفة جدا عن ما كنت تستخدم.

إذا كنت ترغب في البقاء مع دلفي ، قد ترغب في النظر في VCL الويب (المعروف أيضا باسم IntraWeb) و في دلفي 2009 (لقد تغير الكثير في دلفي العالم منذ دلفي 7 تم الإعلان عن 6 سنوات).

حظا موفقا في اختياراتك!

--يروين

وأود أن أقترح النظر في هيدرا من RemObjects. انها اساسا ينتقد واجهة كوم لك ويوفر نمط مراقب للتفاعل بين التطبيق الخاص بك دلفي وصافي. هل يمكن أن يكون أشكال صافي تظهر على لوحات داخل التطبيق دلفي الخاص بك. وهذا يوفر مسار الهجرة لطيفة حيث يمكنك استبدال الخاص بك دلفي شفرة شيئا فشيئا كما ترحيل ظائف لصافي.

وبالنسبة لي السؤال سيكون: اللغة التي يتم تستخدمه؟ أنا لا أمل C # و لا VB.Net. (مع كل السياسة حرج في هذا نموذج التطبيقي هذا ليس واضحا بأي وسيلة.)

والقادم ربما كنت تستمع هو أن هناك محولات هناك من شأنها أن تساعدك على القيام بذلك. نحن فقط ذهبت من خلال تقييم هذه المحولات (دلفي 7 إلى C #) وكانت جدا! بخيبة أمل.

هل لي أن أقترح حلا وسطا؟ ماذا عن دلفي بريزم؟ ومن دلفي في VS2008. بالتأكيد، لا يزال لديك دلفي وبالتالي Codegear، ولكن عليك أيضا VS (كما لشركتك تتوقع لك).

لقد كان هناك تقرير علمي من تحول ناجحا من مشروع دلفي 1.5 مليون خط لC # التي كتبها جون برانت، دون روبرتس وآخرون. وكتب محلل دلفي، وC # مولد والكثير من قواعد التحول على AST. تمتد تدريجيا مجموعة من القواعد، والقيام بناء اليومي، والكثير من الاختبارات وحدة، وبعض إعادة كتابة أجزاء دلفي الصعبة سمحت له مع فريق من 4، من بينها بعض المطورين الأصلي، مع عميقة دلفي و C # المعرفة، وترحيل البرنامج في غضون 18 شهرا. جون برانت ودون روبرتس كونها مطوري الأصلي للمتصفح إعادة الهيكلية وSmaCC عدة بناء المجمع، وكنت من غير المرجح أن تكون قادرة على الانتقال بهذه السرعة.

وعلى الرغم من ذلك كان استثمارا كبيرا، وليس في أي مكان "نفس حجم التطور الأصلية. لاحظ الباحثون أن إعادة كتابة واضحة، من دون أدوات أو مع أداة طلقة واحدة، كما لاحظ جيرون، من المحتمل جدا أن يؤدي إلى ذلك، خصوصا إذا ما اتخذت المتطلبات الجديدة بعين الاعتبار.

فعلت

والكتاب refactorings على نطاق واسع في حين أن البقاء على نفس المنصة لمشروع مختلف، استبدال كامل البنية التحتية للاستمرار. وهذا يمكن أن تكون ذات صلة لكبار السن (BDE؟) المشاريع القائمة.

وأنت فقط تستطيع أن تقرر ما إذا كان حقا قطعة قطعة النهج هو ممكن. على سبيل المثال يمكن تقسيم تطبيق ما يصل بسهولة أو هي كل أشكال جانب بقوة جدا مع كل منطق الأعمال. من الناحية الفنية كان من الممكن ولكن كل هذا يتوقف على كيفية بناء قاعدة كود حقا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top