الكائنات الكبيرة والمعقدة كنتيجة لخدمة الويب [مغلق]

StackOverflow https://stackoverflow.com/questions/17725

سؤال

مرحبا مرة أخرى أيها السيدات والسادة!

حسنًا ، متابعة لسؤالي الآخر نتائج خدمة ويب ASP.NET وفئات الوكيل وتحويل النوع.لقد وصلت إلى جزء من مشروعي حيث أحتاج إلى وضع حد تفكيري.

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

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

في هذه الحالة، هذا هو الشيء الذي سأفعله حقًا حقًا! ترغب في تجنب!

اذا هذا يتطلب مني الفكير، وإلا كيف يمكننا أن نفعل هذا؟

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

ما هي أفكارك حول هذا؟

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

المحلول

تم تنفيذ تسلسل .Net XML (de) بشكل جيد جدًا.للوهلة الأولى، لا أعتقد أن هذه فكرة سيئة على الإطلاق.

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

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

نصائح أخرى

أنا محب JSON لهذا النوع من الشيء.لقد انتهيت للتو من استخدام بوابة من نوع POC لشركتي jQuery للاتصال بخدمات الويب مع تمكين خدمة البرنامج النصي.الرسائل خفيفة الوزن ويتم التعامل مع التحليل وما إلى ذلك إلى حد كبير.ال jQuery ajax الأشياء التي قرأتها كانت هنا (أحبها!): مقالة مسج اياكس

حصلت على بعض الإجابات الرائعة حول موضوع مشابه جدًا بالأمس والتي قد تكون مفيدة لك:

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

روب، عند النظر إلى سؤالك الآخر بالإضافة إلى هذا السؤال، يبدو أنه يشبه الوضع الدقيق الذي لدينا في بيئتنا.ومع ذلك، ما قمنا به هو الابتعاد عن خدمات الويب ASP.Net إلى خدمات الويب WCF وفي هذه العملية قمنا بحل هذه المشكلة (بالنسبة للجزء الأكبر).

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

نقوم بذلك من خلال عدم استخدام فئات الوكيل التي تم إنشاؤها تلقائيًا وإنشاء قناة العميل الخاصة بنا للتواصل مع خدمة WCF.

إذا كان بإمكانك استخدام WCF، فأخبرني أنه يمكنني نشر بعض المعلومات الإضافية.

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