سلام
این برنامه رو از سایت Codeproject گرفتم و یه سری تغییرات مطابق نیازهای خودم انجام دادم اینجا هم میزارم تا شاید به درد کسی بخوره
ضمنا اگه لطف کنید نظر تون رو هم بفرمایید می تونیم توسعش بدیم و بهتر بشه
سلام
این برنامه رو از سایت Codeproject گرفتم و یه سری تغییرات مطابق نیازهای خودم انجام دادم اینجا هم میزارم تا شاید به درد کسی بخوره
ضمنا اگه لطف کنید نظر تون رو هم بفرمایید می تونیم توسعش بدیم و بهتر بشه
آخرین ویرایش به وسیله علیرضا حسن زاده : چهارشنبه 12 مرداد 1390 در 11:16 صبح
کسایی که دانلود کردن نظری ندارن؟
آخرین ویرایش به وسیله علیرضا حسن زاده : شنبه 08 مرداد 1390 در 08:48 صبح
نظری در مورد خوب یا بد بودنش ندارین؟
من از Tier Generator استفاده میکنم میتوانم بپرسم چه تغییراتی دادی؟
موارد اضافه شده:
اعتبار سنجی فیلد به صورت عددی
اعتبار سنجی فیلد برای تاریخ شمسی
دادن نام فارسی (نام مجازی) به فیلدها و جدول ها برای نمایش عبارت های مناسب فارسی در پیام خطا ها
فارسی کردن تمام پیام خطاها و پیام های نامعتبر بودن مقدار فیلد
تا جایی که تو کد دیدم عبارت RegEx رو اعتبار سنجی نمی کرد که اصلاح شده
یه مشکل داره اونم اینکه با جداولی که تیک خوردن کار نمیکنه فقط با اونایی رو که highlight شدن کار میکنه
بعدا سورس اصلاح شدش رو هم بذار
تست کردم مشکلی نداشت یعنی هر جدولی رو که تیک زدم تو خروجی هم تولید شده بود
شما اگه از تیکه بالای ستون استفاده کنید متوجه میشید در صورتیکه تو نسخه اصلی این مشکل وجود نداره
مشکل که نیست اما برطرف بشه بهتر در تنظیمات جداول وفتی اسم جدول تعریف میشه با خروج textbox نام جدول پاک میشه و با مراجعه مجدد پر نمیشه
آخرین ویرایش به وسیله danial82 : چهارشنبه 12 مرداد 1390 در 10:04 صبح
مشکل برطرف شدشما اگه از تیکه بالای ستون استفاده کنید متوجه میشید در صورتیکه تو نسخه اصلی این مشکل وجود نداره
مشکل که نیست اما برطرف بشه بهتر در تنظیمات جداول وفتی اسم جدول تعریف میشه با خروج textbox نام جدول پاک میشه و با مراجعه مجدد پر نمیشه
مورد جدید: با رفتن به تنظیمات جدول، جدول به صورت خودکار انتخاب خواهد شد
مشکل که نه ولی یه نقص کلی بودن Exception و اصلا معلوم نیست این Exception برای چی بوجود آمده مخصوصا اگه در در قسمت validation ها باشه
اگه پیام Exceptionها دقیقتر باشه خیلی بهتره
مشکل که نه ولی یه نقص کلی بودن Exception و اصلا معلوم نیست این Exception برای چی بوجود آمده مخصوصا اگه در در قسمت validation ها باشه
اگه پیام Exceptionها دقیقتر باشه خیلی بهتره
منظورتون رو در مورد Exception متوجه نشدم یعنی تو کد برنامه خطا داره که Exception میده یا Exception هایی که خود برنامه تولید میکنه؟
البته همونطور که می دونید در validation ها Exception نداره و فقط یه پیام به لیست پیام ها اضافه میشه که در این مورد هم با فارسی کردن نام ستون(نام مجازی) پیام خطا مثلا به "فیلد کد باید به صورت عددی وارد شود" نمایش ثبت میشه اما در مورد DAL پیام به صورت Exception نمایش داده میشه چون واقعا خطایی در برنامه بوجود آمده
با تشکر از نظراتی که میدین
به نظرتون چه جوری باشه بهتره؟
لیست پیام ها کجاست و چجوری میشه ازشون استفاده کرد؟
من یه پروژه رو باهاش استارت زدم ولی هنگامی که میخواد اطلاعات رو لود کنه فقط Exception میده :
دریافت اطلاعات پرسشنامه ها به علت بروز خطا انجام نشد
حالا چرا این Exception بوجود اومده اصلا معلوم نیست گام به گام که جلو رفتم متوجه شدم از validation هاست ولی از چی بوده معلوم نشد.
اگه اعتبار فیلدی صحیح نباشه یه پیام در لیست کلاس BrokenRulesList قرار میگیره و با تابع GetBrokenRulesDescription همون کلاس می تونید پیام ها رو به کاربر نشون بدین این کلاس دو حالت داره که میتونه تمام پیام ها یا پیام مربوط به یه فیلد خاص رو نشون بده
مورد Exception رو بررسی می کنم
یه پیشنهاد اگه امکان داشت که تنظیمات برنامه و مطالبی که درمورد هر جدول نوشته میشد جایی ذخیره میشد خیلی عالی بود
چون من تو تنظیمات یک فیلد اشتباه کردم اگه بخوام دوباره اونو اصلاح کنم تمام پروژه یا حداقل تمام فیلد های یک جدول رو دوباره تنظیم کنم اما اگه جایی ذخیره میشد تنها کافی بود تنظیمات قبلی و لود کرد و اصلاحات رو انجام داد
فعلا به linq سویچ کردم سورس تغییرات انجام شده رو میذارم تا خودتون زحمتش رو بکشید اگه فرصتی شد حتما تغییرات رو خودم هم اعمال می کنم
سورس برنامه همراه با تغییرات انجام شده
دمت گرم مرد هستی
خطاها:
در فایل resources.resx
خطوط ۱۴۱ و قبل و بعدش رو حذف کنید.
امکاناتی که لازم داره تا یک کد جنریتور خوب بشه:
۱.قابلیت override کردن property change
۲.هندل کردن ریلیشن ها
۳.خلاصه تر شدن کد خود کد جنریتور
۴.به جای استفاده از این همه کلاس شلوغ با پراپرتی های کم برای نگهداری متادیتا از چند تا دیتاتیبل استفاده میکردید.(منظورم این نیست که اول دیتاست رو از روی دیتابیس ایجاد کنیدو ازش به عنوان متادیتا استفاده کنید.منظورم اینه که مشخصات دیتابیس رو درون چند تا جدول به نام های مثلاً Tables Columns .... نگهداری کنید.)
۵.دستور upsert رو پشتیبانی کنید.
۶.خود دیتا وضعیت خودش رو نگهداری کنه.(این کار با چند ساختار متفاوت ممکنه/اگر قصد پیاده سازیش رو دارید, بگید توضیح بدم.)
فعلا چون دارم با EF کار می کنم فرصتی برای توسعه برنامه ندارم ولی در آینده شاید
به شما هم توصیه میکنم به EF و Linq سوئیچ کنید چون تمام اهدافی که من تواین برنامه برای کار با داده می خواستم رو داره با امکانات بیشتر
من با سیستم خودم کار میکنم که تا حالا هیچ امکانی نبوده که بخوام و نداشته باشه.
https://barnamenevis.org/showthread.p...88%D8%A7%D9%85
ممکنه درمورد سیستمتون کمی توضیح بدین؟ تو تاپیک چیزی در این مورد به جز امکانات برنامه ندیدیم(مربوط به این تاپیک نیست ولیبرنامه رو با دات نت که ننوشتین؟ درسته)
اون برنامه رو با داتنت نوشتم(هنوز بزرگترین تجربم حساب میشه) و بیشتر امکاناتی که گفتم رو اون سیستم ارائه میکنه.
مثل:
ریلیشن ها
سینک شدن کلاینت در شبکه
سینک بودن UI(نیاز نداشتن به رفرش در برنامه)
آفلاین کار کردن( و در آینده نزدیک آفلاین اجرا شدن/هنوز تموم نشده)
مدیریت یک سری از ستونهای تیبل های کلاینت توسط سرور
RPC از سرور(دیتا و UI)
سطح دسترسی به شکلی که میشه یه جورایی بهش گفت ماژولار
دسترسی به child و parent ها با O(1) که فکر میکنم مهمترین خاصیتشه
برای این کار اولین امکاناتی که باید پیاده سازی کنید همونهایی هستند که گفتم.
برنامه ای هم که من نوشتم اولش مثل مال شما هیچ چیز نداشت.
3layer Generatorنرم افزاری جهت تولید خودکار لایه های برنامه های تجاریدر سایت مهندس محسن مدحجبرنامه نویس مهندس نادر غریبیان فرد