dll or מודולים

eyalvais

New member
dll or מודולים

אני כותב תוכנית מורכבת שיש בה שימוש נרחב בבסיס נתונים וקראתי מאמר בפורום על שיטה של עבודה בשכבות (tiring) הייתי מעוניין לדעת האם יש למישהו קישור למאמרים בנושא של שילוב DLL בתוכניות ויזואל בייסיק, או האם לדעתכם שימוש במודולים הוא תחליף לשימוש בקבצי DLL ומה היתרון והחיסרון בכל אחת מהשיטות. תודה אייל.
 
המממ....

כשאתה אומר מודולים, אתה מתכוון למודולים של VB - כלומר קבצי BAS או Classים? אם כן - זה קצת מפספס את הרעיון של שכבות. הרעיון בשכבות זה להפריד בין הרכיבים לגמרי - אם ב DLL ואם ב EXE. אפשר במקום לכתוב DLLים לעשות פרויקט אחד שמכיל את כל הקוד, ולחלק בו את הקוד למודולים ומחלקות - זה לא רק רצוי אלא אפילו חיוני לדעתי בשביל שיהיה אפשר לתחזק את הקוד אח"כ. הבעיה היא שכל שינוי יחיייב קימפול מחדש של כל המערכת. שילוב DLLים בפרויקט VB זה דבר שקוף לגמרי, ואפשר לעשות הכל דרך VB - יוצרים ActiveX DLL ב VB ומקמפלים אותו. בשביל להשתמש בו בפרויקט אחר מוסיפים הפנייה אליו ב References, ואז כל המחלקות שמוגדרות כ Public בDLL זמינות לפרויקט. דבר אחד שכדאי לשים לב אליו זה תאימות - אחרי הקימפול הראשון מניחים בספרייה נפרדת עותק של ה DLL ובהגדרות הפרויקט (של ה DLL בתוך ה VB) מגדירים ב Compoenent-->Binary Compatability שהתאימות היא לעותק של ה DLL. ככה כל קימפול מחדש של ה DLL לא יירשם כ DLL חדש אלא ידרוס את הרישום של ה DLL הקודם.
 

eyalvais

New member
קישורים

האם אתה מכיר לינקים לאתרים שמסבירים עם דוגמאות קוד שימוש בכל מה שהסברת לי כי אני לא מצאתי, הרעיון שחשבתי עליו לגבי המודולים זה לעשות מודול שמטפל בקישור לDB ומודול למשל שיטפל בשאילתות ומודול שיטפל בהפקת דוחות, השאלה היא האם למשל: בשלב זה הפרויקט אמור לעבוד עם DB מקומי ואולי בעתיד הוא יעבור לעבוד ברשת, האם שימוש במודולים יאפשר לי בעתיד לעשות את ההמרה מסוג DB אחד לשני. תודה אייל
 
MSDN

לך ל MSDN תסתכל שם בדוגמאות של Enterprise Development - יש שם כמה, למשל Duwamish Books, Fitch and Mather, Nile.com וכו´. בקשר לתוכנה שלך - בהחלט זה יאפשר לך לעשות המרה. אם כל הקוד שמטפל בגישה לדטהבייס נמצא במודול נפרד, אז שינוי בדטהבייס יצריך שינוי במודול הזה בלבד. כמובן שצריך לחשוב מראש איך לבנות את המודול בצורה כזאת ששינוי בקוד הפנימי שלו לא ישנה את הגדרות הפונקציות, כי ברגע ששינית שם של פונקציה אחת או הוספת משתנה, אז כבר צריך לשנות קוד גם בכל שאר המודולים.
 
למעלה