جدا سازی فراداده های مدل در Entity Framework

در بسیاری موارد، برنامه نویسان برای مقاصد برنامه نویسی چند لایه و قابلیت استفاده مجدد، مدل را در یک پروژه دیگر قرار میدهند و سپس ارجاعی از آن به قسمت های دیگر برنامه میدهند. این عادت بسیار خوبی است، اما در استفاده از Entity Frameworkیک سری فراداده(متا دیتا) در فایل DLL قرار میگیرد که در واقع مربوط به csdl,msl,ssdl میباشد که در اینجا درباره آنها صحبت کردیم.
در حالت عادی هر تغییری در دیتابیس داده شود، باید پروژه مجددا Build شود و Assembli جدید مورد استفاده قرار گیرد. اما حالاتی وجود دارد که ما یا مدیر پایگاه داده تغییراتی در دیتابیس به وجود میآوریم که این تغییرات تاثیری در کارکرد برنامه ندارد، مثلا تنها نام یک فیلد عوض شده است. در این حالت تنها قسمت اطلاعات مربوط یه پایگاه داده و نحوه Mapشدن آن به کلاس های برنامه تغییر کرده است، و نیازی به تغییر در کل DLL نیست. در این موارد میتوانیم از خاصیت Metadata Artifact Proccessing استفاده نماییم. به این صورت که روی صفحه مدل راست کلیک میکنیم و از آن Properties میگیریم، در پنجره Properties گزینه Metadata Artifact Proccessing را برابر با Copy To output diectory قرار میدهیم.

حال اگر برنامه را Build کنیم، سه فایل دیگر با پسوندهای csdl,csl,ssdl برای ما ایجاد میگردند و در شرایطی که در مثال بالا توضیح داده شد فقط کافی است که فایل های ssdl, msl را جایگزین نماییم و نیاز به بروز رسانی DLLنیست.

4 نظرات:

Mohammad گفت...

با سلام و تشکر از شما بابت این پست
"در بسیاری موارد، برنامه نویسان برای مقاصد برنامه نویسی چند لایه و قابلیت استفاده مجدد، مدل را در یک پروژه دیگر قرار میدهند و سپس ارجاعی از آن به قسمت های دیگر برنامه میدهند."

مثال عملی از این روش دارید؟یا مقاله ای

ممنون از توجهتون

Unknown گفت...

سلام
برای برنامه نویسی چند لایه در ASP.Net آقای imar spaanjaars یه مقاله دارن که از دات نت 2 تا الان دارن کاملش میکنن میتونید از سایت ایشون مطالعه کنید
http://imar.spaanjaars.com/416/building-layered-web-applications-with-microsoft-aspnet-20-part-1
برای برنامه نویسی چند لایه با استفاده از Entity framework هم آقای Vince Varallo نویسنده کتاب asp .net 3 enterprise application development در مقاله ای دادن که میتونید از اینجا مطالعه کنید
http://aspalliance.com/1943_ASPNET_40_and_the_Entity_Framework_4__Part_4__A_3_Layered_Approach_to_the_Entity_Framework.1
که البته من روش ایشون رو به خاطر دردسر فراوانی که داره نمیپسندم!
خودم با نسخه 4 از Entity framework کاری بیشتر شبیه به مقاله اول انجام میدم که چند روزه دارم وقت میذارم به مقاله تبدیلش کنم و اینجا قرار بدم! فکر کنم قسمت اولش رو تا اوایل هفته آینده اینجا بگذارم!
موفق باشید.

وحید گفت...

سلام
از مطالب خوبی که مینویسی ممنون. به راهت ادامه بده.واقعا ساده و کاربردی هستن همه مطالب.
هنوز منتظریم که بیای پیش ما هدیه خودت رو بگیری.

حسین مرادی نیا گفت...

ممنون از مطلب بسیار خوبتون