ההמלצה שלי היא ASP.NET MVC. לא בגלל הרעיון עצמו, אלא
א. פשוט כל ההיבטים המודרניים של תעשיית התוכנה הוטמעו שם די טוב.
ב. הASP.NET הרגיל עובד עם WebForms ובן לוייתו ViewState שלדעתי זה טכנולוגיה נוראה. עדיף PHP או כל דבר אחר מזה.
נ.ב. הייתי ממליץ על ASP.NET MVC CORE, שזה גלגול מודרני יותר (בהרבה דברים), וכבונוס הוא חוצה פלטפורמות ורץ על כל מערכת.
שאלת מה ההבדלים. אז WebForms זה פשוט זבל. אין טען להתייחס לעבודה הכבירה שנעשתה שם שפשוט לא לקחה בחשבון את אופי הארכיטקטורה והתכנות בווב.
לעומת זאת, איך עובד MVC בASP.NET:
קודם כל MVC זה תבנית עיצוב של תוכנה שנמצאת במגוון שפות וטכנולוגיות. הרעיון שלה הוא שהמשתמש עובד מול תצוגה (V), התצוגה נוצרת ע"י הבקר (C), ואותו הבקר הוא גם זה שמגיב על אירועי/בקשות המשתמש דרך התצוגה (ביישום אינטרנט המונח הנכון זה בקשות). הבקר עצמו ממונה רק על התקשורת, כשהמידע הגולמי מועבר/מתקבל על ידו מ/אל המודל (M).
זה יפה לתיאוריה, למעשה יש חופש בתוך הכללים האלה.
בASP.NET הMVC נבנה עם הרבה השראה מRuby on Rails, שכוללת עקרונות שונים כמו CoC - Convention Over Configuration, שזה אומר בעברית "מוסכמות על פני הגדרות" - ההשלכה המעשית: כל פרט שניתן להניח מה תהיה ההגדרה שלו, זו התנהגותו ללא כתיבת הגדרה זו בפירוש. הכלל הזה ממש מכסה את כל מערכת הMVC בASP.NET.
עקרונות הליבה של יישום ASP.NET MVC:
- ניתוב - Routing.
ביישום אינטרנט מסורתי שורש הURL בעצם מפנה לשורש תייקת האתר, והנתיב מכאן ואילך הוא ביחס לשמה תיקיה בתוך תקיה וכו' עד לקובץ המתאים, למשל: http://example.com/directory-a/directory-b/file.php
ביישום MVC הניתוב הוא מופשט ובלי קשר למבנה תיקיית האתר. בעצם ישנו "מטפל" אחד בכל הנתיבים, שלפי הנתיב מנתב למתודה של קונטרולר. בברירת מחדל (מוסכמה) האיבר הראשון אחרי שורש האתר מצביע על שם הקונטרולר, והשני על מתודה שבו, אלא שאחריהם יכולים להיות מנותבים לפרמטרים למתודה. - בקרים - Controllers
יכול להיות כמה בקרים שרוצים, ברך כלל הם תחת תיקיה בשם Controllers. בכל Controller יש כמה מתודות, כל אחת בדרך כלל אחראית לייצר תצוגה.
(יש גמישות מלאה איזה מתודות לשים באיזה בקר, בעצם זה נטו עניין של טעם אישי וסדר כמו תיקות וקבצים). - תצוגות - Views
הרעיון של תצוגה בMVC זה פיסת פרוצדורה שלא עושה שום דבר שלא נוגע לתצוגה, והיא מתקשרת אך ורק עם הController.
בASP.NET נעשה שימוש במנוע תצוגה נח וקל מאוד בשם RAZOR הוא הטוב ביותר שקיים לדעתי.
התצוגות בדרך כלל מקובצות בתיקיות כשכל קבוצת תצוגות ששייכת לבקר מסויים נמצאות תחת תיקיה כשם הבקר, שהיא תחת תיקיה ראשית בשם Views. - מודלים
זה "סתם קוד", שעל פי הכללים עדיך לעשות בו את הלוגיקה והעבודה עם המסד נתונים וכו' מאשר בבקר. כמובן שאין על זה קנסות מהמשטרה ואפשר להתגמש אבל זה הדרך לפי הספר.
בקשר לשפה, יש לך את VB בשניהם, כלומר VB.NET, יש חלקים מתקדמים בשפה כמו Attribute שהופכים בMVC להיות בשימוש תכוף מאשר בטכנולוגיות אחרות, אבל אלו לא דברים שמחייבים הבנה מעמיקה.
הספרים יש רק אחד, השני, והוא תרגום חלש אבל רע במיעוטו.
אני מעודד לקפוץ למים גם תוכל לקבל פה עזרה ובפרט בפורום האקסקלוסיבי.
