PDA

View Full Version : حرفه ای: یه Code Generator باحال



jalalx
جمعه 08 مرداد 1389, 22:12 عصر
این Code Generator که به صورت Wizard طراحی کردم کار رو برای تولید کدهای C#‎ و Script های SQL بسیار راحت کرده! بار ها خواستم اینو تو سایت بزارم اما گفتم باشه بعدا! اما بلاخره...

امکانات:


سادگی کار با برنامه به دلیل Wizard بودن
قابلیت تولید کد های C#‎ لایه های Bussiness و Data Access به طور تقریبا کامل
ایجاد کنترل های DataTable ویژه ی هر جدول
قابلیت اجرای Script های SQL Server بر روی سرویس دهنده

Setup برنامه رو هم برای کسانی که حال و حوصله ی سورس رو ندارن گذاشتم! Download و نصب!

برنامه به روز شد!
در این نسخه تغییرات زیر انجام شد:


باگ مربوط به کلمات کلیدی استفاده شده در نام ستون ها با افزودن [] رفع شد.
باگ مربوط به پیدا نکردن لیست جداول (وابستگی به نوع collation) رفع شد.
یک باگ کوچک در قسمت Select All رفع شد.
قابلیت Select بر اساس ID (فیلد کلیدی) اضافه شد.


توجه: باگ مربوط به نوع داده ی Text هنوز به قوت خودش باقیه! در Script های SQL شما نمی توانید نوع داده ی TEXT رو با عملگر = با هم مقایسه کنید. به همین دلیل توصیه می شه به طور دستی پروسیجر مورد نظر رو به کمک کلمه ی کلیدی LIKE مقایسه کنید.

تا بعد...

hosseinab
دوشنبه 11 مرداد 1389, 00:54 صبح
با سلام و تشکر
من sqlexpress روی سیستم دارم وقتی آدرس فایل mdf را به برنامه می دهم پیغام success… هم بهم می دهد ولی در مرحله بعد دیگه جدولی بهم نشون نمی دهد!

jalalx
دوشنبه 11 مرداد 1389, 14:08 عصر
با سلام خدمت دوست عزیز!

من این باگ رو دیروز کشف کردم. دلیل آن احتمالا به خاطر نوع Collation انتخابی شماست. البته تقصیر شما نیست! نوع Collation انتخابی شما به حروف بزرگ و کوچک حساسه و query جمع کننده ی جداول که به صورت حروف بزرگ نوشته شده لیست جداول مورد نظر رو پیدا نمی کنه! این query رو (در سورس برنامه) به حروف کوچک بنویسید، انشا ا... مشکل حل بشه!




command.CommandText = "SELECT * FROM " + txtDbName.Text.Trim() + ".sys.tables";


این کد رو تو فایل FormGenerate و در تابع GetListOfTables پیدا کنید و جایگزین کنید.
ADSL من تموم شده! با دسترسی به اولین اینترنت پرسرعت حتما برنامه رو update می کنم! چند تا باگ کوچولو مثل مقایسه ی نوع داده ی text هم داره که باید رفع بشه!

FastCode
دوشنبه 11 مرداد 1389, 16:56 عصر
به عنوان اولین کار Code Generator خوبی بود.
تنها مشکلی که من توش پیدا کردم توی ۲ دقیقه کار این بود که چون به جای path separator توش از \ استفاده کرده بودید توی لینوکس یه مقدار اذیت کرد.هیچ مشکل دیگه ای توی ۲ دقیقه پیدا نشد.یعنی هنوز وقت نکردم نگاهش کنم.ولی این اولین ایرادش بود.
من با mono 2 تست کردم.

jalalx
دوشنبه 11 مرداد 1389, 21:23 عصر
من با mono 2 تست کردم.
با تشکر از دوست عزیز!
من هنوز این برنامه رو برای سازگاری با mono تست نکردم، اما همون طور که گفتم در اولین فرصت برنامه رو ارتقا می دم و کد رو یکمی از اون حالت شلختگی در میارم! :خجالت: آخه این برنامه رو خیلی وقت پیش با .net 2 نوشته بودم که همین اواخر جهت برسی باز کردم و ظاهرا پروژه شو به .net 3.5 ارتقا دادم!

jalalx
سه شنبه 12 مرداد 1389, 11:34 صبح
منظور شما رو از:

کد جالبی نیست!
می فهمم!
من این برنامه رو خیلی وقت پیش نوشتم! الان دارم کد رو باز نویسی می کنم.
راستی تا زمانی که برنامه رو آپ دیت نکردم بگم یه باگ دیگه: "هنگامی که اسم ستون های شما جزو کلمات کلیدی SQL باشه پروسیجر تولید شده خطا ی syntax داره." به شما پیشنهاد می کنم تا زمان upload شدن نسخه ی جدید اسم ستون ها در stored procedure ها رو به طور دستی درون [] قرار بدید.
مثلا برای ستون ID بنویسید [ID].
به امید روزی که کسی بی ADSL نمونه!

AmirHarirbafan
جمعه 15 بهمن 1389, 22:05 عصر
ممنون از برنامه تون
اگه جدولها دارای schema باشه، خطا میده
موفق باشید

jalalx
جمعه 15 بهمن 1389, 22:12 عصر
ممنون بابت خطا یابی!
میشه بیشتر توضیخ بدین؟ چجور خطایی؟ سورس رو اجرا کردین یا Setup رو نصب کردین؟ من الان SqlServer نصب ندارم :ناراحت:، متن Exception یا حتی خطای MessageBox رو میشه بگید؟
مرسی

AmirHarirbafan
دوشنبه 18 بهمن 1389, 09:32 صبح
هم کد رو اجرا کردم هم Setup رو
وقتی که جدولی دارای Schemaای غیر از dbo باشه، این خطا رو میده و همینجور توی این وضعیت میمونه تا وقتی که کنسلش کنیم

66049

jalalx
دوشنبه 18 بهمن 1389, 11:29 صبح
در اولین فرصت خطا رو رفع می کنم و این پست رو مجددا به روز رسانی می کنم. احتمالا بخاطر خطایی که در Query لیست گرفتن جدولهاست این خطا بوجود میاد.
موفق باشید.

sadaf_
دوشنبه 18 بهمن 1389, 13:28 عصر
در مقابل data source چی باید بنویسم
من sql2005 دارم مشکلی ایجاد نمی کنه؟
ممنون

nasr
سه شنبه 17 اسفند 1389, 10:47 صبح
میشه یه نمونه برنامه ای که از این استفاده کرده اید را بگذارید؟
ممنون

gilar1360
سه شنبه 21 آذر 1391, 11:10 صبح
با سلام خدمت دوستان
می خواستم ببینم بگ های برنامه رفع شده
اگه رفع شده جدیدش را up کنید
با تشکر

jalalx
جمعه 24 آذر 1391, 02:00 صبح
سلام به همه دوستان گرامی.
از این که این برنامه توجه شما رو جلب کرده خوشحالم ولی باید بگم دیگه دوره این برنامه ها گذشته! همه این جور کدها رو دور بریزید و برید سراغ یک ORM توپ! مثلا پیشنهاد من به شما Entity Framework (http://msdn.com/data/ef) یا NHibernate (http://nhforge.org/)هستش :)
اگه یک ORM رو برای پروژه تون زیادی بزرگ، سنگین و غیرضروری می بینید میتونید از Micro ORM های مشهوری مثل Dapper (https://github.com/SamSaffron/dapper-dot-net)یا Massive (https://github.com/robconery/massive)استفاده کنید. راهنماهای کاملی (البته عموما به زبان انگلیسی) برای اونا وجود داره.
موفق باشید.

mehrzad_ali
چهارشنبه 16 مرداد 1392, 16:23 عصر
میترسیم با همین dapper کار کنیم توی پروژه بزرگ جواب نده اون موقع باید چی انتخاب کنیم ؟

jalalx
چهارشنبه 30 مرداد 1392, 23:10 عصر
میترسیم با همین dapper کار کنیم توی پروژه بزرگ جواب نده اون موقع باید چی انتخاب کنیم ؟

برای پروژه های بزرگ از Entity Framework یا NHibernate استفاده کنید.

esafb52
چهارشنبه 30 مرداد 1392, 23:39 عصر
جالب بود واقعا مرسی