PDA

View Full Version : حرفه ای: آماده سازی پروژه ی C#‎ برای فروش



djsohrab2007
جمعه 03 خرداد 1392, 15:29 عصر
با سلام
فرض کنید ما یک برنامه نوشتیم که به یک پایگاه داده ( روی همین سیستم ) به نام db متصل می شود. و یک سری داده روی آن قرار می دهد و در نهایت می خواند.

حالا می خواهیم این برنامه را بفروشیم ( منظورم اینه که بدیم به کسی که اصلا برنامه نویسی بلد نیست و فقد یک کاربر ساده است ) برای این کار یک پروژه ی نصب با installshield درست کردم.

سوالات :
1. چجوری باید تنظیم کنم که پایگاه داده در سیستم طرف نصب شود.

2. connection string که در برنامه استفاده کردیم را چه کار کنیم ؟
یعنی : من به یک connection string در App conf درست کردم که به پایگاه داده ی روی سیستم خودم با یوزرنیم و پسورد مشخص متصل می شود حالا وقتی که این برنامه را می خواهیم به کامپیوتر دیگری ببریم مشکل اینجاست که اسم سرور sqlserver در هر کامپیوتر متفاوت است.
پس این connection string باید یکجوری تغییر کند، اما چجوری ؟ چجوری خود برنامه اسم سرور sqlserver موجود روی دستگاه را شناسایی کند و اسم آن را با اسم سروری که در connection string نوشتیم عوض کند ؟ و همچنین یوزر و پسوردی که در connection string استفاده می کردیم را برای سرور روی کامپیوتر کاربر معتبر سازد ؟
کلا با این connection string چه کار کنیم ؟

این ور و اون ور مطلب زیاد است ولی درست و یکپارچه نیست و همه کلی گویی کردند و آدم بدتر گیج می شود
اگر کسی از دوستان زحمت بکشد و روش انجام این کار را توضیح دهد ممنون می شوم.

شاید باید اینکار را با همون insatllshield کرد ولی من بلد نیستم.

پایگاه داده را با Sql server management 2012 و کد را با visual studio 2012 می نویسم.

با تشکر

mehrdad1991h
جمعه 03 خرداد 1392, 15:39 عصر
یک سرچ بزن تو همین انجمن !!!!

djsohrab2007
جمعه 03 خرداد 1392, 16:48 عصر
نکنه منظور شما تاپیک های زیر است : هیچ کدام به نتیجه نرسیده اند
همانطور که گفتم یک مطلب یکپارچه که توی ورژن جدید نرم افزار ها بشه ازش استفاده کرد پیدا نکردم.
حال اگر وقت دارید لطف کنید به ما هم یاد بدهید.

یک مشکل تاپیک های زیر این است که اسم سرور را sqlExpress فرض کردند در حالی که کامپیوتر خود من اسم سرورش MSSqlExpress است پس نرم افزار اونها برای من کار نخواهد کرد.
ولی چیز کلی که می توان از تاپیک های زیر یاد گرفت این است که دو راه حل بیشتر ندارد :
1. بازی با connection string
2. تنظیم به وسیله ی installshield
اگر در اینجا کسی زحمت بکشد و اینها را با ذکر جزئیات آموزش دهد، یک بار برای همیشه این موضوع بسته خواهد شد. ( فکر من مبتدی هم باشید ! )

http://noorportal.net/javan/itlearn/show-4001.aspx

http://barnamenevis.org/showthread.php?397190-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%AF%D8%A7%D8%AF%D9%86-%D9%81%D8%A7%DB%8C%D9%84-MDF-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-SQL-%D8%A8%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87&highlight=connection+string

http://barnamenevis.org/showthread.php?396741-%D8%A7%D8%AC%D8%B1%D8%A7-%D8%B4%D8%AF%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%B4%D8%AF%D9%87-%D8%A8%D8%A7-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE-%28%D8%A8%D8%A7-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%A7%D8%B3%DA%A9%DB%8C%D9%88%D8%A7%D9%84-%D8%B3%D8%B1%D9%88%D8%B1%29-%D8%AF%D8%B1-%D9%87%D8%B1-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1%D B%8C&highlight=connection+string

omidamiry
جمعه 03 خرداد 1392, 19:19 عصر
سلام
ببینید تو برنامه نویسی همیشه یک راه ور وش استاندارد هست ولی ......

ولی چون برنامه نویسی تو ایران زیاد اصولی نیست واسه همین باید خودت خلاق باشی و روش تولید کنی.

این موضوع یکم خوبه و یکم بد حالا.........


ببینید شما زمانی که مسیر خاص میدید برای اتصال پس در هر سیستم که نصب میشه باید رعایت بشه که خوب نیست

شما بایستی یه فرم کانکشن ایجاد کنی و دستور العمل معمولی استفادشو با عکس برای کاربر توضیح بدی تا در دفعات بعدی اشتباه نکن.

برای اینکه نام سرور در هر بار نصب اس کیو ال امکان تقاوت وجود دارد شما بایستی (کد بدست آوردن نام سرور وجو دارد ) نام را در این فرم به کانکشن اضافه کنی به صورت پویا و نام دی بی که میتونی به کاربر بگی حتما به همان نام واحد برروی سرور بارگذاری کنه.

یه برنامه اتچ و دی اتچ بانک sql گذاشتم تا همه استفاده کننن می تونی ازش الهام بگیری

www.amiry20.blogsky.com

md_amiry20@yahoo.com

در صورت هرگونه سوال ایمیل بده.

سعی کن برای راحتی خودت تو برنامه نویسی همیشه بفکر داینامیک بودن برنامت فکر کنی حتی تبلیغاتت در نرم افزار

موفق باشی

djsohrab2007
جمعه 03 خرداد 1392, 20:10 عصر
....

شما بایستی یه فرم کانکشن ایجاد کنی و دستور العمل معمولی استفادشو با عکس برای کاربر توضیح بدی تا در دفعات بعدی اشتباه نکن.

برای اینکه نام سرور در هر بار نصب اس کیو ال امکان تقاوت وجود دارد شما بایستی (کد بدست آوردن نام سرور وجو دارد ) نام را در این فرم به کانکشن اضافه کنی به صورت پویا و نام دی بی که میتونی به کاربر بگی حتما به همان نام واحد برروی سرور بارگذاری کنه.

....



سلام ،
خیلی خیلی ممنون که وقت گذاشتید .
میشه این قسمت را عملی تر توضیح بدید ؟





...
یه برنامه اتچ و دی اتچ بانک sql گذاشتم تا همه استفاده کننن می تونی ازش الهام بگیری
....
موفق باشی

من فایل Learn Amiry-txt file را از سایتی که فرمودید دانلود کردم و زیاد نتونستم بفهمم چی به چیه !
( از این فایل فولدر Connect To New Data Base را نگاه کردم )

برنامه را که باز می کنی یک Ok داره و یک brows که پایگاه داده ی sql ی انتخاب نمی کنه ! با یک پایگاه داده ی دیگه کار می کنه.

میشه کد این برنامه که مد نظر شماست را ایمجا بگذارید و توضیح بدهید که منطق کدش را یاد بگیرم
آخه حفظ کردنم زیاد خوب نیست و دوست دارم بفهمم چی به چی هست

با تشکر
موفق و موید باشید

djsohrab2007
جمعه 03 خرداد 1392, 20:11 عصر
راستی ببخشید ایمیل نزدم و اینجا پست گذاشتم خواستم همه ی مطالب یکجا باشه تا دیگران هم از تجربیات شما بهره مند شوند
باز هم ممنون

ordebehesht
جمعه 03 خرداد 1392, 22:50 عصر
منم سوال شما رو کامل مبکنم به نظر شما نحوه انتقال دبتابیس چه جوری باشه من یه جا دیدم اصلا بانکی رو انتقال نمیدن هنگام نصب خود بانک و ایجاد میکنن انگار برنامه ای نوشتن که بانک و جداول رو ایجاد میکنه این روش خوبه یا نه بانکو انتقال بدیم یعنی بسازیم بعد انتقال بدیم

mohammad kafiyan
جمعه 03 خرداد 1392, 23:39 عصر
دوست عزیز بهترین کار به نظر من این است که کلاسی در نظر بگیری جدا برای ایجاد پایگاه داده و ساخت جداول و پایگاه داده را قبلا ساخته باشی و انتقال بدی فقط در صورتی که به هر دلیلی مشکلی برای پایگاه داده ایجاد بشه این کلاس فراخوانی شود

alias136790
شنبه 04 خرداد 1392, 00:00 صبح
ینی دیتابیس رو ایجاد میکنن، بعد انتقال میدن؟
میشه حقه هم باشه ها! مثلا فایل بکاب رو بازیابی کرد.
این فکر به ذهنم رسید چون من سعی میکنم یه بکاب از حالت اولیه دیتابیس تو برنامه بذارم، اینجوری کاربر میتونه با یه کلیک ، اطلاعات رو به حالت اولیه نصب برگردونه.

mehrdad1991h
شنبه 04 خرداد 1392, 00:05 صبح
امیدوارم این بار این تاپیک به نتیجه برسد
دوستان برای نصب SQL خوب از کامند لاین استفاده میکنید و بدون این که کاربر متوجه بشه نصبش میکنید دیگه...
این هم لینک کمکی
http://msdn.microsoft.com/en-us/library/ms144259%28SQL.100%29.aspx

http://kb.flexerasoftware.com/doc/Helpnet/installshield16helplib_sp1/UIRefPrereqEditor_AppRun.htm

قبل از نصب برنامه یک بک اپ میگیرین از دیتابیس و میزارین کنار فایلاتون برای نصب برنامه
بعد از نصب هم دیتابیس را اینیستال میکنید از طریق برنامه ی خودتون فقط باید قبلش اس کیو ال نصب کرده باشید....
این مثال ها را هم ببینید
http://www.codeproject.com/Articles/16231/Deploy-your-Application-and-Database

http://stackoverflow.com/questions/15361514/creating-mysql-database-on-new-install-of-c-sharp-application-if-it-doesnt-exist

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/5808f536-f48d-4869-adf2-13b876984ae9/

لینک ها را به ترتیب مهم بودنشون از نظر خودم گذاشتم
بخونید حتما به نتیجه میرسید

یعنی تمام چیزایی که میخواهید در این لینک ها گفته شده

موفق باشید

user6627
شنبه 04 خرداد 1392, 23:12 عصر
سلام

در تاپیک زیر توضیح دادم
http://barnamenevis.org/showthread.php?400186-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%88-%D8%AA%D8%AD%D9%88%DB%8C%D9%84-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%A8%D9%87-%D9%85%D8%B4%D8%AA%D8%B1%DB%8C-%D8%A8%D8%A7-%DA%A9%D9%85%D8%AA%D8%B1%DB%8C%D9%86-%D8%AF%D8%B1%D8%AF%D8%B3%D8%B1!!!

djsohrab2007
یک شنبه 05 خرداد 1392, 12:44 عصر
سلام

دست شما دوستان درد نکنه و ممنون که وقت گذاشتید.
فقط یک چیزی این که SQLEXPRESS تا 10GB را ساپورت می کنه، خوب از کجا حدث بزنیم کافیه یا نه ؟
فرض کن یک پایگاه داده ای دارید که با C# برای آن یک برنامه نوشتید ( تک کاربره ) و توی این برنامه کاربر می تونه فایل آپلود کنه و حجم فایل های آپلودی از 1 کیلوبایت تا 100 مگابایت می تونه باشه ( علاوه بر اطلاعات دیگه مثل اسم و شماره و... ) خوب از کجا معلوم SQLEXPRESS برای این کافیه اگر کاربر همش فایلهاش کم حجم باشه که هیچ ولی اگر حجمش زیاد بود و مثلا یک سال گذشت چه کار میشه کرد ؟

نمیشه sql server را یک جوری راحت تر روی سیستمش نصب کرد ؟ یا راه دیگری به جز sql server دارید ؟

باز هم ممنون که وقت می گذارید

danialafshari
یک شنبه 05 خرداد 1392, 13:50 عصر
سلام دوست عزیز
ببین برای اجرا در سیستم کاربر به این شکل عمل کن
sqlExpress رو روی سیستم کاربر نصب کن
و بانک برنامه رو هم که شامل دو فایل هست رو در کنار برنامت بزار و از کانکشن زیر در برنامت استفاده کن و هیچ کاره دیگه نمی خواد انجام بدی
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\db.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
بعد از نصب sqlExpress فقط کافیه برنامه رو اجرا کنی و هیچ کاره اضافه ای لازم نیست
موفق باشی

esafb52
سه شنبه 07 خرداد 1392, 10:20 صبح
سلام دوست عزیز
ببین برای اجرا در سیستم کاربر به این شکل عمل کن
sqlExpress رو روی سیستم کاربر نصب کن
و بانک برنامه رو هم که شامل دو فایل هست رو در کنار برنامت بزار و از کانکشن زیر در برنامت استفاده کن و هیچ کاره دیگه نمی خواد انجام بدی
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\db.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
بعد از نصب sqlExpress فقط کافیه برنامه رو اجرا کنی و هیچ کاره اضافه ای لازم نیست
موفق باشی
با سلام به شما
یعنی حتی به اتچ هم نیاز نیست من از همین کانکش استفاده کردم منتهای یجای + Application.StartupPath از دیتا دایرکتوری استفاده میکردم که در بعضی از موارد خطا میداد!!و اتچ نمیشد

user6627
چهارشنبه 08 خرداد 1392, 15:54 عصر
سلام

دست شما دوستان درد نکنه و ممنون که وقت گذاشتید.
فقط یک چیزی این که SQLEXPRESS تا 10GB را ساپورت می کنه، خوب از کجا حدث بزنیم کافیه یا نه ؟
فرض کن یک پایگاه داده ای دارید که با C# برای آن یک برنامه نوشتید ( تک کاربره ) و توی این برنامه کاربر می تونه فایل آپلود کنه و حجم فایل های آپلودی از 1 کیلوبایت تا 100 مگابایت می تونه باشه ( علاوه بر اطلاعات دیگه مثل اسم و شماره و... ) خوب از کجا معلوم SQLEXPRESS برای این کافیه اگر کاربر همش فایلهاش کم حجم باشه که هیچ ولی اگر حجمش زیاد بود و مثلا یک سال گذشت چه کار میشه کرد ؟

نمیشه sql server را یک جوری راحت تر روی سیستمش نصب کرد ؟ یا راه دیگری به جز sql server دارید ؟

باز هم ممنون که وقت می گذارید


سلام.

شما میتونید فقط مسیر فایلها را در پایگاه داده ذخیره کنید و خود فایلها را بر روی هارد کپی کنید با اینکار همواره پایگاه داده ای سبک خواهید داشت
که مخصوصا در برنامه های تحت وب بسیار مفید خواهد بود و هم نیاز به تبدیل قایل به بایت و برعکس ندارید و فقط کافیه فایل را از روی هارد بخوانید

negar.rafie
پنج شنبه 09 خرداد 1392, 12:13 عصر
سلام دوست عزیز
ببین برای اجرا در سیستم کاربر به این شکل عمل کن
sqlExpress رو روی سیستم کاربر نصب کن
و بانک برنامه رو هم که شامل دو فایل هست رو در کنار برنامت بزار و از کانکشن زیر در برنامت استفاده کن و هیچ کاره دیگه نمی خواد انجام بدی
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\db.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
بعد از نصب sqlExpress فقط کافیه برنامه رو اجرا کنی و هیچ کاره اضافه ای لازم نیست
موفق باشی
اگر ما پایگاه داده خود را با sql server 2008 ساخته باشیم و برنامه ما هم فقط روی یک سیستم قرار است کار کند و به دلیل حجم بالای اطلاعات هم نمیتوانیم از sql express استفاده کنیم ایا متصل شدن به پایگاه داده با این کانکشن استرینگ مشکلی نداره ؟چون با این کار با sql server هم مثل access رفتار میشه؟