מבנה קוד מקור. הארכיטקטורה של nopCommerce

מסמך זה מהווה מדריך למפתחים למבנה ה- solutionשל nopCommerce. מדריך זה מאפשר למפתח nopCommerce חדש ללמוד את בסיס הקוד.ראשית, ניתן להשיג בקלות קוד מקור של nopCommerce. זוהי אפליקציה קוד פתוח כך שכל מה שצריך לעשות הוא להוריד את הקוד מאתר האינטרנט. הפרויקטים והתיקיות רשומים לפי סדר הופעת ב- Visual Studio. אנו ממליצים לך לפתוח את nopCommerce solution בתוכנת Visual Studio ולעבור על הפרויקטים והקבצים תוך כדי קריאת מדריך זה.

רוב שמות הפרויקטים, ספריות וקבצים מיועדים לתת מושג כללי לגבי מטרתם. למשל, אין לי כלל צורך להסתכל בתוך פרויקט שנקרא Nop.Plugin.Payments.PayPalStandard כדי לדעת מה תפקידו.

\Libraries\Nop.Core

פרויקט Nop.Core מכיל סט של מחלקות ליבה עבור nopCommerce כגון, caching, events, helpers ו- business objects(למשל, יישויות Order ו- Customer).

\Libraries\Nop.Data

פרויקט Nop.Data מכיל מחלקות ופונקציות לקריאה מבסיס הנתונים ולכתיבה אליו. ספרית Nop.Data עוזרת להפריד בין לוגיקת גישה לנתונים לבין האובייקטים העסקיים. nopCommerce בגישת Entity Framework (EF) Code-First. Code-First מאפשר למפתח להגדיר את הישויות בקוד המקור (כל ישויות הליבה מוגדרות בפרויקט Nop.Core) ואז להשתמש ב-EF כדי לייצר את בסיס הנתונים ממחלקות C#. על-כן שמו - Code-First. ניתן לבצע שאילתא על האובייקטים בעזרת LINQ המתרגם ל-SQL מאחורי הקלעים ורץ על בסיס הנתונים. nopCommerce עושה שימוש ב-API קוד שוטף בכדי לבצע התאמה מלאה למיפוי persistence. ניתן ללמוד עוד על Code-First כאן או כאן.

\Libraries\Nop.Services

הפרויקט הזה מכיל סט של שירותי ליבה, לוגיקה עסקית, ולידציות או חישובים הקשורים למידע, במידת הצורך. בשם אחר זוהי שכבת Business Access Layer (BAL).

Projects into \Plugins\ solution folder

\Plugins זו תקייה של Visual Studio המכילה את פרייקטי ההרחבות. התיקיה נמצאת פיזית ב-root של ה- solutionשלך. ה-DLL של ההרחבות מועתקים אוטומטית לתיקיה \Presentation\Nop.Web\Plugins\ המשמשת להרחבות שהם כבר deployed היות והנתיבים של כל ההרחבות קבועים ל-"..\..\Presentation\Nop.Web\Plugins\{Group}.{Name}\". בכך יכולות ההרחבות להכיל מספר קבצים חיצוניים כגון CSS או JS ללא שיהיה צורך להעתיק קבצים בין פרויקטים על-מנת שהפרויקט ירוץ.

\Presentation\Nop.Admin

Nop.Admin הוא פרויקט MVC web application. אם טרם השתמשת ב- ASP.NET MVC, ניתן לקבל מידע נוסף כאן. כפי שניתן להבין מהשם, זו שכבת presentation לאזור הניהול. פיזית, הפרויקט ממוקם תחת \Presentation\Nop.Web\Administration. לא ניתן להריץ פרויקט זה.

\Presentation\Nop.Web

גם Nop.Web הוא פרויקט MVC web application. שכבת presentation לחנות. זו האפליקציה שיש להריץ. זהו ה- startup project של האפליקציה.

\Presentation\Nop.Web.Framework

Nop.Web.Framework היא פרויקט ספריית מחלקות (class library) המכילה מספר דברים המשותפים לפרויקטי Nop.Admin ו- Nop.Web.

\Test\Nop.Core.Tests

Nop.Core.Tests הוא פרויקט הבדיקות עבור פרויקט Nop.Core.

\Test\Nop.Data.Tests

Nop.Data.Tests הוא פרויקט הבדיקות עבור פרויקט Nop.Data.

\Test\Nop.Services.Tests

Nop.Services.Tests הוא פרויקט הבדיקות עבור פרויקט Nop.Services.

\Test\Nop.Tests

Nop.Tests הוא פרויקט ספריית מחלקות (class library) המכילה מספר מחלקות בדיקה ו- helpers עבור פרויקטי בדיקה אחרים. הוא אינו מכיל בדיקות.

\Test\Nop.Web.MVC.Tests

Nop.Web.MVC.Tests הוא פרויקט בדיקה עבור פרויקטי שכבות presentation.