تم تحديث نماذج تطبيقات eShop ونقلها إلى https://github.com/dotnet/eShop. سيستمر التطوير النشط هناك. نوصي أيضًا بتوجيهات أنماط تطبيقات الويب الموثوقة لإنشاء تطبيقات الويب باستخدام أنماط تطبيقات المؤسسة.
نموذج لتطبيق مرجعي لـ ASP.NET Core، مدعوم من Microsoft، يوضح بنية تطبيق (متجانسة) أحادية العملية ونموذج نشر. إذا كنت جديدًا في تطوير .NET، فاقرأ دليل البدء للمبتدئين.
يمكن العثور على قائمة بالأسئلة الشائعة حول هذا المستودع هنا.
سجل Steve "ardalis" Smith بثًا مباشرًا يقدم نظرة عامة على تطبيق eShopOnWeb المرجعي في أكتوبر 2020.
يهدف هذا التطبيق المرجعي إلى دعم الكتاب الإلكتروني الذي يمكن تنزيله مجانًا بتنسيق PDF: تصميم تطبيقات الويب الحديثة باستخدام ASP.NET Core وAzure، المحدث إلى ASP.NET Core 8.0 . متوفر أيضًا بتنسيقات ePub/mobi.
يمكنك أيضًا قراءة الكتاب في الصفحات عبر الإنترنت على مستندات .NET هنا: https://docs.microsoft.com/dotnet/architecture/modern-web-apps-azure/
يرتبط نموذج eShopOnWeb بتطبيق نموذج eShopOnContainers والذي، في هذه الحالة، يركز على بنية التطبيقات المستندة إلى الخدمات الصغيرة/الحاويات. ومع ذلك، يعد eShopOnWeb أبسط بكثير فيما يتعلق بوظائفه الحالية ويركز على تطوير تطبيقات الويب التقليدية من خلال عملية نشر واحدة.
الهدف من هذه العينة هو توضيح بعض المبادئ والأنماط الموضحة في الكتاب الإلكتروني. ليس المقصود منه أن يكون تطبيقًا مرجعيًا للتجارة الإلكترونية، وبالتالي فهو لا يطبق العديد من الميزات التي قد تكون واضحة و/أو ضرورية لتطبيق التجارة الإلكترونية الحقيقي.
الإصدارات
يعمل الفرع
main
حاليًا بـ ASP.NET Core 8.0.يتم وضع علامة على الإصدارات الأقدم.
يجب أن تبدو الصفحة الرئيسية للمتجر كما يلي:
Azure Developer CLI ( azd
) عبارة عن أداة واجهة سطر أوامر (CLI) تركز على المطورين لإنشاء تطبيقات Azure.
تحتاج إلى تثبيته قبل التشغيل والنشر باستخدام Azure Developer CLI.
powershell - ex AllSigned - c " Invoke-RestMethod 'https://aka.ms/install-azd.ps1' | Invoke-Expression "
curl -fsSL https://aka.ms/install-azd.sh | bash
ويمكنك أيضًا التثبيت باستخدام مديري الحزم، مثل Winget وChoco وBreaw. لمزيد من التفاصيل، يمكنك اتباع الوثائق: https://aka.ms/azure-dev/install.
بعد تسجيل الدخول باستخدام الأمر التالي، ستتمكن من استخدام azd cli لتوفير التطبيق ونشره بسرعة.
azd auth login
ثم قم بتنفيذ الأمر azd init
لتهيئة البيئة.
azd init -t dotnet-architecture/eShopOnWeb
قم بتشغيل azd up
لتوفير كافة الموارد لـ Azure ونشر التعليمات البرمجية على تلك الموارد.
azd up
وفقًا للموجه، أدخل env name
، وحدد subscription
location
، فهذه هي المعلمات الضرورية عند إنشاء الموارد. انتظر لحظة حتى يكتمل نشر المورد، وانقر فوق نقطة نهاية الويب وستظهر لك الصفحة الرئيسية.
ملحوظات:
يمكنك أيضًا تشغيل العينة مباشرةً محليًا (انظر أدناه).
تعمل معظم وظائف الموقع مع تشغيل تطبيق الويب فقط. ومع ذلك، تعتمد صفحة إدارة الموقع على Blazor WebAssembly الذي يعمل في المتصفح، ويجب أن تتواصل مع الخادم باستخدام تطبيق الويب PublicApi الخاص بالموقع. ستحتاج أيضًا إلى تشغيل هذا المشروع. يمكنك تكوين Visual Studio لبدء مشاريع متعددة، أو مجرد الانتقال إلى مجلد PublicApi في نافذة طرفية وتشغيل dotnet run
من هناك. بعد ذلك من مجلد الويب يجب عليك تشغيل dotnet run --launch-profile Web
. الآن يجب أن تكون قادرًا على التصفح إلى https://localhost:5001/
. يمكن الوصول إلى الجزء الإداري في Blazor عبر https://localhost:5001/admin
لاحظ أنه إذا كنت تستخدم هذا الأسلوب، فستحتاج إلى إيقاف التطبيق يدويًا لإنشاء الحل (وإلا فستحصل على أخطاء في قفل الملف).
بعد استنساخ العينة أو تنزيلها، يجب عليك إعداد قاعدة البيانات الخاصة بك. لاستخدام النموذج مع قاعدة بيانات مستمرة، ستحتاج إلى تشغيل عمليات ترحيل Entity Framework Core قبل أن تتمكن من تشغيل التطبيق.
يمكنك أيضًا تشغيل العينات في Docker (انظر أدناه).
بشكل افتراضي، يستخدم المشروع قاعدة بيانات حقيقية. إذا كنت تريد قاعدة بيانات في الذاكرة، فيمكنك إضافة ملف appsettings.json
في مجلد الويب
{
"UseOnlyInMemoryDatabase" : true
}
تأكد من أن سلاسل الاتصال الخاصة بك في appsettings.json
تشير إلى مثيل SQL Server محلي.
تأكد من تثبيت الأداة EF بالفعل. يمكنك العثور على بعض المساعدة هنا
dotnet tool update --global dotnet-ef
افتح موجه الأوامر في مجلد الويب وقم بتنفيذ الأوامر التالية:
dotnet restore
dotnet tool restore
dotnet ef database update -c catalogcontext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj
dotnet ef database update -c appidentitydbcontext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj
ستقوم هذه الأوامر بإنشاء قاعدتي بيانات منفصلتين، واحدة لبيانات كتالوج المتجر ومعلومات عربة التسوق، والأخرى لبيانات اعتماد مستخدم التطبيق وبيانات الهوية.
قم بتشغيل التطبيق.
في المرة الأولى التي تقوم فيها بتشغيل التطبيق، سيقوم بتزويد قاعدتي البيانات ببيانات بحيث ترى المنتجات في المتجر، ويجب أن تكون قادرًا على تسجيل الدخول باستخدام حساب[email protected].
ملاحظة: إذا كنت بحاجة إلى إنشاء عمليات ترحيل، فيمكنك استخدام هذه الأوامر:
-- create migration (from Web folder CLI)
dotnet ef migrations add InitialModel --context catalogcontext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj -o Data/Migrations
dotnet ef migrations add InitialIdentityModel --context appidentitydbcontext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj -o Identity/Migrations
يتضمن هذا المشروع مجلد .devcontainer
مع تكوين حاوية التطوير، والذي يتيح لك استخدام الحاوية كبيئة تطوير كاملة الميزات.
يمكنك استخدام حاوية التطوير لإنشاء التطبيق وتشغيله دون الحاجة إلى تثبيت أي من أدواته محليًا! يمكنك العمل في GitHub Codespaces أو ملحق VS Code Dev Containers.
تعرف على المزيد حول استخدام حاوية التطوير في الملف التمهيدي الخاص بها.
يمكنك تشغيل نموذج الويب عن طريق تشغيل هذه الأوامر من المجلد الجذر (حيث يوجد الملف .sln):
docker-compose build
docker-compose up
يجب أن تكون قادرًا على تقديم طلبات إلى localhost:5106 لمشروع الويب، وlocalhost:5200 لمشروع Public API بمجرد اكتمال هذه الأوامر. إذا كانت لديك أية مشكلات، خاصة في تسجيل الدخول، فحاول من ضيف جديد أو مثيل متصفح متخفي.
يمكنك أيضًا تشغيل التطبيقات باستخدام الإرشادات الموجودة في ملف Dockerfile
الخاص بها في جذر كل مشروع. مرة أخرى، قم بتشغيل هذه الأوامر من جذر الحل (حيث يوجد الملف .sln).
لدينا بعض المساهمات الرائعة من المجتمع، وعلى الرغم من أن Microsoft لا تحتفظ بها، إلا أننا لا نزال نريد تسليط الضوء عليها.
eShopOnWeb VB.NET لمحمد حمدي غانم
FShopOnWeb لعبة F# تتحدى eShopOnWeb بقلم Sean G. Wright وKyle McMaster