לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #3  
ישן 29-10-2007, 18:31
צלמית המשתמש של Humbug
  משתמש זכר Humbug Humbug אינו מחובר  
אדמין לשעבר
 
חבר מתאריך: 25.10.01
הודעות: 20,292
מידע ברשותך, ארחיב מעט-
בתגובה להודעה מספר 2 שנכתבה על ידי xyzzz שמתחילה ב "חשבת על האפשרות שתוכנית צריכה..."

כאשר אתה מפתח אפליקציה בסביבה כלשהי, אתה בהכרח עושה שימוש בספריות שניתנות לך מטעם הסביבה.

סצנריו א':

בעבר, המקשר ידע לחבר קבצי OBJ שונים לידי תוכנית אחת גדולה. כך לדוגמא, לא היית צריך להפיץ
עם התוכנית שלך קבצים כמו stdio, conio ושאר מרעין בישין.
מצד שני, התוכניות רק הלכו וגדלו עם השנים. עם החדירה של סביבת חלונות, כל קובץ EXE יכל לכלול
בתוכו גם את המשאבים בהם הוא משתמש (לדוגמא: אייקונים, תמונות, טבלאות של מחרוזות וכו').
הדבר יצר גידול אדיר בגודל של קבצי הEXE.

סצנריו ב':

בלי שום קשר לעבר, מאז ומעולם היה קיים צורך להשתמש שוב בחלקי קוד. זה התחיל עם קבצי LIB
שיכולת להפיץ לפרויקטים שונים בארגון על-מנת שישתמשו בהם כתשתיות - והמשיך בעידן החלונאי לקבצי DLL.
אתה יכול לשאול שוב את השאלה - למה כשאתה מהדר את האפליקציה, שלא תקח את הקבצים האלו
ותכניס אותם לתוך הקוד שלך? הסיבה היא שלא תמיד אתה זה שכותב את אותו קוד. לדוגמא - נניח
שאתה כרגע מייצר תוכנית שעושה שימוש ברכיבי Winsock לצורך תקשורת. אתה יכול מחד לפתח
בעצמך רכיב Winsock. מצד שני, אתה יכול להחליט לעשות שימוש ברכיב שמיקרוסופט כבר פתחה
עבורך. אין לך שום גישה לקוד המקור של הרכיב הזה - אבל אתה יכול להשתמש בו. אתה נגש אליו כDLL.
יש לך חוזה ברור איתו. אתה יודע מה הוא מצפה לקבל - ואתה יודע מה לצפות לקבל ממנו. כך נוצר מצב
שהתוכנה שלך משתמשת ברכיב חיצוני שלא אתה כתבת. אם אולי, רכיב שכתבת - אבל הוא חיצוני
למערכת שאתה כרגע מייצר.
הצורך בהפצה במקרה הזה ברור - אצלך במחשב יש את אותו winsock.dll. אבל האם אתה יכול להיות
בטוח שבכל מחשב שיבחר להריץ את האפליקציה שלך הוא יהיה קיים? (האמת שכאן הדוגמא לא טובה,
היות וזו הנחה מאוד סבירה עבור הקובץ הספציפי הזה.. אבל זרום איתי לצורך הדוגמא).

סצנריו ג':

אתה יכול להגיד - אז למה שלא תהיה לי אפשרות להכניס את הwinsock.dll המדובר לתוך התוכנית שלי
(בדומה לקובץ lib) ולהמשיך להפיץ את התוכנית שלי כקובץ בודד - הו כאן אנחנו נכנסים לנושא
תחזוקתיות של קוד ושל חבילות תוכנה. במקרה הנ"ל, winsock זו חבילה שמתוחזקת ע"י מיקרוסופט.
במידה ויתגלה בה באג, מיקרוסופט תדאג להפיץ עדכון של הקובץ. אבל במידה והכנסת קובץ ישן לתוך
המערכת שלך - אתה לא תהנה מהתיקון הזה. אותו דבר בארגון שלך. במידה וצוות תשתיות כלשהו מפיץ
עדכון של רכיב שבו אתה משתמש - הוא יכול להפיץ את זה לכל המחשבים בארגון, בלי שאתה - יוצר
האפליקציה תצטרך להיות מודע לזה בכלל.



שלושת הסצנריוים שמתוארים כאן הם רק חלק מהסיבות שהעולם הלך לכיוון של פיתוח מונחה ספריות.
אני בטוח שגולשי הפורום יוכלו למצוא עוד כמה. אבל הנקודה ברורה.
_____________________________________
דורון

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 11-11-2007, 20:19
צלמית המשתמש של ArnonG
  ArnonG ArnonG אינו מחובר  
 
חבר מתאריך: 17.01.05
הודעות: 4,733
בתגובה להודעה מספר 1 שנכתבה על ידי יגואר1 שמתחילה ב "למה בכלל יש צורך בהתקנה?"

ההסברים שלכם נכונים באופן כללי אבל חסר מרכיב מרכזי -
ב-Net. מיקרוסופט שינו את התפיסה ובנו ספרית רכיבים מרכזית בשם CLR.
כאשר מריצים תוכנית בעצם ה-CLR מריץ אותה.

בזמן הקימפול - נוצר קוד ביניים לתוכנית ולא EXE אמיתי - מה שנקרא IL או Intermediate Language.
בזמן הריצה הראשונה המערכת משלימה את הקומפילציה באמצעות ה-CLR של המכונה המריצה.
באופן תיאורטי אפשר להריץ אותו IL על מכונות שונות (Windows, Unix וכו'...) והוא יעבוד בכולן.

למרות שבסוף יש לכאורה EXE מקומפל - עדין ה-CLR חיוני להרצת התוכניות ולכן אי אפשר להריץ תוכניות Net. על מחשב ללא Framework.

אגב - זו הסיבה שהאקרים עדין עובדים ב-++C .....
_____________________________________
כל מי שמתיחס אלי ברצינות רבה מדי - עושה זאת על אחריותו האישית !
http://www.pbase.com/arnon_g

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 09:39

הדף נוצר ב 0.06 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר