ورود

View Full Version : نحوه ایجاد لایه میانی در برنامه های سه لایه



حمیدرضاصادقیان
شنبه 02 مرداد 1389, 07:40 صبح
سلام دوستان.
میخواستم ببینم به نظر شما آیا برای توزیع لایه میانی استفاده از روشی مانند LINQ صحیح است؟
مثلا LINQ میاد برای هرجدول یک موجودیت در نظر میگیره و تمامی فیلدها با تایپ هاشونو در قالب یک کلاس ایجاد میکنه و کاربر هرکاری میخواد بکنه با اون کلاس انجام میده.
یا بهتره به صورت SP,Function,... باشه و در لایه میانی ما ارتباط با اجزا دیتابیس بگیریم؟
آیا ابزای مانند Remobjects نیز از همین روش LINq استفاده میکنند؟
ممنون.

vcldeveloper
شنبه 02 مرداد 1389, 18:33 عصر
مثلا LINQ میاد برای هرجدول یک موجودیت در نظر میگیره و تمامی فیلدها با تایپ هاشونو در قالب یک کلاس ایجاد میکنه و کاربر هرکاری میخواد بکنه با اون کلاس انجام میده.
به این میگن ORM. چند وقت پیش درباره اش در یک تاپیک دیگه بحث کردیم. مزایا و معایب خاص خودش را داره. برای دلفی هم ORMهایی نوشته شده. اگر همین عبارت ORM را در گوگل جستجو کنید، یا عبارت Delphi ORM را جستجو کنید، مطالب مفیدی در این زمینه پیدا می کنید.

حمیدرضاصادقیان
چهارشنبه 06 مرداد 1389, 10:28 صبح
علی جان ممنون.من گشتم موردی که گفتی رو پیدا نکردم.امکانش هست اون لینکی که گفتی قبلا داخلش بحث شده رو برام بذاری.
ممنون

مصطفی ساتکی
چهارشنبه 06 مرداد 1389, 11:04 صبح
در اين لينك بحث شده :http://www.barnamenevis.org/forum/showthread.php?p=1024764

حمیدرضاصادقیان
یک شنبه 10 مرداد 1389, 16:35 عصر
سلام.
من یک برنامه تستی ایجاد کردم با استفاده از ویزارد خود Data abstract.الان یک برنامه سرور دارم یک برنامه کلاینت. در برنامه سرور یک Schema ایجاد کرده که در اون یک سری data table اضافه کردم .
حالا وقتی روی هرکدوم از این Data table ها که راست کلیک کنید میتونید براش Data dictionary ایجاد کنید که یک چیزی مثل کاری هست که LINQ انجام میده.
سوال اینجاست .آیا برای هر جدولی نیاز هست یک Schema تعریف کرد؟
و آیا نیازی به تعریف این Data dictionary ها هست؟
مزایای این روش با روشهای قبلی در چیست ؟ و چه معایبی دارند؟ آیا توی توسعه برنامه به مشکل برمیخوریم؟ به طور مثال ساختار جدولی عوض بشه باید این Data dictionary ها هم بروز بشوند؟
ممنون.

حمیدرضاصادقیان
شنبه 16 مرداد 1389, 15:34 عصر
سلام.در مثالهای خود Remobject یک schema برای تمام جداول ایجاد کرده و به Data dictionary ربطش داده ولی برای هر جدول یک Business rule جداگانه گذاشته . جالب اینه که تمامی کدهای مربوط به update,insert,delete,select رو داخل خود schema تعریف میکند و اگر ساختار جدولی هم تغییر کنه خود Schema بروز میشه و نیازی به هیچ بروزرسانی دستی نمی باشد. فقط سوالی اینجا مطرح میشه آیا کوئری هایی که اینجا نوشته میشه مثل Stored procedure ها در سرور cache میشه و یک plan براشون ساخته میشه یا هر دفعه این کوئری ها Compile میشه؟