ASP.NET: התחלה חדשה ליישומי Web
רבות מהבעיות המוכרות למפתחים בשפת ASP נפתרו, עם המעבר לסביבת הפיתוח ASP.NET
הנסיגה של מיקרוסופט מטכנולוגית Active Server Pages הקיימת והצגת דרך חלופית ליצירת ישומי Web היתה מתבקשת. הגרסה הראשונה של ASP הוצגה ב-1996 כפתרון פשוט ליצירת דפי אינטרנט דינמיים, בעיקר באמצעות שפת VBScript, אך כבר בראשית דרכה היא נחשבה לטכנולוגיה מיושנת ובעייתית. שילוב בין טכנולוגיית השרת והלקוח (HTML), ביצועים ירודים בשל חוסר קומפילציה ואי שימוש במטמון; התבססותה על שפת תסריטים שאינן מותאמות לפיתוח מונחה עצמים וליצירת ישומי Web מתקדמים, תהליך ניפוי שגיאות בעייתי - כל אלה ועוד חייבו את מיקרוסופט לפתח חלופה טובה יותר. ASP.NET, טכנולוגיה חדשה התופסת את מקומה של ASP הותיקה בחזון .NET החדש של מיקרוסופט, מציעה פתרון אלגנטי לרבות מהבעיות שהציגה ASP.
שפות תכנות אמיתיות
בניגוד ל-ASP הותיקה, בה ניתן היה להשתמש אך ורק בשפות תסריטים פשוטות דוגמת VBScript ו-JScript, ב-ASP.NET ניתן להשתמש בכל אחת מעשרות השפות התואמות ל-Common Language Specification של מיקרוסופט, כולל #C ו-Visual Basic.NET. כך נהנה המפתח משפות תכנות אמיתיות וחזקות התומכות בפיתוח מונחה עצמים, משימוש במחלקות הבסיסיות (Base Classes) של .NET Framework (כולל היכולת המבורכת להעלות קבצים לשרת), מקומפילציה ל-MSIL (קוד ביניים - Intermediate Language - בלתי תלוי בפלטפורמה, המהודר לקוד מכונה בזמן ריצה - JIT Compiling - בדומה ל-bytecode ב-Java) ומסביבת עבודה עשירה ומאוחדת, באמצעותה ניתן לפתח ישומים בכל הסוגים וכל שפות התכנות הנתמכות ב-.NET יחד עם זאת, זה סוף דרכה של InterDev, שאינה כלולה בחבילת הפיתוח Visual Studio.NET.
Server Controls
Server Controls, "פקדי-שרת", מופיעים בדף ה-Web ומוצגים למשתמש כקוד HTML סטנדרטי אך למעשה הם אובייקטים הנוצרים על השרת ומעניקים למפתח גישה מלאה לתכונות ולאירועים של הפקד. פקדי שרת הם עצמים עצמאיים הפועלים כקופסה שחורה: הם יוצרים בעצמם קוד HTML הנשלח למשתמש על-פי המאפיינים הנקבעים על-ידי המפתח ועל-פי כושר ההצגה ויכולות הדפדפן של משתמש הקצה. לדוגמא, קטע קוד המתאים לדפדפן מסוג אינטרנט אקספלורר או קטע קוד המתאים לנטסקייפ. ניתן אף לקשור פקד-שרת לשדות טבלה של מסד נתונים, כך שהנתונים המופיעים בפלט המוצג למשתמש נלקחים מתוך מסד נתונים במהלך יצירת הדף. למעשה, ASP.NET מכילה פקד בשם DataGrid, עמו ניתן להציג מידע המצוי במסד נתונים על גבי דף Web בצורה טבלה, תוך שימוש בכמות קוד מינימלית.
פקדי-שרת אינם מייצרים בהכרח קוד חזותי. ניתן למשל להשתמש בפקדי בדיקת מידע (Validation Controls) המספקים אימות נתונים המוזנים על-ידי המשתמש והתראה למפתח ולמשתמש במקרה שהנתונים שגויים או חסרים. בין היתר קיימים כלים לבדיקת טווח ולהשוואת תאריכים וערכים אלפאנומריים, פקד לאכיפת הזנה של ערך כלשהו ופקד לבדיקת הערך המוזן מול ביטוי תיקני (Regular Expression). לדוגמה, באמצעות הפקד האחרון, תוכל לוודא ששדה המיועד לכתובת דואר אלקטרוני אכן מכיל כתובת בעלת מבנה חוקי, ולהתריע למשתמש במקרה שלא. אימות נתונים מתבצע בצד הלקוח ובצד השרת גם יחד, כך שמשתמש הקצה זוכה לזמן תגובה מיידי בעוד מפתח האפליקציה יכול להיות סמוך ובטוח שהנתונים המוזנים ראויים לטיפולו. העובדה שפקדי-שרת הם עצמאיים ובלתי תלויים בדף בו הם מוצבים, צפויה להביא להצע רחב של פקדים מעניינים ומשוכללים החוסכים מהמפתח מ"להמציא את הגלגל", כנהוג בפיתוח ב-ASP הותיקה.
כלים מובנים נוספים
מערכת הדוט נט כוללת בתוכה אופציות לשמירת מצב פקדים וניהול Sessions בצורה נוחה ויעילה, בין היתר גם באמצעות שרת SQL Server. בנוסף דפי ASP.NET עוברים קומפילציה לקוד IL בפעם הראשונה שניגש אליהם הדפדפן מאז שונו בפעם האחרונה. כך מתאפשר שיפור בביצועים תוך שמירת היכולת לבצע שינויים במהירות, ללא הליך קומפילציה מפורש של מפתח האפליקציה. באפשרותך לקבוע את משך הזמן שישהה חלק כלשהו במטמון, שיטות המטמון בהן יש להשתמש, עמודים ופקדים שיוצגו שוב בשלמותם מבלי שיווצרו מחדש עבור כל בקשה, פרמטרים שחורצים האם בקשה מסוימת זהה לבקשה קודמת, ועוד.
אינטגרציה באמצעות Web Services
אינטגרציה של פיסות מידע ממקורות שונים והרצון להשתמש בשירותים של ספקים חיצוניים דרשה עד כה "תפירה" של פתרון יעודי וממוקד, משום שלא היה תקן אחד בו דיברו כל הספקים והלקוחות. כך, למשל, אם רצית להוסיף להציג ללקוחות החנות המקוונת שלך את מצב המשלוח המיועד להם, היה עליך "לתפור" פתרון שיתאים במיוחד למערכת בה משתמשת החברה המבצעת עבורך את המשלוחים. אם תרצה לעבור לחברת משלוחים אחרת, תצטרך "לתפור" פתרון אחר, משום שהחברה הקיימת והחברה החדשה אינן "מדברות" באותם פרוטוקולים. .NET מאפשרת לך ליצור ולצרוך שירותי Web תוך שימוש בערכה של פרוטוקולים סטנדרטיים ופתוחים, הנתמכים על-ידי ארגונים וחברות מכל עולם התוכנה. UDDI מאפשר לך לגלות שירותי Web שימושיים תוך שימוש במאגרים עצומים של יבמ, מיקרוסופט, HP ו-SAP. WSDL נועד לתיאור שירותי Web והוא מבוסס על הסכמה משותפת בין מיקרוסופט, יבמ וגופים אחרים. באמצעות SOAP, פרוטוקול המבוסס גם הוא על XML, ניתן לקרוא לפונקציות מרוחקות. לצורך יצירה וצריכה של שירותי Web, לא תצטרך לדעת יותר מדי על הפרוטוקולים האלו, משום ש-ASP.NET עוטפת אותם עבורך.