DCSIMG
סיכום הרצאה: Introduction to ADO.NET Entity Framework - שחר.נט

שחר.נט

בלוגים שאני קורא

ספרים מומלצים

סיכום הרצאה: Introduction to ADO.NET Entity Framework

ההרצאה הראשונה אליה הלכתי היום, היום השני לטק-אד אילת 2008, הייתה introduction to the ADO.NET Entity Framework. בהרצאה, דיבר בחור בשם פבלו קסטרו (למיטב זכרוני, חבל ששמות המרצים לא כתובים בדפ האגנגדה), מצוות הפיתוח.

בהרצאה פבלו הסביר, תוך כדי דוגמאות על מה בדיוק מדובר – מי נגד מי. הוא בעיקר התעסק בנושא שוב מאד, איך לקסטם ולהתאים את האנטיטי פרימוורק כך שיתאים לפרוייקט שלך.

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

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

התמיכה במודל הפרוביידרים, מאפשרת לעבוד גם מול כל מסד נתונים שיש לו פרוביידר דוט.נטי.


בהרצאה גם הוזכר ESQL, אבל אפשר היה להבין שפבלו לא בעד שימוש בזה ככלי עיקרי לתשאול ישויות, אלא ב LINQ.


אחת הנקודות היותר מעניינות עלתה דווקא בשאלות מהקהל – מהו ההבדל בין LINQ TO SQL לאנטיטי פרימוורק? האם הראשון הוא רק מקרה פרטי של השני?

התשובה של פבלו הייתה שאין זה כך ואלה פשוט כלים ל scenarios שונים, והוא הסביר גם למה, בקצרה L2SQL הוא למקרים יותר "קלים" פחות למקרי אנטרפרייז.


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


 

תוכן התגובה

שחר גבירץ כתב/ה:

הוא בהחלט בא להתחרות איתם.

ORM = Object Relational Mapper

מתחרים אחרים, לצורך העניין, הוא דיבר על אלה שמבוססים על NHibernate, ובכללם גם ActiveRecords.

# April 21, 2008 9:59 AM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 5 and 7 and type the answer here:


Enter the numbers above: