אחת הבעיות הרציניות הנובעות משימוש בדפי שרת אקטיבים (ASP) היא החוסר יכולת לקמפל (Compile) את הקוד. למרות שזו אחת הבעיות המדאיגות את רוב מתכנתי ה-ASP, מיקרוסופט לא השקיעה משאבים רבים בפתרונות לבעיה זו.
בעיה זו מדאיגה מפתחים רבים, משום שבעצם שום דבר לא מונע מהלקוח להשתמש בקוד לשימושו הפרטי. לשפר אותו או אף להשתמש בו כמו שהוא בעצם להפוך למתחרה שלך תוך שימוש בקוד שאתה כתבת בשבילו! בתי תוכנה וחברות אשר מספקות שרות תכנות צריכות להתייחס לבעיה זו ברצינות מרובה כאשר הם חותמים על חוזים. יש לוודא שחותמים על כך שזכויות הקוד נשמרות לזכות כותביו וכל שינוי או שימוש שלא כחתום הוא הפרה של החוק. מה גם שאין שליטה על עובדי הארגון, אשר יכולים בקלות לקחת את הקוד מקור ולתת אותו לחברות מתחרות.
בעיה נוספת היא התמיכה שבקוד. למרות שבעולם אידיאלי הקוד אותו תספק ימצא בשרת מאובטח עם גישה רק לאנשים אשר לא ינסו לשנות או לבדוק את הקוד, אנו פשוט לא נמצאים בעולם שכזה! בסביבת פיתוח של חלונות, בד"כ מספקים קוד מקומפל אשר במקרה שמופיעות בעיות, פעמים רבות ניתן לפתור זאת בעזרת התקנה מחדש. אך כאשר מדובר ב-ASP, הלקוח יכול תמיד לטעון שיש באגים בקוד אשר נובע מתכנות ברמה נמוכה וזה למרות שיכול להיות שמישהו מהשרת פשוט החליט "לשחק" עם הקוד.
אם אתה מתכנת אפליקציות ASP לאינטראנט אז בעיה זו לא משפיעה יותר מידי, היא רלוונטית בעיקר כאשר אתה מוכר את הקוד לחברה מצד שלישי אשר עושה בו שימוש - אבל מי הבטיח לך שזה שימוש חד פעמי?
פתרונות אפשריים לבעיה
אחסון האתר...
אם אפשר, רצוי לאכסן את הקוד אצלך, בשרת שלך. אחסון שכזה ימנע מהלקוח לראות את הקוד ועוד יותר חשוב, ימנע את האפשרות של גניבה או שינוי של הקוד.
שימוש ב-DLLים להחבאת הקוד...
עם ASP ניתן להשתמש בכל ActiveX DLL שנוצר ב Visual Basic או ++C. עובדה זו מאפשרת להכניס את החלקים הקריטים של הקוד - אלו עם הקוד אשר אתה רוצה להסתיר - ולשים אותם בתוך אום אובייקטים.
שימוש באובייקט AspCodeLock...
ישנו אובייט אשר נקרא AspCodeLock וניתן למצוא אותו בכתובת: http://www.serverobjects.com/products.htm#AspCodeLock אובייקט זה מאפשר לקודד את קוד ה-ASP בזמן הפיתוח ומאפשר פענוח הקידוד בזמן ההרצה. קוד ה-ASP מעובד בזיכרון ולר נכתב לדיסק עצמו.
אישית, לא יצא לי להשתמש באובייקט זה, אך נראה כאילו הוא יפתור את כל הבעיות. אבל... אני מציע לבדוק את מהירות הקוד לפני השימוש ואחרי השימוש באובייקט.
בהצלחה
|