Handling SOAP Faults In Silverlight

Tuesday, December 8, 2009

In the past, when we tried to connect from Silverlight 2 to WCF Services that threw exceptions (every now and then), we got the famous “Not found” Communication Exception. The reason we didn’t get a SOAP Fault is that WCF returns SOAP Fault responses with a HTTP code of 500 – this is according to SOAP protocol, but the browser doesn’t allow 500 responses to be returned to Silverlight – it replaces them with a CommunicationException and thus hides the real fault that returned. When we moved to Silverlight 3,...
one comment

Implementing Composite design pattern in Entity Framework

Tuesday, November 17, 2009

Last week, a colleague of mine asked me to create a sample composite design pattern model in Entity Framework. I thought to myself, no problem, created the table that contains the Component, Leaf & Composite entities (according to TPH – Table Per Hierarchy) and went to build the EDM based on the table and there I started to have problems which needed manual fixing. Since I’m working with EF 3.5, I’ve built the DB prior to the model – In EF 4.0 you can do model-first and build your db by script. After reverse engineering the db table, I got...

Entity Framework View Generation Fixup

Monday, November 16, 2009

A few day ago, a colleague of mine, Shlomo Goldberg, raised a question about Entity Framework and large models. Another colleague of mine, Gil Fink posted some links to helpful tips for using large models, and I want to talk about one of these tips – using the View Generation option. If you’ve worked with large models in Entity Framework 3.5, you probably noticed that as the model grows, it takes more time to initialize the ObjectContext for the first time. A solution to this is to use view generation, using the EdmGen tool, which can reduce up to...
one comment

Migrating Entity Framework’s EDM from Sql Server to Oracle

Wednesday, June 17, 2009

A few weeks ago I've published a post regarding DataDirect's new Oracle provider that supports EF. I was able to download DataDirect’s provider only this week, so it will take me a few more days to examine it and post some notes. As for now, I would like to share with you some of the issues in EF we’ve came across migrating from Sql Server to Oracle, using the provider from DevArt. BTW, we haven’t fully migrated to Oracle just yet, our project supports working with both databases using a factory for the creation...

Entity Framework doesn’t support web services + entity inheritance

Saturday, November 22, 2008

Entity Framework supports entity inheritance, which is a basic requirement for O/R mappers. When exposing a model through a service, either an ASMX WS or a WCF service, a WSDL will be created that among other things describes the structure of the entities, including the inheritance tree of the entities - This is done to allow creation of methods that return polymorphic types. EF supports derived entities through WCF services with data contract serialization using the KnownTypeAttribute which is added to the base class for every derived class. ...

Change Entity Framework storage DB schema in runtime

Friday, August 22, 2008

When you build a EF schema, it automatically plant the name of the imported tables schema into the EDMX file. But alas, what happens when you work in different environments (such as Dev, Test, Prod...) and in each database, the schema of the tables is different? Basically you either reset all your databases to use the same schema or worse - change the EDMX and recompile the assembly before updating the wanted environment. But there is another solution, not a clear one, probably not a supported one, but still, it works. Every EF model is accompanied by metadata,...

Entity Framework and Lazy Loading

Wednesday, August 20, 2008

I've received a couple of request to write some of my previous posts in English so that all other 99.7% of the developers community in the world which finds these subjects interesting can understand what I'm writing. The following post is a translation to English of this Hebrew post. When Entity Framework (EF for short) was designed, Microsoft decided the loading of entities will be during run-time in a JIT like mechanism. They achieved this by using the lazy loading technique - access the database and load the entity for the first time only when someone asks for...

שמות Properties כמחרוזות – חלק 2

Monday, August 4, 2008

להלן בעיה - בהנתן Property כלשהו, נניח ששמו FirstName, עליכם להעביר למתודה את שם ה-Property כמחרוזת, תחת המגבלות הבאות: אינכם יכולים לרשום במפורש את שם ה-Property כמחרוזת ("FirstName") אינכם יכולים להשתמש ב-GetProperties, איכשהו לאתר את ה-PropertyInfo ולחלץ את שמו ממאפיין Name (לדוגמה - איתור ה-PropertyInfo הראשון שמתחיל ב-F ואורך שמו הוא 9) לפני כשנתיים נתקלתי בבעיה זו, כאשר וחיפשתי דרך לפתור את הבעיה שהוצגה בפוסט הקודם - העברה של שמות מאפיינים למתודה וקבלת ערכיהם (אז לא עלה בדעתי להשתמש ב-delegate). פתרון לבעיה לעיל לא מצאתי והתשובה שקיבלתי מאנשי מיקרוסופט היתה - צור מאפיין מחרוזתי שיכיל את...

שמות Properties כמחרוזות

ברצוננו לכתוב מתודה אשר תקבל שם קובץ חדש ורשימת קבצים בתיקייה ותחזיר שם קובץ תקין שאינו קיים בתיקייה (כמו שיצירת קובץ חדש בתיקייה תחת וינדוס יוצרת קבצים בשם "new", "new1", "new2" וכו'). string GetUniqueFileName(List<File> files, string newFileName) נוכל לכתוב מתודה אשר עוברת על רשימת הקבצים בתיקייה (List כלשהו) ומחפשת עפ"י מאפיין שם קובץ (obj.FileName) אם השם תפוס ואם כן, להוסיף לשם שהועבר איזשהו Suffix ולנסות שוב עד למציאת שם תקין. עכשיו בואו נסבך - נניח שאנחנו רוצים עוד מתודה שכזו, הפעם על רשימה אחרת והשוואה מול מאפיין בשם אחר. חלקנו יכתוב עוד מתודה (copy&paste+שינויים קטנים), אבל יש דרך אחרת -...
no comments

שיתוף קבצי קוד בין פרויקטים

Sunday, July 27, 2008

לפני שבועיים סשה פרסם פוסט על שיתוף קבצי Contract בין Service ל-Client שלו. הקונספט הזה העלה לי זכרונות ישנים לגבי פעולה זו וכדאי לשים לב לכמה דברים : 1. שיטה זו של קישור ע"י Link עובדת כל עוד היחס בין המסלולים (Path) נשמר בכל מחשבי הפיתוח - ברוב המקרים זה כך, אך יש לשים לב לכך בשביל שלא יווצרו broken links. 2. פתרון אפשרי אחר, למי שעדין עובד עם ה-VSS הישן של MS הוא לבצע Share של קובץ הקוד בין תיקיות הפרויקטים השונות ובכך לייצר עותק מקושר המנוהל ברמת ה-Source Control ולא ב-Studio. כך אפשר להתגבר על הרלטיוויות.למי...
no comments