MVC – פיתוח רב שכבתי

ל- MVC יתרונות רבים על פני פיתוח ב ASP.NET – בהפרדת השכבות, שינוי התשתיות ובחלוקת העבודה

הפוסט מפורסם בחסות חברת E4D המארגנת את כנס Expert Days 2011, האירוע המקצועי המעמיק והמקיף ביותר בטכנולוגיות מיקרוסופט. חמישה ימים של טכנולוגיה. סדנאות עומק המכסות את כל הנושאים החמים ביותר, כל סדנא בת יום אחד, בנושא אחד.

שמעתם כבר על MVC בעולם פיתוח האפליקציות ה web-יות ? נתקלתם אולי במונח הזה בבלוגים, בפרסומים של מיקרוסופט או בספרות המקצועית ולא הייתם בטוחים שאתם מבינים עד הסוף במה מדובר ? הפעם בחרנו להכיר לכם את המודל החדש הכובש את מקומו ומחליף את פיתוח ה ASP.NET המסורתי.

לכובע שלי שלוש פינות – M V C בראיה היסטורית

עד לפני מספר שנים, היה פיתוח ב ASP.NET הדרך המרכזית והנפוצה ביותר לפתח אתרים ואפליקציות WEB בעלות לוגיקה משמעותית המשלבת גישה לבסיסי מידע, עיבוד נתונים, הצגת הנתונים למשתמש וכמובן – ההתמודדות הבלתי נגמרת עם צורות ההצגה השונות של המידע בהתאמה לפלטפורמת התצוגה שלו (דפדפן או אייפון?). למרבה הצער, רבים הם המפתחים המכירים היטב את המורכבות שבעבודה בסביבה זו, את הקושי לפתח אפליקציות ואת הטיפול הנדרש בכל רכיבי המידע תוך כתיבת קוד מורכב וארוך, שלא לדבר על מורכבות ביצוע unit testing או debugging.

אז לקחה מיקרוסופט את מודל ה MVC המוכר כ pattern מהעבר, והתאימה אותו גם לעולם הפיתוח ב WEB, מה שהביא לשינוי משמעותי. נכון, המודל החדש דורש זמן לימוד ותרגול, אולם מפתחים שמצליחים לעשות את השינוי ולחשוב MVC-ית, להתרגל לכך שמדובר בפיתוח Service Oriented ולהבין את הניקוי שביצעה מיקרוסופט במנוע ה ASP.NET המסורתי – לא יחזרו לפתח בגרסה הישנה.

ל-  MVC יתרונות רבים על פני פיתוח ב ASP.NET

1. היתרון הגדול והמרכזי ביותר של MVC הוא כמובן הפרדת השכבות והיכולת לנתק לחלוטין את אופן עיבוד המידע (שכבת ה control) משכבת ההצגה שלו למשתמש (view). המשמעות היא שבניגוד ל ASP.NET המסורתי, שם נדרש מפתח הלוגיקה להכיר גם את האובייקטים המופיעים על המסך ולנתח אותם (איזו פעולה בוצעה ועל איזה אובייקט?), הרי שבפיתוח תחת מודל ה MVC כל שמפתח הלוגיקה נדרש לדעת הוא מהם הארגומנטים אותם הוא מקבל משכבת ה view ואיזה מידע מועבר בתוכם. הcontroller עצמו אינו נדרש עוד לזהות בעצמו את האובייקט שהפעיל אותו, הוא אינו נדרש לדוגמא לנתח איזה כפתור נלחץ, הוא רק נדרש לקבל את הקלט שהוא מצפה לו, להפעיל את העיבוד ולהחזיר לשכבת ה VIEW את הפלט המתאים.

2. פיתוח ב MVC מאפשר לשנות את התשתיות ולכוונן את המנוע. כך לדוגמא, בזכות התוספות וממשקי הקוד שפותח המודל למפתחים יכולים אלה לשכתב את מנועי ה view או ה model binder, להוסיף קוד שיוכל לרוץ לפני ה action או לאחריו, לבצע dependency injection ולשנות את התשתית באופן שיסייע לתוכנה לרוץ בצורה נכונה ויעילה יותר.

3. מודל MVC מאפשר חלוקת העבודה בין מפתחים שונים, בעלי יכולות והכשרה שונה. כך לדוגמא מפתחי שכבת ה Control הם מפתחים בצד השרת המתמחים בכתיבת services מבלי שהם נדרשים להבין משהו בHTML או ב JQuery. מפתחי שכבת ה View לעומת זאת, יהיו HTML-יסטים או כותבי UI בכל טכנולוגיה אחרת – Jquery, Javascript, Jason, ואחרים, מבלי שיש כל צורך שיבינו בכתיבת קוד ה ASP.NET עצמו.
על הקלות הבלתי נסבלת של ביצוע unit testing ל MVC

יתרון משמעותי נוסף של MVC הוא בקלות התכנון והביצוע של unit tests לקוד עצמו. כבר בעת פתיחה של פרויקט MVC חדש בכלי הפיתוח של מיקרוסופט, נשאל המפתח האם הוא רוצה לפתוח גם פרויקט unit testing לבדיקת הקוד המצוי בשכבת ה Control וה model. את שכבת ה View לעומת זאת, אין אפשרות לבדוק באמצעות unit testing ויש להמשיך לעבוד באמצעים אחרים ששימשו עד כה (דוגמת הקלטות UI).

אז מה צריך לעשות מי שרוצה להתחיל לפתח ב MVC ? דבר ראשון, לפרק

הדבר הראשון שצריכה לעשות כל חברה המעוניינת לעבור לפתח במודל MVC הוא לקחת את האפליקציות הWEB-יות שלה, לפרק אותן לדפים ולאפיין היטב כל דף. בשלב הזה נדרש המפתח להתנתק לגמרי מהמבנה הנוכחי של הדף ומהקוד שיש בו ולהשקיע בזיהוי הקלט שאותו דף מעביר אל שכבת ה control וכן בזיהוי הפלט החוזר אל ה view. בסיום השלב הזה חשוב לעצור ולתכנן גם את הבדיקות שיעבור כל רכיב בכל שכבה במערכת, על מנת לבצע גם את ה unit testing בצורה נכונה. רק בדרך זו ניתן לפתח Service Oriented Applications כפי שמודל ה MVC מממש ולחלק את העבודה בין מפתחי קוד השרת ומפתחי הUI, כפי שהוסבר קודם לכן.

מחפשים מקורות לימוד טובים עבור מפתחים מתחילים בתחום זה? נסו את האתר הרשמי של מיקרוסופט לMVC, וכמובן – בלוגים לרוב העוסקים בתחום, דוגמת הבלוג של אייל ורדי, מנכ”ל משותף ו CTO של חברת E4D, בעל הסמכת MVP של מיקרוסופט.

רוצים ללמוד עוד על פיתוח במודל MVC ?

במסגרת כנס Expert Days 2011 מעביר אייל ורדי מספר סדנאות, ביניהן סדנת ASP.NET MVC 3.0 המיועדת למפתחים וראשי צוותים בתחום ASP.NET שמעוניינים להתפתח אל עולם ה MVC. הסדנא מתקיימת ב-11 ביולי ובה יזכו המשתתפים ל kickstart מרוכז לקראת פיתוח אפקטיבי במודל MVC, בצורה מרוכזת, מדויקת ומהירה.

ליאת שקד

ליאת שקד היא מנהלת השיווק במדיה חברתית בחברת E4D.

הגב

14 תגובות על "MVC – פיתוח רב שכבתי"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

* היי, אנחנו אוהבים תגובות!
תיקונים, תגובות קוטלות וכמובן תגובות מפרגנות - בכיף.
חופש הביטוי הוא ערך עליון, אבל לא נוכל להשלים עם תגובות שכוללות הסתה, הוצאת דיבה, תגובות שכוללות מידע המפר את תנאי השימוש של Geektime, תגובות שחורגות מהטעם הטוב ותגובות שהן בניגוד לדין. תגובות כאלו יימחקו מייד.

סידור לפי:   חדש | ישן | הכי מדורגים
david
Guest

עוד פרסומת במסווה של מאמר… האתר מתדרדר מיום ליום ופשוט הופך לזרוע שיווקית של E4D. חבל.

ואם כבר, אז לפחות תדייק. מיקרוסופט לא חשבה על לאמץ את MVC לווב- לא הייתה שום חדשנות מצד מיקרוסופט – הם פשוט העתיקו את הרעיון של ruby on rails, שאימץ את MVC כמה שנים טובות לפני מיקרוסופט.

ישי סמיט
Guest

“עד לפני מספר שנים, היה פיתוח ב ASP.NET הדרך המרכזית והנפוצה ביותר לפתח אתרים ואפליקציות WEB בעלות לוגיקה משמעותית”
באמת? אפשר בבקשה לספק קצת יותר מידע בלתי תלוי?
למשל:
היסטורי http://hotframeworks.com/rankings/by/popularity
עכשווי http://www.javalobby.org/java/forums/t101110.html
הייתי מעדיף לשים כתבות שיווקיות של מנהלי שיווק במדור פרסומי עם גילוי נאות…

שימי
Guest

הצחקתם אותי מודל “חדש” . zend framework וכמעט כל Fw אחר של PHP עושה שימוש בPattern הזה למעלה מ3 שנים.

מה שכן אחלה שהוספתם כלים בשביל זה הרי ידוע שאי אפשר להצמד ל שום design pattern בלי ש M$ תגבה כמה שקלים במסווה של sdk חדש…

אלון
Guest

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

קרטמן
Guest

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

oc666
Guest

אם שיווקו פה חברת תוכנה, אני אעלה על הגל ואפרסם משהו בקוד פתוח….
למי שמעוניין יש גם מערכת ניהול תוכן (cms‏)‏ שבנויה כולה ב-mvc‏ ושמה Joomla!‎. כל הרכיבים שבנויים בה מבוססי MVC‏ כך שזה נותן יתרון גדול בפיתוח ובניית אתרים ואפליקציות web.

ר
Guest

הכתבה השיווקית הירודה הזאת עושה עוול אפילו למיקרוסופט שלא מנסים להציג את עצמם שמי שהמציאו את ה-MVC או טוענים ש-ASP.NET היתה הדרך העיקרית לפיתוח בווב.

רן
Guest

לאור כמות אי הדיוקים במאמר הזה הייתי מצפה מ – E4D שלמען שמירת המוניטין שלהם יסירו אותו מהאתר. אם לא הם אז כדאי ל – Newsgeek לעשות כך מאותה הסיבה

rptk
Guest

מסכים אם התגובות כאן. אבל כמתכנת לייט וכמישהו שרוצה להיכנס לתכנות בMVC, יש למישהו קישור לקורסים? אתרים ללימוד עצמי? PDF-ים חינמיים? בנושא?

אני לא למדתי Design patterns אף פעם, ואני מניח שזה מה שחסר לי…ומקשה עליי להיכנס לראש של ה MVC.

תודה,
rjerbi1@gmail.com

rptk
Guest

מבוסס PHP כמובן!!!!!!!

oc666
Guest

הי, rptk
נסה להתחיל עם ג’ומלה או זנד. הנה מדריך קצר על MVC שכתב אנדרו אדי (אחד ממפתחי הליבה של ג’ומלה):

Yoav
Guest

תודה למגיבים שעזרו לי להבין שגיבוב השטויות הזה לא אמיתי. באתרים מכובדים כגון זה אפשר לרשום שזהו מאמר ממומן מתחת לכותרת. זה לא יפגע באמינות האתר – להיפך.

ik_5
Guest
MVC = Model View Controller. הרעיון הוא פשוט, הפרדת לוגיקה, ממסד הנתונים ומהצד של המשתמש הסופי שרואה מסך כלשהו. זה לא קשור לרק לווב, למשל אם פיתחתם במערכת כדוגמת דלפי, קיבלתם את זה כבר לפני כמעט 20 שנה. דווקא PHP היא שפה שידועה בכך שהרבה מפתחים לא מפרידים בה בין MVC, ויש הרבה שמשתמשים הכל כ inline כלשהו, ולעיתים רחוקות ישתמשו בsmarty וכלים נוספים. CodeIgnitor, Kohana וכו’, הם ניסיון לעשות חיקוי של Rails בשפת PHP. יש עוד Frameworks שעושים את זה אחרת, אבל גם על אותו רעיון. מבחינת ווב, גם בפיתון, גם ברובי זה קיים המון שנים. וזה קיים עוד… Read more »
יגאל
Guest
יש פה כמה אי דיוקים איומים. קודם כל ללמוד לתכנת עם Joomla או Zend זה רעיון מאוד גרוע. Joomla זה הרבה יותר מ-Framework, ולכן כוללת המון ספריות לא נחוצות לצורך לימוד, או פיתוח בכללי אם תשאלו אותי. Zend זאת תשתית מאוד גדולה שמשמשת ארגונים מאוד גדולים, והיא פשוט עמוסה בדברים שתכניתן חדש לא צריך או צריך לדעת. אפשר להגיע לאותה פונקציונליות עם תשתיות פיתוח יותר פשוטות, כמו Kohana 3. CodeIgnitor ו-Kohana אינם חיקויים של ROR, הפיתוח של CI ו-ROR התחיל בין 2004 ל2005, למעשה הם מאוד שונים, לאומת זאת CakePHP מנסה להיות דומה ל-ROR, וזה יצא גרוע. Kohana נולדה מתוך… Read more »
wpDiscuz

תגיות לכתבה: