الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

موضوع مهم لكل مبرمج Net.

بدأه زيد الرافدين في 18 سبتمبر 2007 · 29 رد · 5,602 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اليوم ساطرح موضوع مهم جدا لكل مبرمج Net.

وهو :

اذا زرت موقع اي دار نشر مرموقة مثلا Apress او Wrox

ستجد ان اغلب عنوانين الكتب الحديثة تتحدث عن لغات دوت نت

وتتطرق الموضوعات احترافية جدا .. يعني معلومات احترافية

ولو بحثت عن كود في موضوع ما فستجد العديد من الامثلة البرمجية حول الموضوع وهذا هو الجانب المضيئ :unsure:

لكن لو بحثت في الياهو Jobs

وكتبت في البحث Net.

ستجد 3,547 نتيجة

ولو بحثت عن java

ستجد : 6,368 نتيجة

فلماذا هذا التاخر الكبير من قبل Net.

وهل Net. في حالو تقدم ام في حالة تراجع ؟

شكرا

#2

دوت نت وليد سبع سنوات فقط اما الجافا ؟؟!!

#3

يعني بعد 5 سنوات راح تصير دوت نت بموازاة الجافا

#4
macnux كتب:
دوت نت وليد سبع سنوات فقط اما الجافا ؟؟!!

أقل. نسخة البيتا لم تظهر سوى في 2001 و النسخة النهائية الأولى صدرت في 2002.

#5

بسم الله الرحمن الرحيم

اخي الكريم الجافا اقدم من الدوت نت وقبل صدور الدوت نت كانت تحتل ريادة لغات البرمجة من ما جعل المبرمجين يتهافتون على تعلمها ام الان فلا اظن انها ستواصل المسير في ريادة لغات البرمجة والمسالة مسالة وقت فقط هذا رايي والله اعلم

تحياتي لكم

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#6

السلام عليكم

تحياتي للجميع،

في إعتقادي السبب في انتشار لغة الجافاً هي التقنيات التي من حولها و من أهمها تقنية J2EE و ظهور Application Servers مثل Websphere, Weblogic و غيرها و هذه التقنية موجهه للمنشأت الكبيرة و للإسف لحد الآن لايوجد بحد علمي Application Servers في تقنية الدوت نت. لا أقول هذا للأني منحاز الى الجافاً، أنا ايضا من محبي الدوت النت. على العموم هذا التساؤل دائما يدور حوله جدال كبير وذلك لإختلاف آراء المختصين، لكن في إعتقادي الذي يحدد نجاح أي تقنية هو السوق، و في الوقت الحالي تقنيات الجافا (وليس اللغة نفسها) أكثر طلبا في العالم، لكن لا أحد يعلم المستقبل إلا الله تعالي، ربما تتغير الأمور.

للذكر فقط التقنيات (ولما أقول تقنيات لا أقصد البرامج) المعتمدة على لغة الجافاً كثيره جدا و قد لا تكاد تحصيها، كلما ذهبت إلى مؤتمر أجد الناس يتحدثون عن أشياء لم اسمع بها، بينما الدوت نت التقنيات تأتي من مصدر واحد وهي شركة مايكرسوفت أو بعض المشاريع الأخرى مثل مشروع مونو على العلم أن هذا المشروع لا يضيف جديدا غير كتابة الدوت نت ليعمل على بيئة لينكس. بشكل عام كل تقنيات الدوت نت مثلاً Silverlight يتم عملها في مختبرات مايكروسوفت.

هذا مجرد رأي والله أعلم.

#7

الـIIS هي بمثابة الـApplication Server الخاصة بدوت نت. إلا إذا كنت تقصد شئ آخر بكلمة Application Server؟

#8

ال IIS هو Web Server وليس Application Server. عمل IIS مماثل لعمل Apache tomcat

Application Servers التي ذكرتها توفر خدمات مثل Transaction managment, RMI Calls و غيرها الكثير. بينما في الدوت نت تحتاج إلى التحكم Transaction بنفسك وهي عملية ليست بسهله خصوصا عندما يكون لديك أكثر من قاعدة بيانات.

و للإطلاع على تفاصيل أكثر عن Weblogic مثلاً ، وهو من شركة BEA

http://edocs.bea.com/

تحياتي

#9

أعتقد ان جميع هذه الاعمال يقوم بها Windows Server 2003

من إدارة العمليات ومراقبة الأداء والأحداث والتحكم بالصلاحيات ...إلخ

رســالـة من يتيــم

AytamResalhGIFmesg.gif

http://www.aytam.org.sa/message_aytam.php

----

أتمنى لك التوفيق اخي cold0zero في موقعك

logo.gif
#10

الكلام الذي أقوله بعيد كل البعد عن الذي تتحدث عنه

سؤال بسيط تخيل ان لديك ثلاث قواعد بيانات

1- Oracle

2- MS SQL Server

3- MySQL

ولديك نظام يقوم بتحديث جدوال في هذه قواعد البيانات كعملية واحدة. عندما يكون لديك قاعدة بيانات واحده و تريد عمل تحديث على مجموعة من الجداول ماذا تعمل؟؟ تستخدم Transaction

السؤال الآن كيف تعمل Transaction على مجموعة من قواعد البيانات؟ هل Windows Server يخولك بعمل ذلك؟؟

هذا مجرد مثال فقط، وبصراحة لا أجد كيف تقارن نظام تشغيل ب Application Servers الذي ذكرت أمثلة عليها.

لا أخفيك اجد ناس يقومون بمقارنتة، لكن يضل سؤالي ما أوجة التناسب. في الواقع Windows Server يقارن بLinux و ليس Application Servers مثل Weblogic

هذا مجرد رأي،

تم تعديل هذه المشاركة بواسطة nawaf227 في 20 سبتمبر 2007 في 18:38

#11

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

لكن ما اعتقد فيه مبرمج كتب برنامج بأي لغة دوت نت ووجد صعوبة بالترانس اكشن

الـ ADO.NET اعطت سهولة متناهيه بهذه المشكلة اذا الأبلكيشن سيرفر هذه هي فقط الميزة اللي تخليني استخدمة

بصراحه انا كـ مبرمج متنازل عنها :) لم أقرى الكثير عن الابلكيشن سيرفر عشان نتناقش فيه بشكل اكثر و أوسع

لكن صدقني الترانس اكشن لا وجود لصعوبتها مع مبرمجين الدوت نت، لذلك تجد كثير ممكن يجهلون ميزة الابلكيشن سيرفر بنظر اللذي يتباها فيه مبرمجين اللغات الثانية اللي يجدون صعوبة وإستحالة البرمجة بدون هذا المنتج لمساعدتهم بالترانس اكشن على سبيل المثال ..

تم تعديل هذه المشاركة بواسطة Issa84 في 21 سبتمبر 2007 في 02:49

رســالـة من يتيــم

AytamResalhGIFmesg.gif

http://www.aytam.org.sa/message_aytam.php

----

أتمنى لك التوفيق اخي cold0zero في موقعك

logo.gif
#12

لكل له رأي

أنا مبرمج #C لكن مجال عملي يقتضى أن عمل كمطور J2EE

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

أخي العزيز الفرق هو أن تلك التقنيات صممت في الأصل لتلبي حاجات المنشآت الكبيرة و لذلك هي معقدة، بينما الدوت يميل أكثر للمشاريع الصغيرة و المتوسطة. طبعاً أن لا اقول أنك لا تستطيع أن تعمل بالدوت نت برامج لشركات كبيرة، لكن سهولة الدوت نت قد تنقلب إلى صعوبة أكبر عند الرغبة في عمل ذلك. إن لم أكن مخطئا فموقع ياهو مصمم بلغة PHP و الجميع يعرف هذه اللغة فيها قصر بعض الشيء، فلا أعتقد أنهم يستطيع عمل Distributed System بخلاف إستخدام Web Services بيما التقنيات الأخرى لديها طرق أخرى مثل RMI , .NET Remoting

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

على العموم أخي الكريم هذا مجرد رأي فقط و من الطبيعي أن يكون هنالك من يخالفه.

تمنياتي للجميع بالتوفيق.

تم تعديل هذه المشاركة بواسطة nawaf227 في 21 سبتمبر 2007 في 03:58

#13

السلام عليكم

رغم اني مبرمج صغير لم اتطرق الى مستواكم البرمجي

الا ان لي راي المتواضع

اولا انا نزلت في شركات تستخدم اكتر من لغة برمجة منها الاوراكل ديفولبر و الدوت نت بكل لغاتة

لكن الي وجدتة من واقع الخبرة من المبرمجين الي اتعملت معاهم انهم بيفضلوا الاوراكل سواء قاعدة بيانات والديفولبر بتاعة

وسالت اية السبب الاجابة كانت :

1- كبر حجم العملاء وايضا قدرة الاوراكل على استيعاب العلامء دول با عدد

2- سرعة الاوراكل في معالجة البيانات

3-الاوراكل مع الديولبر بتاعة سريع بطريقة مش معقولة ودة عن تجربة شخصية بعمل بحث في 38 جدول وكل جدول اقل عدد للسجلات فية 30000 سجل وبيجيب النتيجة في ثواني

4-الاوراكل بيشتغل على اي نظام تشغيل وعلى راس القائمة اللينكس ودة بيوفير عليهم الفيرس والكلام دة كلة

5-اغلب السرفات كلها بدعم الاوراكل وايضا اللينكس

6-وانتشار الجافا لان زي ما قال لية مبرمج اوراكل ان الجافا حبيبة الاوراكل

دة راي وارجو المعزرة للاطالة

#14

اولا انا سعيد لان الموضوع ماصار حرب ونقاش غير موضوعي :lol:

بخصوص الترانس اكشن

انا بحسب خبرتي مع ADO.Net

عندما تعمل ارتباط الترانس اكشن بين كائن الاتصال وكان الاوامر في ADO.Net

سوف يشمل جدول واحد في قاعدة البيانات

واذا اردت التوسع في الترانس اكشن لايمكن عمله من خلال ADO.Net

بس يمكن عمله من داخل Store Procedure باستخدام T-SQL على شرط ان تكون جميع الجداول SQL Server

وتقوم بهذه العملية خاصية اسمها Integration Service وهنالك كتاب كامل حول الموضوع لم يريده اعلامي

على سيرة قواعد البيانات SQL Server 2005 قوية جدا جدا وفيها شغلات رهيبة بس للاسف لم تستعمل من قبل مبرمجنا العربي لحد الان

انا متاكد لو مايكروسوفت تتوقف عن سياستها في عدم التعامل مع الغير ستكون ذلك نتائج برامج رائعة :rolleyes:

عندي سؤال ولو هو خارج الموضوع لماذا اللينكس لايوجود عليه فايروسات ؟ يعني ماممكن تصميم فايروسات عليه !!

على فكرة Windows Server 2008 و Visual Studio 2008 على الطريق وسوف نرى التطورات

تحياتي

تم تعديل هذه المشاركة بواسطة زيد الرافدين في 21 سبتمبر 2007 في 22:55

#15

انا لم اجرب بعد اتصال الاسكيو ال مع الاوركل

لكن اعلم انك تستطيع تنفيذ ترانس اكشن من الاسكيو ال لأوركل

يعني تفتح كونكشن وتنفذ بروسيجر معين عن طريق الاسكيو ال بـ اوركل

رســالـة من يتيــم

AytamResalhGIFmesg.gif

http://www.aytam.org.sa/message_aytam.php

----

أتمنى لك التوفيق اخي cold0zero في موقعك

logo.gif
#16

للاسف خدمة Integration Service لم تاخذ حقها بعد

اعتقد ان القوة ليست في J2EE بل هي بعدد البرامج التي تعمل معها

فلو تعمقت داخل Net Framework ستجد ان لها مميزات رهيبة جدا حتى اقوى من الجافا نفسها

لكن مع الاسف انها لاتعمل الا مع الوندوز وذلك يضعف قدراتها جدا

#17
nawaf227 كتب:
الكلام الذي أقوله بعيد كل البعد عن الذي تتحدث عنه

سؤال بسيط تخيل ان لديك ثلاث قواعد بيانات

1- Oracle

2- MS SQL Server

3- MySQL

ولديك نظام يقوم بتحديث جدوال في هذه قواعد البيانات كعملية واحدة. عندما يكون لديك قاعدة بيانات واحده و تريد عمل تحديث على مجموعة من الجداول ماذا تعمل؟؟ تستخدم Transaction

السؤال الآن كيف تعمل Transaction على مجموعة من قواعد البيانات؟ هل Windows Server يخولك بعمل ذلك؟؟

هذا مجرد مثال فقط، وبصراحة لا أجد كيف تقارن نظام تشغيل ب Application Servers الذي ذكرت أمثلة عليها.

لا أخفيك اجد ناس يقومون بمقارنتة، لكن يضل سؤالي ما أوجة التناسب. في الواقع Windows Server يقارن بLinux و ليس Application Servers مثل Weblogic

هذا مجرد رأي،

كلام الأخ صحيح. ما لا يغطيه الـIIS تغطيه خدمات أخرى موجود معظمها مع الويندوز نفسه. مثلاً موضوع الترانزاكشن على أكثر من قاعدة بيانات (أو حتى غيرها من الأنظمة) تقوم به ما يدعى بـMTS أو Microsoft Transaction Services. و قد يكون هذا عيب الدوت نت الأكبر. صحيح الغالبية العظمى من الخدمات التي تجدها في الـJ2EE موجودة و لكن معظمها موجود فقط من مايكروسوفت.

#18
اقتباس
كلام الأخ صحيح. ما لا يغطيه الـIIS تغطيه خدمات أخرى موجود معظمها مع الويندوز نفسه. مثلاً موضوع الترانزاكشن على أكثر من قاعدة بيانات (أو حتى غيرها من الأنظمة) تقوم به ما يدعى بـMTS أو Microsoft Transaction Services. و قد يكون هذا عيب الدوت نت الأكبر. صحيح الغالبية العظمى من الخدمات التي تجدها في الـJ2EE موجودة و لكن معظمها موجود فقط من مايكروسوفت

طيب Microsoft Transaction Services تعمل على وقواعد بيانات ماعدا SQL Server

واذا تعمل معنى ذلك ان انحلت المشكلة !! ولا انا غلطان ؟

#19
زيد الرافدين كتب:
طيب Microsoft Transaction Services تعمل على وقواعد بيانات ماعدا SQL Server

واذا تعمل معنى ذلك ان انحلت المشكلة !! ولا انا غلطان ؟

نعم ممكن. الفكرة من MTS هو وجود وصلة COM أو COM+ تقوم بالإتصال بقاعدة البيانات (أو أي شئ آخر في الواقع) و يتم عن طريقها مراقبة سير التلاانزاكشن. Oracle مثلاً توفر هذه الخدمة جاهزة مع قاعدة بياناتها:

http://www.oracle.com/technology/tech/wind..._mts/index.html

#20

يعني نستنتج من كلامك ان ممكن عمل Transaction مع اكثر من قاعدة بيانات من خلال تكنلوجيا مايكروسوفت بشكل عام وال Net. بشكل خاص ...

واذا هذا يعني ان Net. صالحة لعمل Distributed System والنتائج تكون ممتازة وناجحة عمليا

#21

السلام عليكم

بدأ الحديث الآن إلى الميل بين مقارنة تقنية دوت النت و J2EE و هو ليس بمحور الحديث في هذه المشاركة، كنا نتحدث أن هذا ممكن بتقنية الدوت لكن الآن أصبح لا بد من استخدام None Managed Code من خلال الدوت نت لعمل ذلك، ناهيك على ان تقنية ِCOM + لم تلقى نجاحاً كبيراً في عالم التطبيقات الموزعة و هذا ليس برأي الشخصي و أنما هذا ما يعكسة السوق في الوقت الحالي.

بالمناسبة هل متأكد أخي العزيز System Down أن Microsoft Transaction Services تدعم XA، لأني لم أجد ذلك في موقع مايكروسوفت، و على حد علمي المتواضع مايكروسوفت لديها MSDTC الذي يخولك بعمل Distribued Transactions

http://en.wikipedia.org/wiki/Distributed_T...ion_Coordinator

ليس هنالك أمر مستحيل عملة في الدوت و تستطيع عمله في J2EE أو العكس!!!

لكن الفرق أن J2EE هي عبارة عن Sepcification أو وصف عمل خصيصاً لبناء أنظمة كبيرة و عمل بطريقة رائعة. هنالك سؤال دائما يراودني لماذا مايكروسوفت أو اي شركة لم تحاول عمل شيء مشابة لل J2EE أتوقع انه سيلاقي نجاح كبير إذا غضينا النظر عن أن التقنية من شركة واحدة، و لا سيما أن الدوت نت مازال في الصدارة في Presentation Layer بينما في الجافا مازال في تاخر حتى مع ظهور JSF, Struts.

دائما أسمع أن الدوت نت قوي في Presentation layer لكن ضعيف في Data Access layer أو Backend بينما الجافا قوية في Data Access layer وضعيفة في Presentation Layer. وهذا اتوقع ما دفع مايكروسوف للعمل على مشروع LINQ بينما في Java 6 تم التركيز على برامج Disktop بشكل كبير وواضح.

هذا مجرد رأي و سعدت بالحديث معكم

#22
اقتباس
لسلام عليكم

بدأ الحديث الآن إلى الميل بين مقارنة تقنية دوت النت و J2EE و هو ليس بمحور الحديث في هذه المشاركة، كنا نتحدث أن هذا ممكن بتقنية الدوت لكن الآن أصبح لا بد من استخدام None Managed Code من خلال الدوت نت لعمل ذلك، ناهيك على ان تقنية ِCOM + لم تلقى نجاحاً كبيراً في عالم التطبيقات الموزعة و هذا ليس برأي الشخصي و أنما هذا ما يعكسة السوق في الوقت الحالي.

بالمناسبة هل متأكد أخي العزيز System Down أن Microsoft Transaction Services تدعم XA، لأني لم أجد ذلك في موقع مايكروسوفت، و على حد علمي المتواضع مايكروسوفت لديها MSDTC الذي يخولك بعمل Distribued Transactions

http://en.wikipedia.org/wiki/Distributed_T...ion_Coordinator

ليس هنالك أمر مستحيل عملة في الدوت و تستطيع عمله في J2EE أو العكس!!!

لكن الفرق أن J2EE هي عبارة عن Sepcification أو وصف عمل خصيصاً لبناء أنظمة كبيرة و عمل بطريقة رائعة. هنالك سؤال دائما يراودني لماذا مايكروسوفت أو اي شركة لم تحاول عمل شيء مشابة لل J2EE أتوقع انه سيلاقي نجاح كبير إذا غضينا النظر عن أن التقنية من شركة واحدة، و لا سيما أن الدوت نت مازال في الصدارة في Presentation Layer بينما في الجافا مازال في تاخر حتى مع ظهور JSF, Struts.

دائما أسمع أن الدوت نت قوي في Presentation layer لكن ضعيف في Data Access layer أو Backend بينما الجافا قوية في Data Access layer وضعيفة في Presentation Layer. وهذا اتوقع ما دفع مايكروسوف للعمل على مشروع LINQ بينما في Java 6 تم التركيز على برامج Disktop بشكل كبير وواضح.

مشكور اخي على الشرح المفصل :rolleyes:

لكن ماذا تقصد ب XA ؟

اما بخصوص Data Access layer فلماذا مايكروسوفت ضعيفة فيها ؟ قصدي اين هي اماكن الضعف ,, ارجو تحديدها

شكرا

#23

السلام عليكم

ممكن شرح ماذا تقصدون بال Distributed System والرجاء يكون الشرح باللغة ""العربية""

#24

عذرا أخي NET Lover لكن أحياناً يصعب على الكتابة باللغة العربية حيث لا أعرف الترجمة الصحيحة، على العموم Distributed Transaction هي العمليات الموزعة و غالباُ تكون موزعة على عدة برامج أو قواعد بيانات. طبعاً كلمة Transaction اتوقع تعرفونها حيث يجب ان تحقق ACID (Atomicity, Consistency, Isolation, Durability)

صعبة اترجمها هذي :)

اخي زيد الرافدين

The XA (eXtended Architecture) standard defines the two-phase commit protocol

هنالك برتوكول يسمى ب Two-phase commit و شرحه يطول لكن ان اردت أن اشرحه فخبرني

بالنسبة لماذا Date Access Layer ضعيف في مايكروسوفت.

لو تلاحظ ليس هنالك خطوط عريضة في الدوت نت ترسم لك كيف تكتب نظام Multi Tier بالكاد تجد مقالة واحدة في MSDN تشرح ذلك وتعتبر DataSet كمثال على Data Access Layer كما تعلم Multi Tier Architecture يحتوى على

Presentation Layer : يتم فيها عرض البيانات و بعض التحقق من صحة البيانات

Business Logic Layer يتم فيها وضع الكود Business logic ولا يكون هنا أي اتصال بقاعدة البيانات ـو اي شيء له علاقة بالتخزين كالملفات.

Data Access Layer يتم فه فقط إجراء العمليات قواعد البيانات و أي شيء من شأنه الإتصال بأي Resource

في تقنية J2EE جميع الأشياء مرسومه لك بالتفصيل فمثلاُ

JSP/Struts/JSF/Servlet هي بمثابة Presentation Layer

Session Beans/JMS هي بمثاية Business Logic Layer

Entity Beans هي بمثابة Data Access Layer

بالنسبة لتقنية الدوت فيه ناس يعتبرون

Aspx هي Presentation Layer

و الكود في App_Code هو Business Logic Layer

و عمل DataSet أو معرفات Classes توضع في App_Code لكن تتعامل مع قواعد البيانات فقط. كمثابة Data Access Layer

أيضاً هنالك MVC (Model View Controller)

مثلاُ في JSF يوجد فيها MVC واضح جداً لكن في الدوت فتستخدم PostBack Model و في مقابلة عملت مع Scott Guth منذ بضعة أيام تحدث عن نظرت مايكروسوفت في إضافة MVC بحيث يكون للمستخدم الخيار بين MVC Model أو PostBack model

http://www.mostasharok.net/Blog/BlogPost.mitc?postId=11

على العموم فيه من الناس من ينظر إلى PostBack Model على انه MVC،

أنا شخصياً اتمنى العكس و هو لو أن الجافا يتبنون PostBack Model بصراحة إستخدامه سهل جداً. فمثلاُ أتمنى لو يكون هنالك شيء مشابه ASP.NET في JSP بدلا من تعريف أين سيتم تنفيذ أمر ما عند الضغط على الزر أو اي سيتم نقلك بعد ضغط الرز من خلال تعريفها في XML مثلا. بينما في الدوت نت فقط ضع رز ثم أكتب الكود الذي تريده أن ينفذه في حدث الضغظ، و الدوت نت سوف يتولى أمر استدعاء ذلك الحدث بدلاً عنك.

أعتذر بشدة عن كتابة بعض المصطلحات باللغة الإنجليزية:)

#25
اقتباس
عذرا أخي NET Lover لكن أحياناً يصعب على الكتابة باللغة العربية حيث لا أعرف الترجمة الصحيحة، على العموم Distributed Transaction هي العمليات الموزعة و غالباُ تكون موزعة على عدة برامج أو قواعد بيانات. طبعاً كلمة Transaction اتوقع تعرفونها حيث يجب ان تحقق ACID (Atomicity, Consistency, Isolation, Durability)

صعبة اترجمها هذي

اخي زيد الرافدين

The XA (eXtended Architecture) standard defines the two-phase commit protocol

هنالك برتوكول يسمى ب Two-phase commit و شرحه يطول لكن ان اردت أن اشرحه فخبرني

بالنسبة لماذا Date Access Layer ضعيف في مايكروسوفت.

لو تلاحظ ليس هنالك خطوط عريضة في الدوت نت ترسم لك كيف تكتب نظام Multi Tier بالكاد تجد مقالة واحدة في MSDN تشرح ذلك وتعتبر DataSet كمثال على Data Access Layer كما تعلم Multi Tier Architecture يحتوى على

Presentation Layer : يتم فيها عرض البيانات و بعض التحقق من صحة البيانات

Business Logic Layer يتم فيها وضع الكود Business logic ولا يكون هنا أي اتصال بقاعدة البيانات ـو اي شيء له علاقة بالتخزين كالملفات.

Data Access Layer يتم فه فقط إجراء العمليات قواعد البيانات و أي شيء من شأنه الإتصال بأي Resource

في تقنية J2EE جميع الأشياء مرسومه لك بالتفصيل فمثلاُ

JSP/Struts/JSF/Servlet هي بمثابة Presentation Layer

Session Beans/JMS هي بمثاية Business Logic Layer

Entity Beans هي بمثابة Data Access Layer

بالنسبة لتقنية الدوت فيه ناس يعتبرون

Aspx هي Presentation Layer

و الكود في App_Code هو Business Logic Layer

و عمل DataSet أو معرفات Classes توضع في App_Code لكن تتعامل مع قواعد البيانات فقط. كمثابة Data Access Layer

أيضاً هنالك MVC (Model View Controller)

مثلاُ في JSF يوجد فيها MVC واضح جداً لكن في الدوت فتستخدم PostBack Model و في مقابلة عملت مع Scott Guth منذ بضعة أيام تحدث عن نظرت مايكروسوفت في إضافة MVC بحيث يكون للمستخدم الخيار بين MVC Model أو PostBack model

http://www.mostasharok.net/Blog/BlogPost.mitc?postId=11

على العموم فيه من الناس من ينظر إلى PostBack Model على انه MVC،

أنا شخصياً اتمنى العكس و هو لو أن الجافا يتبنون PostBack Model بصراحة إستخدامه سهل جداً. فمثلاُ أتمنى لو يكون هنالك شيء مشابه ASP.NET في JSP بدلا من تعريف أين سيتم تنفيذ أمر ما عند الضغط على الزر أو اي سيتم نقلك بعد ضغط الرز من خلال تعريفها في XML مثلا. بينما في الدوت نت فقط ضع رز ثم أكتب الكود الذي تريده أن ينفذه في حدث الضغظ، و الدوت نت سوف يتولى أمر استدعاء ذلك الحدث بدلاً عنك.

أعتذر بشدة عن كتابة بعض المصطلحات باللغة الإنجليزية

اولا اهنيك يا اخ nawaf227 على هذه المعلومات الرائعة والمتقدمة جدا

وان شاء الله دوام الموفقية

بس عندي سؤال الك وهو هل ترى في نسخة مايكروسوفت 2008 Visual Studio ماهو ينبئ بمنافسة Visual Studio لل J2ee

لان انا بصراحة اعشق الدوت نت لكني اريد ان اصبح متخصص في تصميم Distributed System وتصميم Data Access Layer

فهل هنالك امل ان تنافس مايكروسوفت في هذا المجال ؟ ام اني اضيع وقتي في تعلمها ؟

من ناحية اخرى مايكروسوفت تجذبني بتقنياتها الرائعة فمرة تطرح AJAX 1.0 وقد سهل تصميم الاجاكس جدا جدا جدا

ومرة تطرح Silverlight حيث يمكن كتابة اكواده مع #C وهو متوافق جدا مع ASP.Net

ومرة LINQ التي قد يكون لها مستقبل كبير في مجال قواعد البيانات

وهنالك مونو بروجيكت لتشغيل برامج #C على Linux

وهنالك ايضا SQL Server 2005 بخصائصه الرهيبة وللاسف الكثير من المبرمجين لم يتعمقو داخل هذا البرنامج

فماذا تنصحني ان افعل ؟

شكرا

تم تعديل هذه المشاركة بواسطة زيد الرافدين في 24 سبتمبر 2007 في 00:35

مواضيع مشابهة