הוספת חבילות לפרוייקט .NET שלך
.NET מגיע עם ספריות ליבה רבות המטפלות בכל התוכן, החל מניהול קבצים ל- HTTP עד לדחיסה של קבצים. יש גם מערכת אקולוגית עצומה של ספריות של ספקים חיצוניים. באפשרותך להשתמש ב- NuGet, מנהל החבילות של .NET, כדי להתקין ספריות אלה ולהשתמש בהן ביישום שלך.
.NET וה- ecosystem שלו משתמשים במילה התלות הרבה. תלות בחבילה היא ספריה של ספק חיצוני. זהו קטע של קוד הניתן לשימוש חוזר המאפשר ביצוע פעולה כלשהי ובאפשרותך להוסיף אותו ליישום שלך. הספריה של הספק החיצוני היא משהו שהיישום תלוי, ולכן המילה התלות.
ניתן לחשוב על הספריה של הספק החיצוני כחבילה המאוחסנת במאגר. חבילה מורכבת מספרית אחת או יותר שבאפשרותך להוסיף ליישום שלך כדי שתוכל לנצל את התכונות שלה.
כאן, אנו מתמקדים ב יחסי תלות בחבילה. עם זאת, פרוייקט .NET יכול לכלול סוגים אחרים של יחסי תלות בנוסף ליי תלות בחבילה. כולל, מסגרות, מנתחים, הפניות לפרוייקטים וקשרי תלות של פרוייקטים משותפים.
קביעה אם דרושה לך חבילה
כיצד תוכל לדעת אם אתה זקוק לחבילה עבור הפרוייקט שלך? זו שאלה מורכבת הכרוכה בכמה גורמים:
- מקבל קוד טוב: שאל את עצמך אם אתה מתמודד עם משימה כמו אבטחה, לדוגמה, ואתה מנסה ליישם אימות והרשאות. זו משימה שעליך לבצע כדי לקבל כדי על הנתונים שלך ועל הנתונים של הלקוחות שלך. קיימים דפוסים סטנדרטיים וספריות שמפתחים רבים משתמשים בהן. ספריות אלה מיישמת תכונות שאתה זקוק בהן תמיד, ובעיות מתווות כאשר הן מתרחשות. עליך להשתמש בספריות כאלה במקום ליצור ספריות משלך. לא ייתכן שתכתוב את הקוד גם בעצמך, מכיוון שיש כל כך הרבה מקרי קצה שעליך לשקול.
- לחסוך זמן: סביר להניח שתוכל לבנות את רוב הדברים בעצמך, כגון כלי שירות או ספריות רכיבים של ממשק משתמש, אך פעולה זו נמשכת זמן. גם אם התוצאות שלך דומות להתוצאות הזמינות, לא מומלץ להשתמש בזמן כדי לשכפל את העבודה.
- תחזוקה: כל הספריות והאפליקציות זקוקות לתחזוקה במוקדם או במאוחר. תחזוקה כרוכה בהוספת תכונות חדשות ותיקון באגים. האם כדאי להשתמש בזמן שלך או ב זמן של הצוות שלך לתחזק ספריה, או שעדיף לאפשר לצוות תוכנה בקוד פתוח לטפל בה?
הערכת חבילה
לפני התקנת ספריה, מומלץ לבדוק את יחסי התלות שבהם היא מסתמכת. יחסי תלות אלה עשויים לעודד אותך להשתמש בחבילה, או שהם עשויים להדוף אותך. להלן כמה גורמים שברצונך לשקול בעת בחירת תלות עבור הפרוייקט:
- גודל: מספר יחסי התלות עשוי ליצור טביעת רגל גדולה. אם אתה משתמש ברוחב פס מוגבל או אם יש לך מגבלות חומרה אחרות, גורם זה עשוי להיות חשש.
- רשיון: עליך לוודא שהרשיון שהוענק עבור הספריה מכסה את השימוש המיועד שלך, בין אם השימוש הוא מסחרי, אישי או אקדמי.
- פעילות: ייתכן שיש בעיה אם החבילה שלך מסתמכת על תלות שאינה נשמרת באופן פעיל. ניתן לבטל את התלות או לא לעדכן אותה במשך זמן רב.
באפשרותך לקבל מידע נוסף על חבילה לפני התקנתה על-ידי מעבר אל https://www.nuget.org/packages/<package name>. כתובת URL זו מעבירה אותך לדף מפורט עבור החבילה. בחר את התלות הרשימה הנפתחת כדי לראות אילו חבילות היא מסתמכת על לתפקד.
ייתכן שמספר יחסי התלות המפורטים לא יציין את כל האמת. אם אתה מוריד חבילה, אתה עשוי לסיים תלות בחבילה המכילה עשרות חבילות. למה זה . לכל חבילה יש רשימת יחסי תלות. כדי להבטיח שתוכל להשתמש בחבילה, כל יחסי התלות נסרקים וההורדה שלהם מתבצעת בעת הפעלת dotnet add package <package name> הפעולה.
התקנת חבילה
קיימות כמה דרכים להתקנת חבילות. ישנו שורת פקודה מובנית וממשק משתמש גרפי עבור מנהל חבילה ב- Visual Studio וב- Visual Studio for Mac. באפשרותך להוסיף באופן ידני הפניות לחבילות לקובץ הפרוייקט, או להתקין אותן באמצעות כלי ממשק שורת פקודה (CLI), כגון Paket או .NET Core CLI.
עבור מודול זה, אנו משתמשים ב- CLI המוכלל של .NET Core להתקנת חבילות. באפשרותך להוסיף חבילה לפרוייקט .NET על-ידי הפעלת פקודה במסוף. פקודת התקנה אופיינית נראית כך: dotnet add package <name of package>. בעת הפעלת הפקודה add package, כלי שורת הפקודה מתחבר לרישום כללי, מביא את החבילה ומאחסן אותה במיקום תיקיה המאוחסנת במטמון שבו כל הפרוייקטים יכולים להשתמש.
לאחר שהפרוייקט שלך מותקן וגירסאות Build, ההפניות מתווספות לתיקיות איתור הבאגים או ההפצה שלך. מדריך הכתובות של הפרוייקט שלך נראה בערך כך:
-| bin/
---| Debug/
------| net3.1
--------| <files included in the dependency>
חפש חבילה
מפתחים בודדים עשויים להשתמש ברישום הכללי NuGet.org כדי למצוא ולהוריד חבילות הדרושות להם עבור האפליקציות שלהם. לחברה עשויה להיות אסטרטגיה עבורך עבור החבילות שבהן ניתן להשתמש והיכן למצוא אותן.
חבילות עשויות להיות ממוקמות במקומות רבים ושונות. חלק ממקורות אלה עשויים להיות זמינים לציבור, חלקם עשויים להיות מוגבלים וזמינים רק לעובדים של חברה ספציפית. להלן כמה מקומות שבהם חבילות עשויות להימצא:
- רישום: דוגמה עשויה להיות רישום כללי, כגון NuGet.org הרישום. באפשרותך לארח רישום משלך, שעשוי להיות פרטי או ציבורי. שירותים כגון GitHub ו- Azure DevOps זמינים עבור פריטים פרטיים.
- קבצים: באפשרותך להתקין חבילה מתיקיה מקומית. התקנה מחבילה נפוצה כאשר אתה מנסה לפתח ספריות .NET משלך וברצונך לבדוק את החבילה באופן מקומי. לחלופין, מסיבה כלשהי אינך מעוניין להשתמש ברישום.
הכלי NuGet registry ו- dotnet
בעת הפעלת dotnet add package <name of dependency>, .NET עובר לרישום כללי הנקרא NuGet.org הרישום של https://nuget.org ומ מחפש את הקוד להורדה. באפשרותך גם לעיין בדף זה כדי לאתר חבילות אם אתה מבקר בו באמצעות דפדפן. לכל חבילה יש אתר אינטרנט ייעודי שאליו תוכל להגיע.
באתרים אלה, תוכל לקבל מידע נוסף על מיקום קוד המקור. ניתן גם למצוא מידע כגון מדדים על הורדות ומידע אודות תחזוקה.
פקודות .NET
עד כה, למדת כיצד ניתן להתקין יחסי תלות באמצעות CLI של .NET Core. אך כלי זה יכול לעשות הרבה יותר.
CLI של .NET Core כולל לא מעט פקודות. הפקודות עוזרות לך במשימות כגון התקנת חבילות, חבילות עריכה ואתחול פרוייקטים של .NET. אינך צריך לדעת את כל הפקודות בפירוט. כאשר אתה מתחיל ב- .NET, ייתכן שתשתמש רק ב קבוצת משנה של הפקודות. בעת הרחבת השימוש שלך ב- .NET, תוכל להשתמש בפקודות נוספות מקטגוריות שונות.
כדי לעזור לך לזכור מה הפקודות עושהות, חשוב לחשוב עליהם כשייכים לקטגוריות:
- ניהול יחסי: פקודות בקטגוריה זו מכסות התקנה, הסרה, ניקוי לאחר התקנות חבילה ועדכונים בחבילה.
- הפעל תוכניות: הכלי .NET Core יכול לעזור לך לנהל זרימות בפיתוח האפליקציות שלך. דוגמאות של זרימות יישומים מפעילות בדיקות, קוד בניין ומפעילות פקודות העברה לשדרוג פרוייקטים.
- מחבר ומפרסם חבילות: כמה פקודות יכולות לעזור לך במשימות כגון יצירת חבילה דחוסה ודוחפת את החבילה לרישום.
אם אתה מעוניין ברשימה מפורטת של כל הפקודות, הזן dotnet --help במסוף.
כיצד להתקין חבילה
השתמש בפקודה dotnet add package <dependency name> כדי להתקין תלות רגילה שתשמש כחלק מהיישום שלך.
הערה
באפשרותך להתקין חבילות מסוימות באופן. חבילות אלה אינן מיועדות לייבוא לתוך הפרוייקט שלך. מסיבה זו, חבילות כלליות רבות הן כלי CLI או תבניות. באפשרותך גם להתקין כלים כלליים אלה מתוך מאגר חבילות. התקן כלים באמצעות dotnet tool install <name of package> ברירת מחדל. התקן תבניות באמצעות dotnet new -i <name of package> ברירת המחדל.
לאחר ההתקנה
החבילות המותקנות מפורטות במקטע dependencies של קובץ ה- .csproj שלך. אם ברצונך לראות אילו חבילות נמצאות בתיקיה, באפשרותך להזין dotnet list package.
Project 'DotNetDependencies' has the following package references
[net8.0]:
Top-level Package Requested Resolved
> Humanizer 2.7.9 2.7.9
פקודה זו מפרטת רק את החבילות ברמה העליונה, ולא יחסי תלות בחבילות אלה שאנו קוראים לה ארעיות. פקודה זו יפה לעיון מהיר. אם אתה מעוניין בתצוגה מעמיקה יותר, באפשרותך להציג רשימה של כל החבילות ארעיות. כאשר תעשה זאת, list תיראי כך:
dotnet list package --include-transitive
הכללת פריטים ארעיים מאפשרת לך לראות יחסי תלות יחד עם כל החבילות שהתקנת. אם אתה מפעיל dotnet list package --include-transitive, ייתכן שתקבל פלט זה:
Project 'DotNetDependencies' has the following package references
[net8.0]:
Top-level Package Requested Resolved
> Humanizer 2.7.9 2.7.9
Transitive Package Resolved
> Humanizer.Core 2.7.9
> Humanizer.Core.af 2.7.9
> Humanizer.Core.ar 2.7.9
> Humanizer.Core.bg 2.7.9
> Humanizer.Core.bn-BD 2.7.9
> Humanizer.Core.cs 2.7.9
...
שחזור יחסי תלות
בעת יצירה או שכפול של פרוייקט, לא יורדו או יותקנו יחסי התלות הכלולים עד שתבנה את הפרוייקט. באפשרותך לשחזר באופן ידני יחסי תלות וכלים ספציפיים לפרוייקט שצוינו בקובץ הפרוייקט, על-ידי הפעלת dotnet restore ספציפית. ברוב המקרים, אין צורך להשתמש בפקודה באופן מפורש. שחזור NuGet פועל באופן משתמע, במידת הצורך, בעת הפעלת פקודות כגון new, buildו- run.
ניקוי יחסי תלות
במוקדם או במאוחר, אתה צפוי להבין שאתה כבר לא צריך חבילה. לחלופין, ייתכן שתבין שהחבילה שהתקנת אינה החבילה הדרושה לך. אולי מצאת משימה שתשיג משימה טובה יותר. לא משנה מה הסיבה, עליך להסיר יחסי תלות שאינך משתמש בהם. פעולה זו שומרת על נקיות. כמו כן, יחסי תלות מצלם שטח.
כדי להסיר חבילה מהפרוייקט שלך, השתמש בפקודה remove, כך: dotnet remove package <name of dependency>. פקודה זו מסירה את החבילה מקובץ ה- .csproj של הפרוייקט.