עבור לתוכן

#C| assemblies

Featured Replies

פורסם

קראתי באנגלית הרבה על הנושא ואני פשוט לא מבין מזה. למה צריך את זה ואיך משתמשים בזה?

האם אפשר לשפר את הקוד שלך עם זה? איך? אני ישמח להסבר אחד בעברית בצורה מפורטת! תודה רבה!

פורסם

"אסמבלי" זה כינוי בדוטנט לחבילה שמאוגדת בקובץ dll אחד.

בשביל ליצור אסמבלי חדש, אתה צריך לפתוח solution קיים ב-visual studio, ואז ללחוץ File > New > Project > Class Library. פרוייקט כזה הוא זהה לחלוטין ל-Console Application (שזה הפרוייקט שאני מניח שאתה רגיל לפתוח), רק שהוא יוצר קובץ dll במקום קובץ exe. קובץ dll כזה הוא לא ניתן להרצה (בניגוד ל-exe), אלא אפשר לצרף אותו לפרוייקט אחר, ע"י כפתור ימני על הפרוייקט ואז add reference (אתה יכול להוסיף רפרנס לפרוייקט אחר בתוך ה-solution שלך, או ל-dll חיצוני).

למה זה טוב? זה עוזר לך לפרק את התכנית שלך לחלקים קטנים, שהתלות ביניהם קטנה (מה שנקרא - encapsulation). כל "חבילה" שאחראית על חלק כלשהו בתכנית שלך מרוכזת בפרוייקט נפרד, וזה מקטין את התלות בין החלקים. בין השאר זה מאפשר לך להחליף ולשדרג חלקים מהתכנית בלי לקמפל את כולה מחדש.

חוץ מזה, יכול להיות שכל התכנית שלך היא אך ורק assemblies. נניח, לדוגמה, שאתה רוצה לפתח כלי נוח לכיווץ קבצים, כדי שמפתחים אחרים יוכלו להשתמש בו. אז אתה תפיץ את הכלי שלך בתור assembly כזה, ולא בתור תוכנה שניתנת להרצה (exe).

פורסם
  • מחבר

תודה רבה על ההסבר ולשמחתי אני כבר השתמשתי בעבר במה שאמרת. רק לא ידעתי שיש לזה שם חוץ מלDLL. פשוט זיינו לי שם תמוח באנגלית ולא הבנתי מזה כלום חחח תודה רבה :)

פורסם

שניציל, עשיתי את מה שאמרת וזה לא נשמר לי בתור קובץ DLL אלא רגיל.

מה לעשות??

פורסם

עשיתי את זה: file<new project<class library ואז כתבתי את המחלקה(קראתי לה COMPUTER) ועשתי SAVE ALL.

הלכתי לתיקיה שנוצרה ולא היה בה קובץ DLL. יש את הקבצים האלה: computer.sln

class1.cs ,computer.csproj ,Computer.csproj.user ,AssemblyInfo.cs

בנוסף נוצרו התיקיות , obj, bin, Service References

אבל הם ריקות...

אז כמו שאתה רואה אין פה שום קובץ DLL... אז בטח אני לא עושה פה משו כמו שצריך... אז איפה הטעות שלי??

תודה על העזרה!

פורסם

לא בניתי. לא ידעתי שצריך...

זה פתר הבעיה..

תודה :xyxthumbs:

פורסם

בנוסף לדברי שניצל , ניתן להריץ קבצי DLL כThread או כRemoteThread :

.(Createthread or createremotethreads

קרא על Dll injections.

פורסם

"אסמבלי" זה כינוי בדוטנט לחבילה שמאוגדת בקובץ dll אחד.

זה מאוגד גם בקובץ EXE , לא?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים