PDA

View Full Version : حرفه ای: برنامه ایجاد کننده لایه های DALو BLL



علیرضا حسن زاده
پنج شنبه 06 مرداد 1390, 13:37 عصر
سلام
این برنامه رو از سایت Codeproject گرفتم و یه سری تغییرات مطابق نیازهای خودم انجام دادم اینجا هم میزارم تا شاید به درد کسی بخوره
ضمنا اگه لطف کنید نظر تون رو هم بفرمایید می تونیم توسعش بدیم و بهتر بشه

علیرضا حسن زاده
پنج شنبه 06 مرداد 1390, 20:24 عصر
کسایی که دانلود کردن نظری ندارن؟

علیرضا حسن زاده
یک شنبه 09 مرداد 1390, 13:37 عصر
نظری در مورد خوب یا بد بودنش ندارین؟

danial82
سه شنبه 11 مرداد 1390, 09:53 صبح
من از Tier Generator استفاده میکنم میتوانم بپرسم چه تغییراتی دادی؟

علیرضا حسن زاده
سه شنبه 11 مرداد 1390, 10:01 صبح
موارد اضافه شده:
اعتبار سنجی فیلد به صورت عددی
اعتبار سنجی فیلد برای تاریخ شمسی
دادن نام فارسی (نام مجازی) به فیلدها و جدول ها برای نمایش عبارت های مناسب فارسی در پیام خطا ها
فارسی کردن تمام پیام خطاها و پیام های نامعتبر بودن مقدار فیلد
تا جایی که تو کد دیدم عبارت RegEx رو اعتبار سنجی نمی کرد که اصلاح شده

danial82
سه شنبه 11 مرداد 1390, 14:15 عصر
یه مشکل داره اونم اینکه با جداولی که تیک خوردن کار نمیکنه فقط با اونایی رو که highlight شدن کار میکنه
بعدا سورس اصلاح شدش رو هم بذار

علیرضا حسن زاده
سه شنبه 11 مرداد 1390, 14:31 عصر
تست کردم مشکلی نداشت یعنی هر جدولی رو که تیک زدم تو خروجی هم تولید شده بود

danial82
چهارشنبه 12 مرداد 1390, 09:38 صبح
شما اگه از تیکه بالای ستون استفاده کنید متوجه میشید در صورتیکه تو نسخه اصلی این مشکل وجود نداره
مشکل که نیست اما برطرف بشه بهتر در تنظیمات جداول وفتی اسم جدول تعریف میشه با خروج textbox نام جدول پاک میشه و با مراجعه مجدد پر نمیشه

علیرضا حسن زاده
چهارشنبه 12 مرداد 1390, 11:18 صبح
شما اگه از تیکه بالای ستون استفاده کنید متوجه میشید در صورتیکه تو نسخه اصلی این مشکل وجود نداره
مشکل که نیست اما برطرف بشه بهتر در تنظیمات جداول وفتی اسم جدول تعریف میشه با خروج textbox نام جدول پاک میشه و با مراجعه مجدد پر نمیشه
مشکل برطرف شد
مورد جدید: با رفتن به تنظیمات جدول، جدول به صورت خودکار انتخاب خواهد شد

danial82
پنج شنبه 13 مرداد 1390, 09:19 صبح
مشکل که نه ولی یه نقص کلی بودن Exception و اصلا معلوم نیست این Exception برای چی بوجود آمده مخصوصا اگه در در قسمت validation ها باشه
اگه پیام Exceptionها دقیقتر باشه خیلی بهتره

danial82
پنج شنبه 13 مرداد 1390, 09:21 صبح
مشکل که نه ولی یه نقص کلی بودن Exception و اصلا معلوم نیست این Exception برای چی بوجود آمده مخصوصا اگه در در قسمت validation ها باشه
اگه پیام Exceptionها دقیقتر باشه خیلی بهتره

علیرضا حسن زاده
پنج شنبه 13 مرداد 1390, 11:42 صبح
منظورتون رو در مورد Exception متوجه نشدم یعنی تو کد برنامه خطا داره که Exception میده یا Exception هایی که خود برنامه تولید میکنه؟
البته همونطور که می دونید در validation ها Exception نداره و فقط یه پیام به لیست پیام ها اضافه میشه که در این مورد هم با فارسی کردن نام ستون(نام مجازی) پیام خطا مثلا به "فیلد کد باید به صورت عددی وارد شود" نمایش ثبت میشه اما در مورد DAL پیام به صورت Exception نمایش داده میشه چون واقعا خطایی در برنامه بوجود آمده
با تشکر از نظراتی که میدین
به نظرتون چه جوری باشه بهتره؟

danial82
پنج شنبه 13 مرداد 1390, 12:22 عصر
فقط یه پیام به لیست پیام ها اضافه میشه که در این مورد هم با فارسی کردن نام ستون(نام مجازی) پیام خطا مثلا به "فیلد کد باید به صورت عددی وارد شود" نمایش ثبت میشه
لیست پیام ها کجاست و چجوری میشه ازشون استفاده کرد؟
من یه پروژه رو باهاش استارت زدم ولی هنگامی که میخواد اطلاعات رو لود کنه فقط Exception میده :
دریافت اطلاعات پرسشنامه ها به علت بروز خطا انجام نشد

حالا چرا این Exception بوجود اومده اصلا معلوم نیست گام به گام که جلو رفتم متوجه شدم از validation هاست ولی از چی بوده معلوم نشد.

علیرضا حسن زاده
پنج شنبه 13 مرداد 1390, 12:45 عصر
اگه اعتبار فیلدی صحیح نباشه یه پیام در لیست کلاس BrokenRulesList قرار میگیره و با تابع GetBrokenRulesDescription همون کلاس می تونید پیام ها رو به کاربر نشون بدین این کلاس دو حالت داره که میتونه تمام پیام ها یا پیام مربوط به یه فیلد خاص رو نشون بده
مورد Exception رو بررسی می کنم

danial82
پنج شنبه 13 مرداد 1390, 13:01 عصر
یه پیشنهاد اگه امکان داشت که تنظیمات برنامه و مطالبی که درمورد هر جدول نوشته میشد جایی ذخیره میشد خیلی عالی بود
چون من تو تنظیمات یک فیلد اشتباه کردم اگه بخوام دوباره اونو اصلاح کنم تمام پروژه یا حداقل تمام فیلد های یک جدول رو دوباره تنظیم کنم اما اگه جایی ذخیره میشد تنها کافی بود تنظیمات قبلی و لود کرد و اصلاحات رو انجام داد

علیرضا حسن زاده
سه شنبه 18 مرداد 1390, 21:57 عصر
فعلا به linq سویچ کردم سورس تغییرات انجام شده رو میذارم تا خودتون زحمتش رو بکشید اگه فرصتی شد حتما تغییرات رو خودم هم اعمال می کنم

علیرضا حسن زاده
پنج شنبه 20 مرداد 1390, 09:52 صبح
سورس برنامه همراه با تغییرات انجام شده

adminazizi
جمعه 25 شهریور 1390, 00:11 صبح
دمت گرم مرد هستی:قلب:

FastCode
جمعه 25 شهریور 1390, 09:56 صبح
خطاها:
در فایل resources.resx
خطوط ۱۴۱ و قبل و بعدش رو حذف کنید.

امکاناتی که لازم داره تا یک کد جنریتور خوب بشه:
۱.قابلیت override کردن property change
۲.هندل کردن ریلیشن ها
۳.خلاصه تر شدن کد خود کد جنریتور
۴.به جای استفاده از این همه کلاس شلوغ با پراپرتی های کم برای نگهداری متادیتا از چند تا دیتاتیبل استفاده میکردید.(منظورم این نیست که اول دیتاست رو از روی دیتابیس ایجاد کنیدو ازش به عنوان متادیتا استفاده کنید.منظورم اینه که مشخصات دیتابیس رو درون چند تا جدول به نام های مثلاً Tables Columns .... نگهداری کنید.)
۵.دستور upsert رو پشتیبانی کنید.
۶.خود دیتا وضعیت خودش رو نگهداری کنه.(این کار با چند ساختار متفاوت ممکنه/اگر قصد پیاده سازیش رو دارید, بگید توضیح بدم.)

علیرضا حسن زاده
جمعه 25 شهریور 1390, 21:33 عصر
فعلا چون دارم با EF کار می کنم فرصتی برای توسعه برنامه ندارم ولی در آینده شاید
به شما هم توصیه میکنم به EF و Linq سوئیچ کنید چون تمام اهدافی که من تواین برنامه برای کار با داده می خواستم رو داره با امکانات بیشتر

FastCode
یک شنبه 27 شهریور 1390, 00:23 صبح
فعلا چون دارم با EF کار می کنم فرصتی برای توسعه برنامه ندارم ولی در آینده شاید
به شما هم توصیه میکنم به EF و Linq سوئیچ کنید چون تمام اهدافی که من تواین برنامه برای کار با داده می خواستم رو داره با امکانات بیشتر
من با سیستم خودم کار میکنم که تا حالا هیچ امکانی نبوده که بخوام و نداشته باشه.
http://barnamenevis.org/showthread.php?216244-%D9%85%D9%86-%D9%87%D9%85-%D9%82%DB%8C%D9%85%D8%AA-%D9%85%DB%8C%D8%AE%D9%88%D8%A7%D9%85

علیرضا حسن زاده
یک شنبه 27 شهریور 1390, 11:36 صبح
ممکنه درمورد سیستمتون کمی توضیح بدین؟ تو تاپیک چیزی در این مورد به جز امکانات برنامه ندیدیم(مربوط به این تاپیک نیست ولیبرنامه رو با دات نت که ننوشتین؟ درسته)

FastCode
یک شنبه 27 شهریور 1390, 22:39 عصر
ممکنه درمورد سیستمتون کمی توضیح بدین؟ تو تاپیک چیزی در این مورد به جز امکانات برنامه ندیدیم(مربوط به این تاپیک نیست ولیبرنامه رو با دات نت که ننوشتین؟ درسته)
اون برنامه رو با داتنت نوشتم(هنوز بزرگترین تجربم حساب میشه) و بیشتر امکاناتی که گفتم رو اون سیستم ارائه میکنه.
مثل:
ریلیشن ها
سینک شدن کلاینت در شبکه
سینک بودن UI(نیاز نداشتن به رفرش در برنامه)
آفلاین کار کردن( و در آینده نزدیک آفلاین اجرا شدن/هنوز تموم نشده)
مدیریت یک سری از ستونهای تیبل های کلاینت توسط سرور
RPC از سرور(دیتا و UI)
سطح دسترسی به شکلی که میشه یه جورایی بهش گفت ماژولار
دسترسی به child و parent ها با O(1) که فکر میکنم مهمترین خاصیتشه


برای این کار اولین امکاناتی که باید پیاده سازی کنید همونهایی هستند که گفتم.
برنامه ای هم که من نوشتم اولش مثل مال شما هیچ چیز نداشت.

bormohsen
جمعه 15 دی 1391, 22:08 عصر
3layer Generator

نرم افزاری جهت تولید خودکار لایه های برنامه های تجاری

در سایت مهندس محسن مدحج


www.howprg.com (http://www.howprg.com/)

برنامه نویس مهندس نادر غریبیان فرد