PDA

View Full Version : راهنمایی برای نوشتن یک برنامه



مهدی رحیم زاده
جمعه 25 خرداد 1386, 18:06 عصر
سلام دوستان عزیز ...
من تا حالا برنامه ای که تحت شبکه کار کنه ننوشتم ...
اما حالا می خوام که یک برنامه ساده که تحت شبکه کار کنه برای یاد گیری بنویسم ...
اگر میشه راهنمایی کنیدم که چکار کنم ....
البته یادتون باشه که من میخوام یاد بگیرم و توضیحات شما رو خیلی لازم دارم پس لطف کنید و کامل توضیح بدین ...
مرسی و ممنون

ghabil
شنبه 26 خرداد 1386, 16:19 عصر
کل مطلب برنامه نویسی دیتابیس رو که نمیشه برات یکهو توضیح داد، تو باید برنامه نویسی با ADO.Net رو یاد بگیری راه مناسب هم اینه که یک کتاب .Net بگیری و مباحث مربوط به ADO.Net رو بخونی ، بعدش هم دیگه تا دلت بخواد توی اینترنت مثال و مرجع هست.
البته یادت باشه قبلش باید دستورات SQL رو بلد باشی.

مهدی رحیم زاده
شنبه 26 خرداد 1386, 16:34 عصر
دوست عزیز
من کار با ADO.NET رو تقریبا بلدم ...
با دستورات SQLهم کار کردم ، البته با بانک Access حالا شما یه توضیح کوچولو در مورد برنامه تحت شبکه و نحوه نوشتن اون برام بزارید
مثلا اینکه برای این برنامه باید چه تنظیماتی رو انجام بدیم برای کانکت شدن به بانک روی سرور کانکشن باید چطوری باشه ، روی کلاینت چطور باشه و از اینجور چیزا ...

nashenase2
شنبه 26 خرداد 1386, 20:45 عصر
سلام دوستان
من هم موافقم که اگه از بچه های فروم کسی تا الان تحت شبکه برنامه نوشته لطف کنه و اصول اولیه را حتی الامکان با مثال توضیح بده
البته منظورم از اصول اولیه چیزایی مثل ADO.NET و SQL STATEMENT و این چیز نیست
این چیزا وظیفه خود شخص هست که یاد بگیره
منظور من بیشتر اینه که بیاین و نکته ها را که باید برای شروع برنامه نویسی تحت شبکه انجام داد نیست
البته منظور من از برنامه نیسی تحت شبکه socket programming نیست
گر چه اون هم بحث خوبیه ولی منظور من اینه که برنامه هایی که تا الان local می نوشتیو و دیتا بیس اونا local بود حال بیایم و اونو تحت شبکه کنیم
از دوستانی که با این بحث موافق هستن خواهش میکنم که هر نکته ای که در این زمینه میدونن را دریغ نکنن
البته من خودم با نوشتن برنامه های کامل کاملا مخالفم
نوشته ها جوری باشه که جنبه اموزشی داشته باشه
ممنون و از اونایی که موافق هستن خواهش میکنم موافقت خودشون را اعلام کنن
و از اساتید و پیشکسوتان برنامه نویسی هم باز خواهش میکنم که تجربیات گران بهاشون را در اختیار بقیه بذارن
ذکات علم نشر ان است
موئفق باشید و باز هم ممنون

Future
یک شنبه 27 خرداد 1386, 04:37 صبح
سلام دوست عزیز، این تاپیک را یک نگاه بیانداز. شاید کمکت کند.
http://barnamenevis.org/forum/showthread.php?t=64847

nashenase2
یک شنبه 27 خرداد 1386, 08:23 صبح
سلام دوست عزیز، این تاپیک را یک نگاه بیانداز. شاید کمکت کند.
http://barnamenevis.org/forum/showthread.php?t=64847

سلام
ممنون ولی میشه قبل از اینکه جواب بدین ابتدا مطالبی را که تو این تاپیک هست و مطالب درون لینکی مه دادین را بخونین
توزیع برنامه ها چه ربطی به استفاده از دیتا بیس روی یه سرور شبکه داره؟
تا اونجا که من میدونم توزیع برنامه ها اولا خیلی بیشتر در وب رواج و اهمیت داره تا ویندوز
و بعدش هم این عمل معمولا بیشتر برای آپدیت کردن برنامه ها استفاده میشه

دلیل نداره که به هر تاپیکی جواب داد

nashenase2
یک شنبه 27 خرداد 1386, 15:36 عصر
یعنی تاحالا هیچ کس برنامه ای ننوشته که دیتابیسش روی سرور دیگه ای باشه و کلاینت ها اطلاعات را از اونجا بخونن؟

nashenase2
یک شنبه 27 خرداد 1386, 18:28 عصر
در نگاه خیلی ساده
1. برای برنامه ای که تحت شبکه باشه لازم هست که درنهایت از یک بانک اطلاعاتی استفاده کنه
پس تمام برنامه های سمت کلاینتها باید به آدرس بانک روی سرور متصل بشن
2. همون بحث توزیع برنامه که خیلی هم مهم هست. یعنی اینکه آیا میخواید به هر کلاینتی یه نسخه برنامه بدید یا اینکه با یک لینک، هر کلاینت همون برنامه روی سرور اجرا کنه و یا ....
3. دسترسی فیزیکی به سرور که در بعضی موارد لازم هست که باشه و کنترل شده و محدود شده باشه
4. حالا نوبت به تغییرات در کد برنامه هست که یه بحث مفصلی هست درمورد اینکه همزمان چندتا کلاینت با یک رکورد کار کنند یا ایجا کنند و ... که باید برنامه نویس تمام این حالتهارو کنترل کننه تا نه سیخ بسوزه نه کباب
این یه نمای دور بود از برنامه نویسی سیستمهای چند کاربره. وارد جزئیات نشدم
بهتره تصحیح و ادامه هرکدوم از موارد به عهده اساتید انجمن باشه

با سلام
ممنون که توجه کردین وزحمت کشیدین
ولی از بقیه دوستانی که میخوان در این رابطه مطلبی بنویسن خواهش میکنیم که کمی کاربردی تر بنویسن
فکر میکنم که یه سرسی تئوری ها را هر کسی که با بانک های اطلاعاتی کار کرده میدونه
پس بنابر این تئوری گفتن هیچ دردی دوا نمیکنه
واسه اینکه تا دلتون بخواد در مورد این مطالب به صورت تئوری میشه 100000000000000000000
کتاب و مقاله پیدا کرد
پس خواهشا توضیحات کاربردی تر و حتی الامکان با مثال باشه
بازم ممنون از همگی

مهدی رحیم زاده
دوشنبه 28 خرداد 1386, 11:21 صبح
بابا یعنی یکی پیدا نمیشه که با مثال و کم کم این کارو انجام بده ....
بخدا ثواب داره ....
واسه شما اساتید که کاری نداره ، البته می دونم که وقت ندارید اما یه لطف کوچولو مثل همیشه در حق ما مبتدی ها انجام بدین دیگه ....
بازم مرسی و ممنون ....

اَرژنگ
دوشنبه 28 خرداد 1386, 12:39 عصر
یعنی تاحالا هیچ کس برنامه ای ننوشته که دیتابیسش روی سرور دیگه ای باشه و کلاینت ها اطلاعات را از اونجا بخونن؟


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

اَرژنگ
دوشنبه 28 خرداد 1386, 12:51 عصر
با سلام
ممنون که توجه کردین وزحمت کشیدین
ولی از بقیه دوستانی که میخوان در این رابطه مطلبی بنویسن خواهش میکنیم که کمی کاربردی تر بنویسن
فکر میکنم که یه سرسی تئوری ها را هر کسی که با بانک های اطلاعاتی کار کرده میدونه
پس بنابر این تئوری گفتن هیچ دردی دوا نمیکنه
واسه اینکه تا دلتون بخواد در مورد این مطالب به صورت تئوری میشه 100000000000000000000
کتاب و مقاله پیدا کرد
پس خواهشا توضیحات کاربردی تر و حتی الامکان با مثال باشه
بازم ممنون از همگی
اگر جواب تئوری نمیخواهید سوال تئوری نپرسید، معلوم نیست مشکل چی هست. وقتی که یکی یک سوآل کلی میپرسه جوابش هم کلی داده میشه.
مثال چی؟ اصلا سعی کردید که یک برنامه ۳ لایه بنویسید؟ اصلا میدونید یک برنامه ۳ لایه چی هست؟‌ اگرچه لایه نویسی به نظر تئوری بیاد ولی بدونه دانستن یک مقداری تئوری پایه جواب را درک نخواهید کرد.
بعد از خواندن یکمقداری مقالات در برنامه نویسیه‌ لایه ای دوباره به سوالتان نگاه بندازید میبینید از جوابهایی که گرفتید جوابه بهتری دریافت نمیکنید.

once4ever
دوشنبه 28 خرداد 1386, 13:33 عصر
والا اگه آدم بخواد با دانشی که فکر میکنه داره به جوابها نگاه کنه، طبیعیه که ندونه چی میخواد.
اگه دوست دارید به مواردی که گفتم (که هنوزم هست) فکر کنید و شروع به انجام دادن هرکدوم از نکته ها بکنید
حالا ممکنه تو هرکدوم به سوال برسید که اونوقت تازه میدونید به چه چیزی احتیاج دارید و بقیه هم میتونند بهتر کمکتون کنند

nashenase2
دوشنبه 28 خرداد 1386, 15:17 عصر
با سلام
من نمیفهمم سوال در چی هست. اینکه داتابیس بر رویه یک ماشین باشه و کلاینت بر رویه یک ماشین دیگر؟
مشکل در چیست که با عوض کردن کانکشن استرینگ حل نمیشه؟

شما مطمئن هستین که اگه کانکشن استرینگ را عوض کنید و در اون IP آدرس سرور را بدین و یه یوزر نیم و پسورد هم براش تعریف کنین حل میشه ؟
یا اینکه فقط شما هم فقط شنیدین و دارید گفته های بقیه را میگین؟





لا سعی کردید که یک برنامه ۳ لایه بنویسید؟ اصلا میدونید یک برنامه ۳ لایه چی هست؟‌ اگرچه لایه نویسی به نظر تئوری بیاد ولی بدونه دانستن یک مقداری تئوری پایه جواب را درک نخواهید کرد.



کسی ادعای برنامه نویسی نمیکنه اینجا
اینجا همه اومدن تا از هم دیگه چیز یاد بگیرن
حالا شما که ادعای برنامه نویسی سه لایه ایتون میشه و از این تکنولوژی بهره می برین میشه خواهش کنیم که یه برنامه خیلی ساده بنویسید و برای بقیه بذارید تا هم بقیه مفهوم این مسئله را درک کنن و هم یه دعایی به جون شما؟ حتما هم نیاز نیست که این برنامه 1700 تا table با 2000 تا storeprocedure و 1200 تا Form و ..... داشته باشه
با چند تا کلاش ساده و یه دیتا بیسی که یکی 2 تا جدول داشته باشه هم میشه این مسئله را توضیح داد نه؟

خواهشا نیاین بگین که 3 tire تقسیم بندی کردن برنامه به سه لایه database و presentation و bisunes تقسیم میشه و این صحبت


واقعا یه مثال عملی اگه دارید بزنید
اگر هم ندارین دلیل نداره که به تاپیک حتما جواب بفرستین

در ضمن این تاپیک فقط به این جهت بود که یه برنامه بنویسید که دیتابیسش را از روی یه کامپیوتر دیگه یخونه
فرض کنید توی خونه 1 لپ تاپ دارید با یه pc که با هم شبکه کردین
فرض کنید Ip آدرس های این ها هم این باشه
برای سرور 192.168.100.1 و برای کلاینت 192.168.100.2
حاا یه برنامه بنویسید که دیتابیسش روی سرور باشه

فکر نمی کنم برای نوشتن یه همچین برنامه ای حتما باید از 3 tire استفاده کرد
گرچه برنامه نویسی لایه ای محاسن زیادی داره و لی این دلیل نمیشه که برای انجام عمل فوق حتما از این روش استفاده کرد

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

MNosouhi
دوشنبه 28 خرداد 1386, 16:04 عصر
اگر جواب تئوری نمیخواهید سوال تئوری نپرسید، معلوم نیست مشکل چی هست. وقتی که یکی یک سوآل کلی میپرسه جوابش هم کلی داده میشه.
مثال چی؟ اصلا سعی کردید که یک برنامه ۳ لایه بنویسید؟ اصلا میدونید یک برنامه ۳ لایه چی هست؟‌ اگرچه لایه نویسی به نظر تئوری بیاد ولی بدونه دانستن یک مقداری تئوری پایه جواب را درک نخواهید کرد.
ارژنگ جان اگه نمیخای جواب بدی جواب نده ، چرا میزنی . ظاهرا این رو فراموش کردی :

قانون شماره 15
لطفاً در هنگام جواب دادن به سوالات، از به کار بردن الفاظ و عباراتی که باعث دلسردی کاربر سوال کننده می گردد خودداری نمایید. به خاطر داشته باشید که این سایت محل یادگیری است.


مشکل در چیست که با عوض کردن کانکشن استرینگ حل نمیشه؟
مسلما مسائلی هست که فقط با تغییر کانکشن استرینگ حل نمیشه ، بخصوص مسائلی که مربوط با ساختار غیر متصل (Disconnected Architecture) مربوط به ado.net میشه .
من هم خیلی دوس دارم در این موارد بیشتر بدونم.
با تشکر از دوستانی که این بحث رو ایجاد کردن.

اَرژنگ
دوشنبه 28 خرداد 1386, 16:12 عصر
با سلام بر nashenase2. فکر میکنم یا من در یکی از پستهام یک چیزی نوشتم ناراحتتان کرد و یا اینکه اشتباه برداشت کردید.
به هر حال قصد این نیست که کسی را برنجانینم، در هر دو حالت عرض پوزش از ماست و بفرمائید که چی گفتم که ناراحتتان کرد.

اَرژنگ
دوشنبه 28 خرداد 1386, 16:24 عصر
ارژنگ جان اگه نمیخای جواب بدی جواب نده ، چرا میزنی . ظاهرا این رو فراموش کردی :



مسلما مسائلی هست که فقط با تغییر کانکشن استرینگ حل نمیشه ، بخصوص مسائلی که مربوط با ساختار غیر متصل (Disconnected Architecture) مربوط به ado.net میشه .
من هم خیلی دوس دارم در این موارد بیشتر بدونم.
با تشکر از دوستانی که این بحث رو ایجاد کردن.
من نمیزنم، میگم که بدونه دانستن یکمقداری دانش پایه فهمیدن بعی چیزها ممکن نیست،
شروع این مطلب این بود که داتابیس سرور و برنامه ‌ای که اجرا میشند بر یک ماشین نباشند، حالا این به جز کانکشن استرینگ به چی ربط‌ داره؟

در ضمن Disconnected Architecture جایی مطرح نشده بود.
اگر جایی در پستم ناراحتشان کرده بفرمایند من جواب میدم، ولی من تا جایی که میدونم چیزی نگفتم که ناراحت بشند، اگر نه ، بفرمایند کجا، اگر درست میفرمایند پوزش عرض میکنم خدمتشان.

اَرژنگ
دوشنبه 28 خرداد 1386, 16:41 عصر
شما مطمئن هستین که اگه کانکشن استرینگ را عوض کنید و در اون IP آدرس سرور را بدین و یه یوزر نیم و پسورد هم براش تعریف کنین حل میشه ؟

مگر چه چیزه دیگر هم هست؟ ما از این روش استفاده کردیم و شد،



یا اینکه فقط شما هم فقط شنیدین و دارید گفته های بقیه را میگین؟

خیر.





کسی ادعای برنامه نویسی نمیکنه اینجا
اینجا همه اومدن تا از هم دیگه چیز یاد بگیرن
حالا شما که ادعای برنامه نویسی سه لایه ایتون میشه و از این تکنولوژی بهره می برین میشه خواهش کنیم که یه برنامه خیلی ساده بنویسید و برای بقیه بذارید تا هم بقیه مفهوم این مسئله را درک کنن و هم یه دعایی به جون شما؟ حتما هم نیاز نیست که این برنامه 1700 تا table با 2000 تا storeprocedure و 1200 تا Form و ..... داشته باشه
با چند تا کلاش ساده و یه دیتا بیسی که یکی 2 تا جدول داشته باشه هم میشه این مسئله را توضیح داد نه؟

برنامه نویسیه‌لایه ای برایه اینکار زیاد هست ، درست میفرمائید ، ولی در ضمن میتونید ۲ لایه اش را بگذارید بر رویه سرور و به لایه منطقی وصل کنید. به هر حال این یک روش دیگر بود.



در ضمن این تاپیک فقط به این جهت بود که یه برنامه بنویسید که دیتابیسش را از روی یه کامپیوتر دیگه یخونه
فرض کنید توی خونه 1 لپ تاپ دارید با یه pc که با هم شبکه کردین
فرض کنید Ip آدرس های این ها هم این باشه
برای سرور 192.168.100.1 و برای کلاینت 192.168.100.2
حاا یه برنامه بنویسید که دیتابیسش روی سرور باشه

فکر نمی کنم برای نوشتن یه همچین برنامه ای حتما باید از 3 tire استفاده کرد
گرچه برنامه نویسی لایه ای محاسن زیادی داره و لی این دلیل نمیشه که برای انجام عمل فوق حتما از این روش استفاده کرد

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

برنامه‌ای را که نوشتید و بر رویه سرور میتوانید اجرا کنید، فرقش با برنامه‌ای که از یک ماشین دیگر اجرا میشه چیه؟‌ تا جایی که فهمیدم برنامه نویسی لایه ‌ای برایه اینکار زیده، پش میماند فقط‌یک روش ، عوض کردن کانکشن استرینگ. حالا این روش چرا درست نیست؟

nashenase2
دوشنبه 28 خرداد 1386, 17:22 عصر
مگر چه چیزه دیگر هم هست؟ ما از این روش استفاده کردیم و شد،



خوب پس چرا یه نمونه ساده نمیذارین از این شدن ها ؟ مفروضات مسوله را هم که خدمتتون عرض کردم تو پست قبلی
با اون مفروضات و بدون لایه نویسی یه برنامه بنویسید (خیلی ساده و جمع و جور) که دیتابیس اونو روی سرور بذاریم و برنامه را روی کلاینت و بعد باهاش کار کنیم




اگر جواب تئوری نمیخواهید سوال تئوری نپرسید،



نیست شما دائما دارید برنامه های عملی مینویسید و upload میکنید
در ضمن من از همون اول بار ها گفتم که تئوری نگید و یه مثال ساده ولی عملی و با کد مثال بزنید






فکر میکنم یا من در یکی از پستهام یک چیزی نوشتم ناراحتتان کرد و یا اینکه اشتباه برداشت کردید.
به هر حال قصد این نیست که کسی را برنجانینم، در هر دو حالت عرض پوزش از ماست و بفرمائید که چی گفتم که ناراحتتان کرد.



قوانین سایت را یه بار دیگه مرور کن تا بفهمی کجا اشتباه کردی

مهدی رحیم زاده
دوشنبه 28 خرداد 1386, 19:56 عصر
بابا چرا اینجا رو اینجوری کردین ...
شده مرکز حل اختلاف تا حل مشکل برنامه نویسی ، کوتاه بیاین دیگه ...
ولی خوب nashenas2 راست میگن ، اگه یکی پیدا بشه و با یه مثال ساده توضیح بده که چکار کنیم ( که البته تو این سایت خیلی رایجه ) خیلی عالی میشه ....
البته خدمت دوستان جسارت نشه من اینجوری گفتم ...
چون امروز هر بار که اینجا سر زدم ، همش حرف از این بود که لحن صحبت بد بوده یا نه ....

omid_Ahmadi
دوشنبه 28 خرداد 1386, 20:03 عصر
حالا شما که ادعای برنامه نویسی سه لایه ایتون میشه و از این تکنولوژی بهره می برین میشه خواهش کنیم که یه برنامه خیلی ساده بنویسید و برای بقیه بذارید تا هم بقیه مفهوم این مسئله را درک کنن و هم یه دعایی به جون شما؟ حتما هم نیاز نیست که این برنامه 1700 تا table با 2000 تا storeprocedure و 1200 تا Form و ..... داشته باشه


نیست شما دائما دارید برنامه های عملی مینویسید و upload میکنید
در ضمن من از همون اول بار ها گفتم که تئوری نگید و یه مثال ساده ولی عملی و با کد مثال بزنید

این سایت به وجود نیومده که برای دوستان نقش یه آموزشگاه رو بازی کنه و افرادی هم که در حال فعالیت هستن برای آموزش مطالب مبتدی و نوشتن برنامه هایی که بقیه اعضا بتونن اون رو بخونن و یاد بگیرن در سایت حاظر نمی شن.
بهتره مقداری با فرهنگ استفاده از فروم و اهداف اون که در این سایت هم در مورد اون زیاد صحبت شده بیشتر آشنا بشید، بعد در این موارد اظهار نظر کنید.

اگر مایل به یادگیری در سطح مبتدی هستید، کتابهای زیادی وجود دارن که می تونید از اونها استفاده کنید، مثل کتابی که در همین سایت قرار دادم.



اگه یکی پیدا بشه و با یه مثال ساده توضیح بده که چکار کنیم ( که البته تو این سایت خیلی رایجه ) خیلی عالی میشه


گاهاً که دوستان به سوالاتی از این قبیل پاسخ می دن به میل خودشونه و حقی برای شما ایجاد نمی کنه که بخواهید اون رو مطالبه کنید.

موفق باشید.

Behrouz_Rad
دوشنبه 28 خرداد 1386, 21:01 عصر
قوانین سایت را یه بار دیگه مرور کن تا بفهمی کجا اشتباه کردی


کاربر nashenase2، اگر خیلی به قوانین سایت احترام میگذاری، بهتره اینو بدونی که فعالیت با 2 آی دی در این سایت بر خلاف قوانینه!
این ID تو به زودی بسته خواهد شد و میتونی با ID قدیمیت به فعالیتت ادامه بدی.

امیدوارم از این به بعد از جنجال آفرینی خودداری کنی تا حداقل بتونی اون ID رو حفظ کنی!

choobin84
سه شنبه 29 خرداد 1386, 07:02 صبح
من فکر میکنم برای کسی که تازه کار با برنامه تحت شبکه رو میخاد شروع کنه یه مثال ساده کافی باشه.
مشکل اول که باید حل شود کانکشن استرینگ هست.
مشکل دوم تعریف یوزر روی بانک در سرور هست تا بقیه کامپیوتر ها بتوانند از طریق آن یوزر به اون متصل بشن.
و بالاخره مشکل بعدی نام کامپیوتر سرور هست که باید در برنامه خودتان که روی کلاینت قرار داره ،
شناسانده بشود.

مهدی رحیم زاده
سه شنبه 29 خرداد 1386, 21:24 عصر
choobin عزیز
من برنامه رو روی کامپیوتر خودم اجرا کردم و وقتی که بانک رو attach کردم درست کار کرد و داده ها رو خوند ...
ولی وقتی این برنامه رو روی سرور می زارم و برای کلاینت ها شیر میکنم ، جواب نمیده ....
میشه بگی که چطوری تو محیط شبکه از این استفاده کنم ...
ممنون میشم ....