-
برنامه نویسی بانک اطلاعاتی تحت شبکه
سلام .
لطفا تا آخر مطلب رو بخونید . ممنونم از توجهتون .
چند روز پیش توی سایت داشتم دور میزدم تا ببینم می تونم یک تاپیک پیدا کنم که مثالی از برنامه کلاینت و سرور داشته باشه !! برام جالب بود تاپیکی پیدا کردم که تقریبا 2 سال همه دوستان داشتند اونو تکمیل میکردند اما در آخر نتونستند یک برنامه بنویسند که تحت شبکه اجرا بشه . البته تمام دوستانی که اون تاپیک رو می نوشتند استاد بودند و می خواستند یک کلوپ ویدئویی را اداره کنند .
اینجا سعی دارم با استقاده از دوستان عزیز یک برنامه طراحی کنیم که این کار رو انجام بده .
در واقع راه اون دوستان رو می خوام ادامه بدم .
دوستان عزیزم در اون تاپیک یک مشکل داشتند و اون هم مشکل مدیریتی بود . همشون می توانستند برنامه رو به تنهایی بنویسند اما با هم نه !!!!
من مدت 5 ساله که دارم با دلفی برنامه می نویسم . اما تا حالا تحت شبکه کار نکردم . در این تاپیک قصد دارم با استفاده از اساتید و دوستانم کار تاپیک قبلی رو به پایان برسونیم .
هدف :
آموزش برنامه نویسی تحت شبکه
در واقع می خواهیم تاپیکی ایجاد کنیم که مرجع یادگیری این موضوع در سایت باشد .
درخواست :
از اساتیدی که در این زمینه آشنایی دارند تقاضا می کنم با ارسال پیام آمادگی خود را جهت همکاری اعلام نمایند .
همچنین از دوستانی که مایل هستند این تاپیک آغاز بشود تقاضا می کنم با در ج تقاضاشون در این بخش از اساتید دعوت به همکاری نمایند .
با تشکر از همه دوستان
محمد کمالی
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
اولین مشکلی که با آن برخورد می کنید، این هست:
نقل قول:
هدف :
آموزش برنامه نویسی تحت شبکه
برنامه نویسی تحت شبکه یعنی چی؟ آیا فقط یک نوع خاص از برنامه هست که به آن برنامه تحت شبکه گفته میشه؟ آیا یک برنامه کلاینت سرور که داده های بانک اطلاعاتی را بین کلاینت ها و سرور منتقل می کند، برنامه تحت شبکه هست؟ یک برنامه چت چطور؟ یک FTP کلاینت چطور؟ یک مرورگر وب چطور؟ یک Web Server چطور؟ یک فایل سرور چطور؟ برنامه ایی که از طریق شبکه خودش را بروز می کند چطور؟ یک نرم افزار VoIP چطور؟، و خیلی نرم افزارهای دیگه. آیا به نظر شما نوشتن همه این برنامه ها مثل هم هست؟ اگر کسی این به اصطلاح برنامه نویسی تحت شبکه را یاد بگیرد، همه اینها را بلد هست که بنویسد؟!
وقتی یک هدف فوق العاده کلی در نظر می گیرید که خودش به شاخه های بسیار زیادی تقسیم می شود، و هر شاخه هم تفاوت های بسیار زیادی با سایر شاخه ها دارد، طبیعی هست که مبحثتان انسجام لازم را نداشته باشد، و به پایان مشخصی هم نرسد.
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
با سلام
اول از شما دوست عزیز تشکر می کنم چون بحث خوبی را شروع کردید
من هم به نوبه خود از دوستان و اساتید عزیز خواهش می کنم در این بحث شرکت کنند .
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام به دوستان
با نظر آقای کشاورز موافقم ، چون دقیقا دست روی مبحثی گذاشتین که خودش یه دنیا حرف برای گفتن داره ، با اینکه یه تاپیک باشه که تخصصی روی این موضوع بحث بشه موافقم ولی پیشنهاد من اینه که یکی یکی موضوعات تحت شبکه مطرح بشه و ازش نتیجه گرفته شه تا به یه جایی برسیم
ممنون
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
بهتر است ، يك نفر مدير بحث شود كه بحث هاي اضافه را حذف نماييد، بعد يك Index بحث ابتدا مشخص شود و بترتيب شروع و پايان و در انتها با يك عنوان نتيجه مشخص گردد.
البته نظرات آقاي كشاور درست مي باشد ولي به احتما زياد دوستان دنبال نوشتن يك برنامه با يك پايگاه داده هستند.
اگر نظر دوستان اين است، ايندكس موضوعي پيشنهادي اينجانب:
1-پايگاه داده SQLServer (بطور اجمالي نه طراحي و آناليز)
1-1-نصب پايگاه داده
1-2- ساختن يك جدول
2- دلفي
2-1- روشهاي اتصال به پايگاه داده
2-2-شناخت ADOConnection
2-3-شناخت AdoTable
2-4-شناخت AdoQuery
2-5-خواندن داده ها از جداول
2-6-ذخيره داده ها در جداول
2-7- يك پروژه كوچك
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
به احتما زياد دوستان دنبال نوشتن يك برنامه با يك پايگاه داده هستند.
اگر هدف تاپیک این باشه، باید به بخش کار با بانک های اطلاعاتی در دلفی منتقل بشه.
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
بهتره به یکی از شاخه هایی که آقای کشاورز گفتند برویم تا مطالب منسجم شود
به نظر من بهتره از برنامه کلاینت سرور که داده های بانک اطلاعاتی را بین کلاینت ها و سرور منتقل می کند
شروع کنیم
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
دوستان عزیز سلام .
خوشحالم که می بینم سایتی که به تازگی در آن عضو شدم سایتی فعال است .
چند مطلب :
1 . توضیح دوستمون در رابطه با برنامه نویسی تحت شبکه بسیار عالی بود و مطلبی رو یاد گرفتیم .
2 . هدف من از آغاز این تاپیک نوشتن برنامه کلاین و سرور است در واق یک چیزی مثل همون برنامه دوستان قبل که یک کلوپ بود . چیزی در اون سطح و اون شکل .
3 . در اون بحث من دیدم که دوستان با جدیت سعی دارند برنامه ای جامع و کاربردی بنویسند که البته هدف من این نیست . تقاضا دارم فقط راه اصلی برای نوشتن یک برنامه پیموده بشود . و از شاخه شاخه کردن و ریز شدن در جزییات برنامه پرهیز کنیم . مثلا این مطلب که اگر مشتری cd کرایه ای را شکست چه کار کنیم را ما لازم نداریم . یا حتی اگر تاخیر داشت جریمه را در نظر نمیگیریم . به طور واضحتر هدف را یک برنامه آموزشی قرار دهیم نه یک برنامه کاربردی !!
دوست عزیزمون فرمودند جای این تاپیک نا مناسب است . عذر خواهی منو بپذیرید . همونطور که می دونید تازه وارد هستم . .
خواهش :
تا روز جمعه همین هفته این تاپیک رو همینطور ادامه می دهیم . اجازه می دهیم که مشتاقانش به آن وارد شوند . لطفا برای دسته بندی شدن دوستانمون در 2 مطلب زیر عضو شوید یکی دانشجویان که برای یادگیری اومدند و دپیگری اساتید که برای کمک به ما وارد این تاپیک می شوند . نحوه ثبت نام هم ارسال یک پیام تشکر باشد .
البته چون من خودم نمیتونم تشکر کنم اینجا اعلام می کنم که در بخش دانشجو عضو می شوم . باتشکر
محمد کمالی
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
دانشجویان تشکر کنند برای عضویت
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
با تشکر کردن از این پیام در قسمت اساتید عضو شوید .
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
لازم نیست بصورت دانشجو و استاد تقسیم بشید....
یک سناریو تعریف کنید، آن سناریو را به چند بخش کلی تقسیم کنید، و بعد کار را با این بخش های کلی شروع کنید. و مراحلی که انجام میدید را اینجا ثب کنید. هر جا که به مشکلی برخورد کردید، آن را در همین تاپیک مطرح کنید تا هر کاربری که می تواند آن مشکل را توضیح دهد و راه حلی برای آن ارائه کند، اظهار نظر کند. اگر هم درباره اجزاء یک بخش مطمئن نیستید، آن را بصورت یک سوال در همین تاپیک مطرح کنید؛ مثلا، برای نوشتن برنامه X چه مراحلی نیاز است؟
کاربرانی که بتوانند جواب بدند، هر کدام مراحلی را ذکر می کنند. وقتی بر سر مراحل انجام کار به توافق رسیدید، ممکن هست در جزئیات هر مرحله باز هم نیاز به پرسش و نظرسنجی داشته باشید.
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
علی جان با نظر شما مخالفم . قصدمون از ایجاد این تاپیک ایجاد یک کلاس درس است .
پیشنهاد من این است که یک مدیر پروژه ای را مدیریت کند که به انحراف نرود و همه با هم برنامه رو توی همین تاپیک بنویسیم .
به هر حال دیدن روند تکت به تک مراحل برای افراد مبتدی در این تاپیک هدف ماست .
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
این جدا سازی هم برای این بود که افرادی که این تاپیک را ملاحضه می کنند از وجود افراد در کنار خودشون مطلع بشوند . و در واقع یک علاقه مندی در دوستان برای پیگیری به وجود آید .
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
به نظر من بهتره برای شروع کار قضیه رو محدود به یک LAN کنید یعنی طراحی برای شبکه های داخلی البته در قدم اول.
یه چیز دیگه هم هست اگه قراره جنبه آموزشی داشته باشه بهتره با یک مسئله ساده شروه بشه اگر مثلا بخواهید یه دفعه از دیتابیس تحت شبکه شروع کنید از همون اول دو راه ایجاد میشه یکی همون شبکه نویسی و دیگری مسائل خاص دیتا بیس در شبکه.
پس کلا باید از پایه شروع بشه مثلا برقراری کانکشن TCP یا UDP و صد البته مباحث مربوط به مالتی تردینگ که فکر می کنم بخش غیر قابل چشم پوشی و مهمی در برنامه نویسه شبکه است.
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
علی جان با نظر شما مخالفم . قصدمون از ایجاد این تاپیک ایجاد یک کلاس درس است .
تا وقتی سناریوی مشخصی وجود نداشته باشه، هر کسی که خودش را به عنوان مربی معرفی میکنه، میتونه از راه و روش خودش بحث را پیش ببره. اگر قرار باشه به قول شما کلاس درس باشه، باید یک عده افراد بشینند و یک سیلابس مشخص برای آن در نظر بگیرند، نقش هر کدام از خودشان را هم در آن مشخص کنند، و بعد به تدریس به پردازند. بعید میدونم همچین کاری اینجا شکل بگیره، یا اگر شکل گرفت، به مدت زمان معینی ادامه پیدا کنه! پس بهتره که سناریویی مطرح بشه، و از دوستان خواسته بشه که حول همان بحث و گفتگو کنند. در اینصورت، افرادی که می توانند کمک کنند، هر زمان که فرصت داشته باشند، کمک می کنند. اگر کسی مدتی فرصت نداشت، دیگرانی هستند که جواب مشکلات مطرح شده در سناریو را بدهند. اما در روش کلاس درس، یک گروه از افراد باید بطور پیوسته برای جوابگویی حاضر باشند، که این امر کمتر در فوروم اتفاق میافته.
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
کار خوبی رو شروع کردید من قبلا دنبالش رفتم و یک چیزهایی رو به کمک دوستان فهمیدم ولی کمی تا نیمه ابری بیخیالش شدم ولی اگه توی این تایپیک به صورت جدی شروع کنید من هستم ( البته به صورت دانشجویی ها یعنی برای یاد گرفتن وگرنه ما کوچیکتر از اونهایی هستیم که بخواهیم یاد بدیم )
امیدوارم که برنامه ای رو شروع کنید تا همه استفاده کنیم.
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
از میدیر خوبمون علی جان باز هم تشکر می کنم .
اما چرا اینقدر عجول هستید .
عرض کردم تا جمعه صبر کنید و نظراتتون رو بفرمایید تا به وقتش . تا جمعه که همدیگر رو بشناسیم و هدفمون رو متحد کنیم .
تقاضا :
لطفا مسئولیت این پروژه رو به من بسپارید به عنوان کسی که این تاپیک رو شروع کردم .
اگر تونستم که تا پایان ادامه بدم که خدا رو شکر در غیر این صورت مسئولیت رو به کسه دیگری واگذار می کنم .
خودم رو پیشنهاد دادم چرا که با اهداف این تاپیک از همه بیشتر آشنایی دارم .
تشکر می کنم از همه دوستانی که اهمیت دادند . امیدوارم در پایان تاپیک رو داشته باشم که باز هم وارد سایت بشم .
محمد کمالی
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
:لبخند:راستی اجازه دهید صورت مسئله و نیازمندی های مسئله رو هم من پیشنهاد بدم . مخالفین می توانند خشونت به خرج دهند:لبخند:
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
لطفا مسئولیت این پروژه رو به من بسپارید به عنوان کسی که این تاپیک رو شروع کردم .
تاپیک تا زمانی که در آن کاری خلاف قوانین سایت انجام نشده، در اختیار کاربر ایجاد کننده آن هست. شما می تونید طرح مورد نظر خودتان را پیش ببرید. مطالبی هم که گفته میشه، اظهار نظر شخصی هست.
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام!
نقل قول:
تا وقتی سناریوی مشخصی وجود نداشته باشه، هر کسی که خودش را به عنوان مربی معرفی میکنه، میتونه از راه و روش خودش بحث را پیش ببره. اگر قرار باشه به قول شما کلاس درس باشه، باید یک عده افراد بشینند و یک سیلابس مشخص برای آن در نظر بگیرند، نقش هر کدام از خودشان را هم در آن مشخص کنند، و بعد به تدریس به پردازند. بعید میدونم همچین کاری اینجا شکل بگیره، یا اگر شکل گرفت، به مدت زمان معینی ادامه پیدا کنه! پس بهتره که سناریویی مطرح بشه، و از دوستان خواسته بشه که حول همان بحث و گفتگو کنند. در اینصورت، افرادی که می توانند کمک کنند، هر زمان که فرصت داشته باشند، کمک می کنند. اگر کسی مدتی فرصت نداشت، دیگرانی هستند که جواب مشکلات مطرح شده در سناریو را بدهند. اما در روش کلاس درس، یک گروه از افراد باید بطور پیوسته برای جوابگویی حاضر باشند، که این امر کمتر در فوروم اتفاق میافته.
من خودم با صحبتهای آقای کشاورز موافقم! (با توجه به تجربه یک ساله ام در سایت!)
هدف دوستمون از ایجاد این تاپیک هدف مناسبیه ولی خیلی کلیه !
بهتره یک بحث مفید انتخاب بشه که همه شرکت کنند !
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام امشب ساعت 11.5 الی 12 در سایت سوال اصلی مطرح می شود . از دوستانی که در این ساعت می توانند در سایت حضور داشته باشند تقاضا می کنم که حضور به هم رسانند تا به صورت آن لاین بتوانیم با هم صحبت کنیم با تشکر
محمد کمالی
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
عزیز اگه دوست داری کسی چیزی یاد بگیره بهتره قبل از اینکه بی خیال بشه شروع کنی.
خیلی ها اینقدر وقت برای از دست دادن ندارن.
با تشکر
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
عزیز اگه دوست داری کسی چیزی یاد بگیره بهتره قبل از اینکه بی خیال بشه شروع کنی.
خیلی ها اینقدر وقت برای از دست دادن ندارن.
با تشکر
کاملا با گفته این دوست عزیز موافقم تاپیک به صفحه سه رسید ! به نظر من برو سر اصل مطلب از همین اول دراه دلزدگی ایجاد میشه
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام
نقل قول:
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام امشب ساعت 11.5 الی 12 در سایت سوال اصلی مطرح می شود . از دوستانی که در این ساعت می توانند در سایت حضور داشته باشند تقاضا می کنم که حضور به هم رسانند تا به صورت آن لاین بتوانیم با هم صحبت کنیم با تشکر
محمد کمالی
و اما او نیامد !:چشمک:
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام بد قولی من رو ببخشید به خدا برق رفته بود همین الان اومد .
به هر حال الان ساعت یک است و اولین ساعت های جمعه برنامه از الان آغاز شد .
قراره برنامه ای ساده بنویسیم .
یک فرهنگ لغت .
این برنامه برای هر آدم مبتدی که بتونه با هر زبان برنامه نویسی کار کنه یک برنامه پیش پا افتاده است .
درسته هدف هم همینه .
برنامه دارای یک بانک است شامل :
1. لغت
2. معنی
3. توضیحات
توانمندی های برنامه :
1 . درج اطلاعات
2. ویرایش
3. جستجو
4 . گزارش قابل چاپ
ویژگیهای برنامه .
این برنامه قادر است از طریق شبکه اجرا شود به نحوی که افراد یک شبکه lan بتوانند به طور هم زمان از تمامی اجزای برنامه استفده کنند .
همچنین در هر لحظه تمام کاربران از تغییرات بانک مطلع شوند .
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
توجه کنید دوستان ما قصد نوشتن یک برنامه حرفه ای رو نداریم و فقط قصد داریم با مبانی برنامه نویسی تحت شبکه آشنا شویم (البته اون بخشی از شبکه که به موضوع مربوطه )
ممکنه بعضی از دوستان بفرماییند که مثلا باید کاری کنیم که کاربران نتوانند لغات تکراری به بانک اضافه کنند . گرچه این کار کار ساده ای است اما هدف ما این نیست . به کاربردی بودن برنامه توجه نکنید و فقط به شناخت عناصر و همچنین نحوه ایجاد عناصر دقت کنیم .
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سوال نخست :
چه بانکی را برای این کار پیشنهاد می کنید .؟؟
در جواب دادن به حجم اطلاعات توجه نکنید بلکه به امنیت و سادگی و همچنین کاربردی بودن آن در شبکه توجه فرمایید .
یکی از دوستان برای طراحی بانک و همچنین توضیح در مورد نحوه ایجاد این بانک داوطلب شوند .
با تشکر
محمد کمالی
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام
مساله بانک !
مساله مکانیسمی که قراره با اون به بانک وصل شد ( از ADO استفتده می خوای بکنی یا از DbExpress یا BDE , ....)
برنامه به صورت Client و Server قراره اجرا بشه یعنی یک برنامه سرور و یک برنامه Client یا فقط یک برنامه وجود داره که تو هر سیستم قراره ConnectionString رو عوض کنیم !
پیشنهاد من
برنامه Client ,Server با معماری 3 لایه و با بانک SQL Server با استفاده از Sucket Connection که یک برنامه سرور موجود باشه که مدیریت Client ها رو بر عهده بگیره و برنامه های Client تنها در صورتی که برنامه Server اجرا باشه بتونن اطلاعات رو بگیرن
در سمت Client با ClientDataSet کار کنیم !
من این روش رو گفتم چون در این سایت خیلی کم دیدم در این موارد زیاد بحث شده باشه ... (معمولا اکثر برنامه های تحت شبکه فقط کافیه که ConnectionString رو عوض کنی تا تحت شبکه بشه کار کنه) بهتره یک کاری که کمتر بچه ها آشنا هستند رو شروع کنیم ...
من خودم تجربه عملی در این مورد رو داشتم و تا اونجا که بشه کمک می کنم ... اگه این طرح رو قبول کردین خودم اسارت رو واسه آموزش می زنم ...
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
ضمن تشکر از amin_alex عزیز
بنده هم با نظر ایشون موافقم و معتقدم که ایجاد برنامه ای تنها با یک بانک اطلاعاتی راه دور که تمام هم و غمش تغییر IP باشه رو نمی شه برنامه نویسی شبکه گفت .
بنده عینا پیشنهادات دوست عزیزمون رو پیشنهاد می کنم و امید وارم بحث به نتایج خوبی برسه .
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
دوستان عزیز تا شب وقت دارند که نظرات خود را در باره بانک بفرماییند در غیر این صورت نظر دوستمون امین جان اعمال می شود . به همون نحوی که خودشون فرمودند
با تشکر
محمد کمالی
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
ببخشید من هنوز متوجه نمی شم که چرا می خواید دو برنامه(یکی رو سرور یکی رو کلاینت) داشته باشید؟ چرا از یه برنامه رو سرور و یه shortcut رو کلاینت استفاده نمی کنید مثل همکاران سیستم. با این کار 90% ترانزاکشن ها رو SQL منتقل می شه و UI شما سرعتش بالاتر می ره. با یه ماژول launcher می تونید کاربراتون رو کامل کنترل کنید و هر تغییری رو به راحتی در همه کلاینت ها اعمال کنید:متفکر:
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
آقا مرتضی من این کار رو امتحان کردم اما مثلا در بانکی مثل bde کاربران از تغییرات کاربران دیگر در بانک متوجه نمی شوند اون هم تا زمانی که تمام کاربران برنامه های خود را ببندند و مجددا باز نمایند .
در ضمن کاربران وقتی short cut یک برنامه رو باز می کنند در واقع از بانکی که روی سرور هست یک بافر گیری می کنند . همچنین قصد داریم با اصول برنامه نویسی در شبکه آشنا بشیم .
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
نقل قول:
ببخشید من هنوز متوجه نمی شم که چرا می خواید دو برنامه(یکی رو سرور یکی رو کلاینت) داشته باشید؟ چرا از یه برنامه رو سرور و یه shortcut رو کلاینت استفاده نمی کنید مثل همکاران سیستم. با این کار 90% ترانزاکشن ها رو SQL منتقل می شه و UI شما سرعتش بالاتر می ره. با یه ماژول launcher می تونید کاربراتون رو کامل کنترل کنید و هر تغییری رو به راحتی در همه کلاینت ها اعمال کنید
همچین کاری نیاز داره که اولا همه کلاینت ها به پوشه اشتراک گذاشته شده دسترسی داشته باشند، که همیشه ممکن نیست، ثانیا، وقتی فایل را از روی سرور اجرا می کنید، برنامه روی حافظه سرور اجرا نمیشه، بلکه یک نسخه از آن در سیستم کلاینت Cache میشه، و در حافظه کلاینت اجرا میشه. اگر قرار باشه برنامه روی سرور اجرا بشه، باید از برنامه هایی مثل Remote Desktop که از Terminal Service ویندوز استفاده می کنند، استفاده کرد. نکته آخر هم اینکه، همیشه برنامه کلاینت Stand-alone نیست، بلکه گاهی نیاز به نصب برخی از اجزای خودش در سیستم کلاینت داره. پس اگر برنامه کلاینت فقط یک EXE باشه و وابستگی به چیز دیگه ایی نداشته باشه، فرقی نمیکنه که یک Shortcut از آن درست کنید و در کلاینت از آن استفاده کنید، یا خودِ فایل را در سیستم کلاینت کپی کنید؛ در هر دو حال، برنامه در حافظه کلاینت اجرا خواهد شد.
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
امین جان لطفا بانک اطلاعاتی خودت رو معرفی کن و نحوه ایجاد اون رو برای دوستان تشریح کن .
ممنونم .
همه ما منتظر هستیم
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
دوست عزیز پس بهتره عنوان رو بذار بانک اطلاعاتی تحت شبکه .
-
1 ضمیمه
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام
من واسه شروع به صورت خیلی ساده عمل می کنم :لبخندساده:
ابزار مورد نیاز
Delphi7 , SQL Server 2000
در DB فقط یک جدول با مشخصاتی خواهید دید ساختم .. خیلی ساده :چشمک:
این هم Script مربوط به ساخت DB به همراه فایل Mdf و Ldf هر کدوم رو که راحتتر بودید استفاده کنید !
به همراه فایلهای Proje ساخته شده در دلفی (در اولین فرصت توضیحات رو میدم :بامزه: ... حد اکثر تا 12 امشب ... چون یک مقدار کار دارم :گیج:)
این رو گذاشتم که یه موقع بد قولی نکرده باشم ! :چشمک:
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام :چشمک:
من ابتدا یک Project Group ساختم
File -> New -> Other -> New -> Project Group
بعد 2 تا Project دیگه به این Project Group اد کردم
File -> New -> Other -> New -> Application که به نامهای Client و Server ذخیره کردم !
حال از منو View -> Project Manager رو فعال و روی پروژه Server دبل کلیک می کنیم تا فعال بشه ... و بعد از مسیر زیر یک Remote Data Module به پروژه اضافه می کنیم !
File -> New -> Other -> New -> Multitier -> Remote Data Module
در بخش CoClass Name اسم RmtDMServer را تایپ و OK رو می زنیم !
تا این قسمت کارایی رو تو ضیح دادم که در پست قبلی با پیوست ضمیمه کردم !!!
در ادامه قصد دارم تعداد Connection هایی که به Server متصل هستند رو شناسایی کرده و از تعداد اونها مطع بشیم
ادامه در اولین فرصت ... :لبخند:
-
1 ضمیمه
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
از اساتید بزرگوار هر کدوم دیدن در توضیحات من اشتباهی وجود داره یا نکته تکمیلی هست راهنمایی کنن !
من سعی می کنم پروژه رو قدم به قدم پیش ببرم ...
شما هم قدم به قدم خودتون انجام بدین تا اگه مشکلی داشتین همین اول بپرسین !! :متفکر:
سرور برنامه می تواند یک سری سرویسهایی برای Client فراهم کند ... :گیج:
این سرویسها می تواند شامل ارتباط با پایگاه داده و یا یک سرویس برای انجام محاسبات پیچیده باشد !! :کف:
وقتی داشتیم Remote Data Module رو انتخاب می کردیم در صفحه ای که CoClass Name رو انتخاب کردیم یک گزینه Combo به نام instancing وجود داشت ! که ما Multiple Instance رو انتخاب کردیم !
در این حالت برای هر Client در سمت Server تنها یک نسخه از فایل Exe سرور اجرا میشود !
واگر Single Instance رو انتخاب می کردیم به ازای هر Client یک نسخه از سرور ایجاد میشه !؟
در حالت Multiple یک کپی از نسخه سرور ایجاد میشه اما ... به ازای هر Client یک Remote Data Module نمونه سازی میشه ! (نمی دونم چه قدر یاASP.NET آشنا هستید ... :متفکر: مثل یک Application که اجرا میشه و Session که به ازای هر کاربر یک نمونه تولید میشه !) .........
حالا با توجه به این نکته که فهمیدیم به ازای هر Client یه Module ساخته میشه ...
می تونیم در رویداد TRmtDMServer.RemoteDataModuleCreate این موضوع رو اداره کنیم (در ادامه توضیح می دم)
تا اینجا برنامه Sesrvr آماده شده اگه این برنامه یک بار اجرا بشه این برنامه Register میشه !!!
برای برنامه Client باید ابتدا برنامه Client رو در Project Group فعال کنید و در فرم اصلی از تب DataSnap یک SocketConnection روی فرم می زاریم ... چند خاصیت این Object باید Set شود . که من در قسمت Host اسم Computere خودم Soft1 رو می زارم ! (یک Edit میزارم که بشه اسم Server رو در زمان اجرا عوض کرد ... شما نام Computer خودتون رو بزارین)
حالا بخش مهم ! ... در بخش سرور Name شما الان باید بتونید نام Server رجیستر شده (DataModule) رو داشته باشید !
اما اگه الان بخواین اون رو انتخاب کنید با یک Error مواجه میشید ! :عصبانی++:
علت : :لبخند: خیلی ساده !!!
چون ما از SocketConnection استفاده کردیم باید یک برنامه برای مدیریت Socket ها داشته باشیم ... :ناراحت: یعنی باید خودمون بنویسیم !!! :اشتباه:
نه بابا !!! :لبخند:
دلفی خودش واسه ما این رو گذاشته !!! :تشویق: و این برنامه باید در حال اجرا باشه تا بتونیم ServerName رو انتخاب کنیم ! (اگر در خط فرمان در پنجره Run این برنامه رو تایپ کنید scktsrvr.exe برنامه در قسمت TaskBar در اجرا میشه و Source رو هم در مسیر نصب E:\Program Files\Borland\Delphi7\Source\Vcl می تونید پیدا کنید !!) حالا می تونیم در قسمت ServerName یک سرور به نام Server.RmtDMServer را انتخاب می کنیم (به شرطی که یک بار برنامه Server رو اجرا کرده باشیم!) بعد از انتخاب قسمت ServerGUID به صورت Auto پر میشه !:بامزه:
یک Button می زاریم روی فرم و دستور زیر رو برای Connect شدن مینویسیم !
SocketConnection1.Host:=edtServerName.Text;
SocketConnection1.Connected:=Not SocketConnection1.Connected;
IF SocketConnection1.Connected Then btnConnect.Caption:= 'DisConnect'
Else btnConnect.Caption:='Connected';
حال اگه برنامه Client رو اجرا کنید ... و Connect رو بزنید میبینید که برنامه Server به صورت Auto اجرا میشه !!
Source رو Attach میکنم ..اما توضیح تعدادConnectionهای متصل به سرور رو بعدا توضیح می دم ... (ولی کدش رو نوشتم ... :چشمک:)
چند تا برنامه Client رو اجرا کنید و Connect رو بزنین و نتیجه رو ببینین !:قلب:
تا اینجا رو یک بار خودتون جلو برین و اگه نظر و سوالی دارین بپرسین تا ادامه رو داشته باشیم !:لبخندساده:
در ادامه (اگه سوالی نداشتین) کد مربوط به تعداد Connection های متصل به سرور رو میگم !
-
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
اما از Source بالا توضیح یک بخش مونده بود که الان توضیح میدم ! (در بخش پروژه Server )
همان طور که گفتم :لبخندساده: هنگامی که یک Client جدید به برنامه Connect می شه به ازای اون Client یک Remote Data Module ایجاد میشه !
دو رویداد مهم در این بخش وجود دارد ... یکی مربوط می شه به OnCreate و OnDestroy که از نام اونها معلومه کی فراخونی میشن !:گیج:
من برای اینکه تعداد Connection های متصل رو بتونم بشمرم در رویداد Create با PostMessage یکی به شمارنده در فرم Frm_Server اضافه می کنم و در رویداد Destroy یکی کم می کنم ...
procedure TRmtDMServer.RemoteDataModuleCreate(Sender: TObject);
begin
PostMessage(Frm_Server.Handle,UM_CONNECT,1,0);
end;
(
اگر می خوایید بدونید PostMessage چه کار می کنه :متفکر:
https://barnamenevis.org/showthread.php?t=106053
کارش شبیه SendMessage ... باز خودتون یه Search بزنید
)
در فرم Frm_Server هم واسه اینکه Message فرستاده شده دریافت بشه باید کاری کرد !
که با این تابع این کار انجام میشه !
Procedure UMConnect(var Msg:Tmessage);message UM_CONNECT;
خوب حالا یک توضیح مختصر هم در مورد برنامه Client ....
در برنامه Client در فرم من یک Edit گذاشتم که بشه نام Computer سرور رو داد ...
می شه به جای نام Computer سرور از IP استفاده کنید ... برای این کار می تونید از خاصیت SocketConnection1.Address استفاده کنید ...
برای تغیر Port هم می تونید از این SocketConnection1.Port استفاده کنید .
من سعی می کنم آهسته و پیوسته برم جلو ... :لبخند:
اگه یه موقع دیدید بین Post هایی که می زنم خیلی تاخیر افتاد (منظورم بیشتر از 2 روزه ! :متفکر: !) بهم یادآوری کنید :چشمک:
-
2 ضمیمه
نقل قول: برنامه نویسی تحت شبکه (وارد شوید )
سلام و خسته نباشید
من هم کارهایی که گفتی انجام دادم و هم برنامه ای که شما گذاشته بودید رو اجرا کردم ولی در موقع اجرا وقتی دکمه کانکت رو میزنم Error می ده دو تا Error که عکسشونو ضمیمه کردم لطفا من رو راهنمایی کنید .
ممنونم