موقع ويب ASP.NET أو تطبيق ويب ASP.NET؟



visual-studio projects-and-solutions (17)

Compilation أوﻻً ، ھﻧﺎك اﺧﺗﻼف ﻓﻲ اﻟﺗﺟﻣﯾﻊ. لم يتم ترجمة الموقع مسبقا على الخادم ، يتم تجميعه في الملف. قد تكون ميزة لأنه عندما تريد تغيير شيء ما في موقع الويب الخاص بك ، يمكنك فقط تنزيل ملف معين من الخادم ، وتغييره وتحميل هذا الملف مرة أخرى إلى الخادم وسيعمل كل شيء بشكل جيد. في تطبيق ويب لا يمكنك القيام بذلك لأن كل شيء تم تجميعه مسبقًا وينتهي بك الأمر مع dll واحد فقط. عندما تقوم بتغيير شيء ما في ملف واحد من مشروعك ، عليك إعادة تجميع كل شيء مرة أخرى. لذلك إذا كنت ترغب في الحصول على إمكانية تغيير بعض الملفات على موقع ويب الخادم هو الحل الأفضل لك. كما يسمح للعديد من المطورين بالعمل على موقع ويب واحد. على الجانب الآخر ، إذا كنت لا تريد أن تكون التعليمة البرمجية متوفرة على الخادم ، فعليك بدلاً من ذلك اختيار تطبيق ويب. يعد هذا الخيار أيضًا أفضل لاختبار الوحدة نظرًا لإنشاء ملف DLL واحد بعد نشر موقعك على الويب.

Project structure هناك أيضا اختلاف في هيكل المشروع. في تطبيق الويب لديك ملف مشروع تمامًا كما لو كنت تستخدمه في التطبيق العادي. في موقع الويب لا يوجد ملف مشروع تقليدي ، كل ما لديك هو ملف الحل. يتم تخزين جميع المراجع والإعدادات في ملف web.config. @Page directive هناك سمة مختلفة فيPage التوجيه للملف الذي يحتوي على فئة مرتبطة بهذه الصفحة. في تطبيق ويب هو معيار "CodeBehind" ، في موقع ويب تستخدم "CodeFile". يمكنك رؤية ذلك في الأمثلة أدناه:

Web Application:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"  
Inherits="WebApplication._Default" %>  

موقع الكتروني:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

مساحات الأسماء - في المثال أعلاه ، يمكنك مشاهدة اختلاف آخر - كيفية إنشاء مساحات الأسماء. في مساحة اسم تطبيق ويب هو ببساطة اسم المشروع. في موقع ويب يوجد مساحة اسم افتراضية ASP للصفيف المترجمة ديناميكيًا.

التعديل والمتابعة - في خيار تعديل تطبيق الويب ومتابعة تطبيقه (لتشغيله يجب عليك الانتقال إلى قائمة أدوات ، انقر فوق خيارات ثم ابحث عن تحرير ومتابعة في تصحيح الأخطاء). هذه الميزة لا تعمل في Web Site.ASP.NET MVC إذا كنت ترغب في تطوير تطبيقات الويب باستخدام

ASP.NET MVC (Model View Controller) هو الخيار الأفضل و الافتراضي هو Web Application. على الرغم من أنه من الممكن استخدام MVC في موقع الويب إلا أنه غير مستحسن.

ملخص - الاختلاف الأكثر أهمية بين تطبيق ويب ASP.NET وموقع الويب هو التجميع. إذا كنت تعمل في مشروع أكبر حيث يمكن لعدد قليل من الناس تعديله ، فمن الأفضل استخدام موقع الويب. ولكن إذا كنت تقوم بمشروع أصغر ، يمكنك استخدام تطبيق الويب أيضًا.

https://code.i-harness.com

عند بدء تشغيل مشروع ASP.NET جديد في Visual Studio ، يمكنني إنشاء تطبيق ويب ASP.NET أو يمكنني إنشاء موقع ويب ASP.NET.

ما هو الفرق بين تطبيق ASP.NET على ويب و ASP.NET Web Site؟ لماذا اخترت واحدة على أخرى؟

هل تختلف الإجابة استنادًا إلى إصدار Visual Studio الذي أستخدمه؟


أحد الاختلافات الرئيسية هو أن المواقع الإلكترونية يتم تجميعها ديناميكيًا وإنشاء مجموعات على ذبابة. Web applicaitons compile في تجميع واحد كبير.

تم التمييز بين الاثنين بعيداً في Visual Studio 2008.


الموقع والمشروع >> موقع الويب هما طريقتان مختلفتان لإنشاء تطبيق ASP.NET باستخدام استوديو مرئي. واحد هو مشروع وأخر هو بيئة المشروع. الاختلافات هي

  1. يتم تخزين ملف الحل في نفس الدليل كدليل الجذر في بيئة المشروع.
  2. تحتاج إلى إزالة الملفات الحل والمشروع قبل نشر في بيئة المشروع.
  3. يتم نشر الدليل الجذر الكامل في بيئة بلا مشروع.

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


بالتأكيد تطبيق ويب ، ملف DLL واحد وسهلة للحفاظ على. لكن موقع الويب أكثر مرونة ؛ يمكنك تحرير ملف aspx أثناء التنقل.


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

ميزة التطبيق هي أنه لا يوجد إعادة تجميع وبالتالي ستكون أوقات البدء الأولية أسرع.


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


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

أكبر app_code لنموذج موقع الويب هو أن أي شيء في قسم app_code يتم تجميعه ديناميكيًا. يمكنك إجراء تحديثات ملف C # بدون إعادة نشر كاملة. ومع ذلك يأتي هذا في تضحية كبيرة. تحدث الكثير من الأشياء تحت الأغطية التي يصعب السيطرة عليها. من الصعب التحكم app_code الأسماء ، ويخرج استخدام DLL المحدد من النافذة افتراضيًا لأي شيء تحت app_code نظرًا لأنه يتم تصنيف كل شيء بشكل ديناميكي.

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

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

يمكن العثور على تحليل أكثر تفصيلاً في:


لتلخيص بعض الإجابات أعلاه:

المرونة ، هل يمكنك إجراء تغييرات مباشرة على صفحة الويب؟

الموقع على الإنترنت : ممكن. المؤيد: فوائد قصيرة الأجل. يخدع: خطر على المدى الطويل من الفوضى المشروع.

تطبيق الويب : Con: غير ممكن. تحرير صفحة ، أرشفة التغييرات إلى عنصر تحكم مصدر ، ثم إنشاء ونشر الموقع بأكمله. برو: الحفاظ على جودة المشروع.

قضايا التنمية

موقع ويب : بنية مشروع بسيطة بدون ملف .csproj. قد يكون .2 صفحات aspx نفس اسم الفئة دون تعارضات. اسم دليل المشروع عشوائي يؤدي إلى بناء أخطاء مثل لماذا يتعارض إطار .net مع الملف الخاص به ولماذا يتعارض إطار .net مع الملف الذي تم إنشاؤه . المؤيد: بسيط (بسيط). يخدع: غير منتظم.

تطبيق الويب : بنية مشروع مشابهة لمشروع WebForms ، مع ملف .csproj. يجب أن تكون أسماء الفئات لصفحات asp فريدة. برو: بسيطة (ذكية). الاشتراك: لا شيء ، لأن تطبيق الويب لا يزال بسيطًا.


من اختبار MCTS الذاتي الاجتياح عدة التدريب 70-515 كتاب:

مع تطبيق الويب (مشروع) ،

  1. يمكنك إنشاء تطبيق MVC.
  2. يخزن Visual Studio قائمة الملفات في ملف مشروع (.csproj أو .vbproj) ، بدلاً من الاعتماد على بنية المجلد.
  3. لا يمكنك خلط Visual Basic و C #.
  4. لا يمكنك تحرير التعليمات البرمجية دون إيقاف جلسة تصحيح.
  5. يمكنك إنشاء التبعيات بين مشاريع الويب المتعددة.
  6. يجب أن تقوم بتجميع التطبيق قبل النشر ، مما يمنعك من اختبار صفحة إذا لم يتم ترجمة صفحة أخرى.
  7. ليس لديك لتخزين الكود المصدري على الخادم.
  8. يمكنك التحكم في اسم التجميع والإصدار.
  9. لا يمكنك تحرير ملفات فردية بعد النشر دون إعادة التركيب.

مواقع الويب - لن يتم إنشاء ملف الحل. إذا كنا نريد إنشاء مواقع الويب لا حاجة للاستوديو المرئي.

تطبيق الويب - سيتم إنشاء ملف الحل. إذا أردنا إنشاء تطبيق ويب يجب أن تحتاج إلى الاستوديو المرئي. سيقوم بإنشاء ملف .dll واحد في مجلد bin.


هو دائما يعتمد على متطلبات العميل. يشمل ASP.NET فقط الميزات المرنة التي يحتاجها المستخدم للأمان وسهولة صيانة التطبيق الخاص بك.

يمكنك التفكير في تطبيق ويب كملف ثنائي يعمل داخل إطار ASP.NET. ومواقع الويب كصفحة ويب ثابتة يمكنك مراجعتها ونشر شفرة المصدر فيها بسهولة.

لكن ميزة وعيوب هذه التقنيات ASP.NET اثنين تأتي ما هو جيد.


يحتوي "موقع ويب" على التعليمات البرمجية الخاصة به في دليل App_Code خاص ويتم تجميعها في العديد من DLLs (التجميعات) في وقت التشغيل. يتم "ترجمة تطبيق ويب" إلى واحد DLL واحد.



هنا تطبيق الويب داعمة هو مثال على الموقع. يمكن أن يكون موقع الويب وتطبيقات الويب ديناميكيًا / ثابتًا يعتمد على المتطلبات ، وهنا مثال على فهم عمل موقع الويب وتطبيق الويب.


موقع الكتروني:

يتم تجميع مشروع موقع الويب على الطاير. ينتهي بك الأمر مع الكثير من ملفات DLL ، والتي يمكن أن تكون ألمًا. كما أنه يعطي مشاكل عند وجود صفحات أو عناصر تحكم في دليل واحد تحتاج إلى الرجوع إلى الصفحات وعناصر التحكم في دليل آخر حيث قد لا يتم تجميع الدليل الآخر في الكود بعد. مشكلة أخرى يمكن أن تكون في النشر.

إذا لم يُطلب من Visual Studio إعادة استخدام نفس الأسماء باستمرار ، فسيظهر بأسماء جديدة لملفات DLL التي يتم إنشاؤها بواسطة الصفحات طوال الوقت. يمكن أن يؤدي ذلك إلى وجود عدة نسخ قريبة من ملفات DLL تحتوي على نفس اسم الفئة ، مما يؤدي إلى توليد الكثير من الأخطاء. تم تقديم مشروع موقع ويب مع Visual Studio 2005 ، ولكن تبين أنه لا يحظى بشعبية كبيرة.

تطبيق الويب:

تم إنشاء "مشروع تطبيق ويب " كوظيفة إضافية وهو موجود الآن كجزء من SP 1 لـ Visual Studio 2005. الاختلافات الرئيسية هي تم تصميم "مشروع تطبيقات ويب" للعمل مشابهة لمشاريع ويب التي يتم شحنها مع Visual Studio 2003. سوف ترجمة التطبيق في ملف DLL واحد في وقت البناء. لتحديث المشروع يجب أن يتم recompiled وملف DLL نشر التغييرات تحدث.

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

Reference

المقالة ASP.NET 2.0 - موقع ويب مقابل مشروع تطبيق ويب أيضاً يعطي أسباب لماذا استخدام واحد وليس الآخر. هنا مقتطف من ذلك:

  • تحتاج إلى ترحيل تطبيقات Visual Studio .NET 2003 كبيرة إلى VS 2005؟ استخدام مشروع تطبيقات الويب.
  • تريد فتح وتحرير أي دليل كمشروع ويب دون إنشاء ملف مشروع؟ استخدام مشروع موقع الويب.
  • أنت في حاجة لإضافة خطوات ما قبل البناء وما بعد البناء أثناء التجميع؟ استخدام مشروع تطبيقات الويب.
  • تحتاج إلى بناء تطبيق ويب باستخدام مشاريع ويب متعددة؟ استخدام مشروع تطبيقات الويب.
  • تريد توليد تجميع واحد لكل صفحة؟ استخدام مشروع موقع الويب.
  • أنت تفضل التصنيف الديناميكي وتعمل على الصفحات بدون إنشاء موقع كامل على كل مشاهدة صفحة؟ استخدام مشروع موقع الويب.
  • أنت تفضل نموذج التعليمات البرمجية صفحة واحدة إلى نموذج التعليمات البرمجية خلف؟ استخدام مشروع موقع الويب.

تشرح مشاريع تطبيقات الويب مقابل مشاريع مواقع الويب (MSDN) الاختلافات بين مشاريع الويب ومشروعات تطبيقات الويب. أيضا ، فإنه يناقش التكوين المراد إجراؤها في Visual Studio.


موقع الويب = الاستخدام عندما يتم إنشاء الموقع من قبل مصممي الغرافيك والمبرمجين فقط تحرير واحد أو صفحتين

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

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

(يتم العثور على بعض أخطاء التشفير في تطبيقات الويب في وقت الترجمة التي لم يتم العثور عليها في مواقع الويب حتى وقت التشغيل.)

تحذير: كتبت هذه الإجابة منذ سنوات عديدة ولم أستخدم Asp.net منذ ذلك الحين. أتوقع أن الأمور قد انتقلت الآن.


نموذج مشروع تطبيقات الويب

  • يوفر نفس دلالات مشروع الويب كمشاريع Visual Studio .NET Web. يحتوي على ملف مشروع (هيكل يستند إلى ملفات المشروع). بناء النموذج - يتم تجميع جميع التعليمات البرمجية في المشروع في تجميع واحد. يدعم كل من IIS وخادم تطوير ASP.NET المدمج. يدعم جميع الميزات من Visual Studio 2005 (إعادة بيعها ، والأدوية ، وما إلى ذلك) ومن ASP.NET (الصفحات الرئيسية ، العضوية وتسجيل الدخول ، والتنقل في الموقع ، والموضوعات ، الخ). استخدام ملحقات ملقم FrontPage (FPSE) لم تعد متطلبًا.

نموذج مشروع موقع الويب

  • لا يوجد ملف مشروع (على أساس نظام الملفات).
  • نموذج تجميع جديد.
  • تجميع ديناميكي والعمل على الصفحات بدون إنشاء موقع كامل على كل عرض صفحة.
  • يدعم كل من IIS وخادم تطوير ASP.NET المدمج.
  • كل صفحة لديها التجمع الخاص بها.
  • نموذج كود غختلاف.




projects-and-solutions