ورود

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



rezvan_DP
یک شنبه 17 تیر 1386, 22:31 عصر
سلام
در مورد برنامه نویسی تحت شبکه در سایت جستجو کردم که بهترین توضیحی رو که پیدا کردم این (http://barnamenevis.org/forum/showthread.php?t=7933&highlight=%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87+%D8 %A7%DB%8C+%DA%A9%D9%88%DA%86%DA%A9+%D8%AC%D9%87%D8 %AA+%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C+Cli ent+%2F+Server&page=17) بود
بعد با یکی از دوستانم که در این زمینه تجربه داره صحبت کردم گفت که نیازی به برنامهclient/serverنیست و قراردادنexe برنامه روی سرور کافیه اما باید مدیریت بیشتری روی بانک داشته باشی تا به مشکل برنخوری(داده های همزمان و...) و برای اتصال با سرور هم باید یک فایل متنی داشته باشی که اسم سرور رو در اون ذخیره کنی و کنار فایلexe ات باشه.

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

rezvan_DP
یک شنبه 17 تیر 1386, 22:47 عصر
یک مساله دیگه که فراموش کردم بگم اینکه فاز ورود اطلاعات قبلا انجام شده و این برنامه فقط امکان جستجو بر روی داده ها رو داره.(گفتم شاید اینهم نکته مهمی در تصمیم گیری باشه).

متشکرم

vcldeveloper
دوشنبه 18 تیر 1386, 02:19 صبح
سلام،


با یکی از دوستانم که در این زمینه تجربه داره صحبت کردم گفت که نیازی به برنامهclient/serverنیست و قراردادنexe برنامه روی سرور کافیه اما باید مدیریت بیشتری روی بانک داشته باشی تا به مشکل برنخوری(داده های همزمان و...) و برای اتصال با سرور هم باید یک فایل متنی داشته باشی که اسم سرور رو در اون ذخیره کنی و کنار فایلexe ات باشه.فرمایشات دوستتون درست نیست. با توجه به توضیحاتی که خودتون دادید (مثل استفاده از برنامه در شهرها و مکان های مختلف و...)، پیشنهاد دوستتون اصلا کاربردی نیست!
برای شروع کار همون تاپیکی که بهش لینک دادید را مطالعه کنید. توی کتاب های آموزش دلفی هم معمولا بخش هایی برای برنامه نویسی تحت شبکه پیدا میشه، اونها رو هم مطالعه کنید و کارتون رو شروع کنید، هر جا به مشکل برخوردید، اینجا مطرح کنید. در ضمن اطلاعات بیشتری هم درباره پروژه ایی که می خواید انجام بدید؛ نوع بانک اطلاعاتی، نوع شبکه، حجم داده ها و... ارائه بدید تا بهتر بشه بهتون کمک کرد.
در ضمن، سوالات کلی نپرسید، مثل "کسی می تونه به من در برنامه نویسی تحت شبکه کمک کنه؟" ، جواب همچین سوالاتی خودش یک کتاب میشه!
موفق باشید.

rezvan_DP
دوشنبه 18 تیر 1386, 12:08 عصر
آقای کشاورز از راهنماییتون سپاسگزارم.

فرمایشات دوستتون درست نیست. با توجه به توضیحاتی که خودتون دادید (مثل استفاده از برنامه در شهرها و مکان های مختلف و...)، پیشنهاد دوستتون اصلا کاربردی نیست!

یعنی منظورتون اینه که این راه کلا اشتباه هست یا با توجه به شرایط این پروژه راه مناسبی نیست؟
ویژگیهای این پروژه:
-بانک اون ابتدا access بوده ولی چون باید تحت شبکه باشه پیشنهاد کردند که تبدیل به sql بشه.
-حجم بانک حدود 6.5MB است.
-در مورد نوع شبکه هم فعلا که نمیدونم و با توجه به اینکه در شبکه های مختلفی باید اجرا بشه ایده خاصی هم ندارم،خوشحال میشم در این مورد هم راهنمایی کنید.
-کلا در این برنامه ممکنه که هر سال یه چیزی حدود همین 6MB به حجم بانکش اضافه بشه یا شاید هم برای داده های هر سال بانک جداگانه ای رو بخوان.هنوز در این مورد تصمیم نگرفتند.

متشکرم

vcldeveloper
سه شنبه 19 تیر 1386, 01:46 صبح
یعنی منظورتون اینه که این راه کلا اشتباه هست
بله، معنی نداره که چند کلاینت یک فایل اجرایی را Share کنند. نتیجه نهایی این کار این میشه که هر کدوم یک کپی از فایل Exe داشته باشند، که این میشه همون نصب برنامه بر روی کلاینت ها، البته اگر برنامه به فایل های بیشتری نیاز داشته باشه که اصلا جواب نمیده!


در مورد نوع شبکه هم فعلا که نمیدونم و با توجه به اینکه در شبکه های مختلفی باید اجرا بشه ایده خاصی هم ندارم،خوشحال میشم در این مورد هم راهنمایی کنید.
اگه یک شبکه مبتنی بر TCP/IP باشه که کلیت همه شون یکسانه؛ از اینترنت گرفته، تا اینترانت یک شرکت کوچک. نحوه کار با SQL Server هم توی همشون یکسانه.

rezvan_DP
سه شنبه 26 تیر 1386, 11:48 صبح
سلام
از راهنمایی شما ممنونم.

این لینک رو هم در این مورد پیدا کردم که اینجا (http://barnamenevis.org/forum/showthread.php?t=59232) میذارم تا احیانا دوستانی که درباره این موضوع جستجو می کنند و به اینجا می آیند از اطلاعات مفید این لینک هم استفاده کنند.

اما یه سوال:
آیا query ها رو باید در سمت کلاینت بنویسیم ؟

و یه سوال دیگه که در مورد محل نوشتن پرس و جوهاست که اینجا (http://barnamenevis.org/forum/showthread.php?p=366217#post366217) مطرحش کردم.

سپاسگزارم از راهنمایی شما.

rezvan_DP
چهارشنبه 27 تیر 1386, 18:08 عصر
من طبق دستورالعمل داده شده در این لینک (http://barnamenevis.org/forum/showthread.php?t=59232) کارها رو انجام دادم.
در مرحله ای که در راهنما گفته شده که از منویRun گزینهInstall Com+ Objects را انتخاب نمایید،در فرم نمایش داده شده بعد از تایپ اسم application با خطای زیر مواجه شدم:

a connection with the transaction manager was lost

علت چیست و برای رفعش چه کار باید بکنم؟
با تشکر،منتظر راهنمایی شما هستم.

vcldeveloper
پنج شنبه 28 تیر 1386, 08:56 صبح
نیازی نبود که شما کارتون را با اون تاپیک شروع کنید. با توجه به توضیحاتی که در پست های قبلی دادید، یک ساختار Client\Server برای کار شما کافی بود. تاپیکی که بهش اشاره کردید، درباره برنامه های 3 لایه هست و چندان بکار شما نمیاد، از طرفی برای استفاده از Com+ برای ارتباط بین لایه های برنامه، باید اطلاعات کافی درباره +Com و نحوه عملکردش داشته باشید.

rezvan_DP
پنج شنبه 28 تیر 1386, 19:02 عصر
آقای کشاورز از اینکه راهنمایی میکنید خیلی ممنونم.


تاپیکی که بهش اشاره کردید، درباره برنامه های 3 لایه هست و چندان بکار شما نمیاد
میشه بیشتر توضیح بدید؟چرا و به علت چه ویژگی از برنامه من طراحی 3 لایه مناسب نیست؟
----------------
اگه امکانش هست در مورد اون خطا هم توضیح بدین که چی هست و چرا رخ داده؟

سپاسگزارم

vcldeveloper
جمعه 29 تیر 1386, 10:14 صبح
معماری 3-لایه معمولا زمانی به کار میاد که شما می خواید قبل از ثبت داده ها در داخل بانک اطلاعاتی توسط کاربران، یکسری قوانین واحد را بر روی داده ها اعمال کنید، یا زمانی که قصد دارید یک رابط واحد برای اتصال کاربران، فارق از نوع بانک اطلاعاتی و نحوه دریافت اطلاعات از بانک ایجاد کنید، یا زمانی که سیستم های ناهمگونی دارید که بطور عادی قابلیت تعامل با هم را ندارند و شما می خواید یک رابط برای اونها بنویسید تا با هم تعامل ایجاد کنند، یا زمانی که باید برنامه سمت کلاینت کوچک و کم حجم باشه و بیشتر پردازش ها در سمت سرور انجام بشه (مثل یک برنامه Web base)، و موارد دیگه ایی که الان خاطرم نیست. البته ممکنه در یک پروژه چند تا از این موارد مد نظر شما باشه.
در هر حال من هیچکدوم از این نیازها را در اطلاعاتی که شما درباره این پروژه دادید، ندیدم.

rezvan_DP
جمعه 09 شهریور 1386, 11:39 صبح
سلام
بعد از یک وقفه نسبتا طولانی....

آیا باید کوئریها رو در سمت کلاینت بنویسم یا سرور.از صفحاتی که مطالعه کردم اینطور برداشتم بود که باید در سمت سرور باشه و در کلاینت با datasetو datagrid به داده های دسترسی داشته باشم .اگه روش صحیح اینه ، پس با توجه به اینکه من متن کوئریها رو در دلفی نوشتم، باید همه متنها و تنظیماتش در سمت سرور باشه و بعد به ازای هرکدوم از این کوئریها، در سرور یک datasetprovider و در کلاینت یک socketconnectionو clientdataset داشته باشم؟

متشکرم

vcldeveloper
شنبه 10 شهریور 1386, 09:13 صبح
آیا باید کوئریها رو در سمت کلاینت بنویسم یا سرور.از صفحاتی که مطالعه کردم اینطور برداشتم بود که باید در سمت سرور باشه و در کلاینت با datasetو datagrid به داده های دسترسی داشته باشم .اگه روش صحیح اینه ، پس با توجه به اینکه من متن کوئریها رو در دلفی نوشتم، باید همه متنها و تنظیماتش در سمت سرور باشه و بعد به ازای هرکدوم از این کوئریها، در سرور یک datasetprovider و در کلاینت یک socketconnectionو clientdataset داشته باشم؟

اینکه کوئری ها در چه سمت نوشته بشند، بستگی به نوع پروژه شما و معماری اون داره. روشی که در انتهای پست بهش اشاره کردید، معماری 3-لایه هست. اگر در برنامه یک سرور بانک اطلاعاتی و تعداد کلاینت برای اتصال به آن داشته باشید، میشه معماری Client-Server.
هر دوی اینها تا حدودی در سایت توضیح داده شدند، جستجو کنید.

rezvan_DP
چهارشنبه 14 شهریور 1386, 17:33 عصر
سلام
بعد از جستجو....
1- در پستی Rahele_saگفته بودند که:
(دوستان چرا خودتون را در نوشتن برنامهایClientوServerاذیت میکنید . چرا تازه کارها و کمی حرفه ایها هم از این نامها و این پروژه ها کمی میترسند.
میخواهم یک روش کلی و بسیار راحت و کارآمد به شما معرفی کنم (که همتون دیگه از این به بعد احتیاجی به مطالعه های زیاد و تجربه های بسیار در ساختن این برنامه ها نداشته باشید

ببیند شما یک برنامه بانک اطلاعاتی بسیار ساده بسازید . حالا با هرچیکه میخواهید بسازید . فقط باید روی همان کامپوتر شما کار کنه . و شما بتوانید رکوردهایی را اضافه و حذف کنید
تمام شد اینم یک برنامهClientوServerشایدتعجب کنید ! بله ! همین جوری است من هم پروژه خودم را با همین روش نوشتم من پوشه برنامه ام را به اشتراک شبکه گذاشتم سپس با 10 تا کامپوتر دیگر آمدم exeبرنامه را اجرا کردم.
همشون هم خوب کار کرد بدون ایراد برنامه هم اصلا خطا نداد زیرا در یک هفته 10.000 نفر از 10 کامپوتر ثبت نام کردند و مشتری هم بسیار رازی بود
2- اما جناب قابیل در جواب گفته بودند که:
(دوست عزیز به این روش برنامه نویسی نمیگن برنامه نویسی کلاینت سرور یا چند لایه ،این برنامه نویسی 2 لایه هست بسیار هم برای کاری که شما میخواستین انجام بدین مناسب و کافی بود ...
هر برنامه ای که روی شبکه اجرا میشه بهش کلاینت سرور نمیگن برنامه کلاینت سرور حداقل باید یک لایه میانی داشته باشه که پروسسهای اصلی سیستم و منطقها مورد نیاز برنامه اونجا باشند (مثلا روش محاسبه درآمد شرکت اونجا نوشته میشه ) و بعد یک نرم افزار کلاینت که وظیفه اصلیش ارائه رابط کاربری هست می آد از این سرور اطلاعاتت رو درخواست میکنه و میگیره که این کار مزایای زیادی داره.....
3- یه جای دیگه آقای managerگفتن که:
(معماری Client Server:
ویژگی:
درمعماری فوق از سرویس دهند گان و سرویس گیرند گان با خصایص متفاوت استفاده می شود.
اصل تقسیم کار دنبال و سرویس دهنده عملیات سنگین با پردازش بالا و سرویس گیرنده عملیات سبک را انجام خواهند داد.
دو بخش متفاوت یک برنامه ، در جهت انجام عملیات با یکدیگر تشریک مساعی می نمایند.
سرویس گیرنده با ارسال درخواست و سرویس دهنده با پاسخ به درخواست جلوه ای از همیاری در پردازش عملیات را بنمایش می گذارند.
پلات فورم و سیستم های عامل سرویس دهنده و سرویس گیرنده می تواند متفاوت باشد.
عملیاتی را که یک برنامه انجام می دهد بین سرویس دهنده و سرویس گیرنده تقسیم می گردد.
تاکنون مدل های متفاوتی ازمعماری فوق پیاده سازی شده است.
پردازش های مبتنی بر میزبان.مدل فوق بمنزله یک مدل سرویس دهنده / سرویس گیرنده تلقی نشده و مشابه مدلMainFarmeاست.
پردازش های مبتنی بر سرویس دهنده.در این مدل سرویس دهنده تمامی پردازشهای مربوطه را انجام و سرویس گیرنده مسئولیت ایجاد بخش رابط کاربر را برعهده خواهدد اشت.
پردازش های مبتنی بر سرویس گیرنده.تمامی عملیات بر روی سرویس گیرنده انجام خواهد شد. عملیات مربوط به بررسی صحت داده ها و سایر عملیات مربوط به منطق بانک های اطلاعاتی بر روی سرویس دهنده انجام خواهد شد.
پردازش های مبتنی بر همیاری.در این مدل سرویس دهنده و سرویس گیرنده بمنظور انجام یک فعالیت با یکدیگر تشریک مساعی خواهند کرد.
معماریClient Server : Two Tier
ویژگی:
مشابه مدلClient Serverدر بخش قبل میباشد.
در این مدل از یک سرویس دهنده و یک سرویس گیرنده در شبکه استفاده میگردد.
مدل فوق ازسه بخش که در دو لایه سرویس دهنده و سرویس گیرنده قرارخواهند گرفت، تشکیل می گردد.
بخش های رابط کاربر ، مدیریت پردازش ها و مدیریت بانک های اطلاعاتی بخش های سه گانه مدل فوق می باشند.
منطق برنامه بین دو محل فیزیکی توزیع می گردد.
مزایا:
مناسب ترین روش برای پردازشهای توزیع شده در یک شبکه با حداکثر یکصد کاربر
سهولت در امر پیاده سازی
نسبت دهی مستقیم رابط کاربر با منابع تامین داده ها
معایب:
عدم وجود امکاناتی برای کپسوله نمودن سیاست های راهبردی نرم افزار
کاهش کارائی برنامه همزمان با افزایش تعداد کاربران همزمان ( بیش از یکصد
عدم وچود انعطاف لازم از بعد انتقال یک برنامه از سرویس دهنده ای به سرویس دهنده دیگر بدون انجام تغییرات اساسی)


در پست پنجم همین تاپیک جناب کشاورز فرمودند که استفاده از روش گفته و تایید شده در قسمت 1و2 فوق روش صحیحی نیست.
و در پست قبلی هم فرمودند استفاده ازdataset provider وclientdataset به معنای استفاده از معماری سه لایه است.اما من هرچی در مورد کلاینت سرور جستجو میکنم آخرش دوباره می رسم به همینdataset provider و clientdataset.
خواهش میکنم یه مقدار ساده تر و راحت تر برای من توضیح بدین که بالاخره من اگه با توجه به راهنماییهای آقای کشاورز در پستهای قبلی، بخوام از برنامه نویسی دو لایه استفاده کنم،دقیقا باید چه کار کنم و از چه کامپوننتهایی استفاده کنم؟
سپاسگزارم.

vcldeveloper
پنج شنبه 15 شهریور 1386, 03:21 صبح
مرسی از اینکه جستجو کردید.

ببینید، چه در برنامه نویسی Client/Server، چه در برنامه نویسی 3-لایه، شما منطقا تعداد لایه های یکسانی دارید، هر چند ممکن است از نظر فیزیکی تعداد این لایه ها متفاوت باشد، یا حجم هر یک از آنها با هم فرق کند. در هر دوی این معماری ها، شما رابط کاربر دارید، Business Logic برای تحلیل بررسی داده های ورودی کاربر و خروجی ارسال شده از سرور دارید، سرور هم دارید، اما در Client/Server، ممکن است سرور شما یا کلاینت شما وظیفه اعمال قوانین بر داده های رسیده از سرور را داشته باشند، یا بخشی از این قوانین در سمت رور اعمال شود و بخشی دیگر در سمت کلاینت. اما در معماری 3-لایه، بخش Business Logic کاملا از سرور و کلاینت جدا شده و به عنوان یک لایه میانی بین این دو عمل می کند. این عمر باعث کاهش بار وارده بر سرور و کلاینت می شود، از طرفی اعمال قوانین هم در یک لایه متمرکز می شود. همچنین، جدا شدن این لایه ها از هم باعث کاهش وابستگی کلاینت ها به سرور می شود، چون عملا کلاینت ها به لایه میانی متصل هستند و تغییر در سرور تاثیری در ارتباط آنها با لایه میانی نخواهد داشت. از این معماری بخصوص در طراحی نرم افزارهای Web Base استفاده می شود، تا هم کلاینت (مرورگر اینترنت) فقط وظیفه رابط گرافیکی کاربر را داشته باشد، و هم سرورها و تغییرات آنها از دید کاربر پنهان باشد.

یکی از راههای پیاده سازی معماری 3-لایه در دلفی استفاده از DataSnap است. DataSnap هم برای این کار از ترکیبی از DataSetProvider و ClientDataSet به همراه یک RemoteConnection و DataSet استفاده می کند. در شرایط عادی، لزومی به استفاده از ترکیب DataSetProvider + ClientDataSet برای نوشتن یک برنامه Client/Server نیست؛ غیر از آنکه بخواهید بعدا همین پیاده سازی را گسترش دهید و معماری برنامه را به 3-لایه تبدیل کنید.
برای یک برنامه بانک اطلاعاتی Client/Server شما نیاز به یک موتور بانک اطلاعاتی دارید تا داده ها را برای شما ذخیره کند و امکان دسترسی کاربران به داد ها را فراهم کند (مثلا MS SQL Server). در برنامه خود هم نیاز به DataSet هایی دارید که به بانک اطلاعاتی متصل شوند و فرامین کاربر را به انجام برسانند (مثلا AdoDataSet). در برنامه خود هم کدهای مربوط به نحوه اتصال به بانک اطلاعاتی، ویرایش و نمایش آن، و کنترل داده ها را پیاده سازی می کنید؛ البته بعضی کنترل ها را می توان در سمت سرور بانک اطلاعاتی انجام داد، مثلا ارتباط جداول با هم، مقادیر پیش فرض فیلدها، محدوده ورودی فیلدها، مجوزهای کاربران برای دسترسی به بانک اطلاعاتی، عملیات هایی که باید قبل یا بعد از انجام تغییرات در بانک اعمال شوند و...
اینکه چه مقدار از این قوانین در سمت کلاینت اعمال می شوند و چه مقدار از آنها در سمت سرور، بستگی به پروژه شما، امکانات موتور بانک اطلاعاتی مورد استفاده، و سایر فاکتورها دارد.

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

rezvan_DP
پنج شنبه 15 شهریور 1386, 12:39 عصر
بسیار سپاسگزارم آقای کشاورز و خیلی خوشحال از اینکه یه همچین محیطی با این سطح کیفی خوب وجود داره که میتونه سطح دانش مراجعه کنندگان رو بالا ببره.

با توجه به توضیحات شما،
1- پیاده سازی این لایه میانی business logic کجا انجام میشه؟ (در معماری سه لایه)روی کلاینت ، سرور یا اونهم با توجه به شرایط روی هر کدوم ممکنه که باشه؟

2- با توجه به راهنمایی شما و بخشهایی از صحبتهای جناب manager من برای انجام برنامه به این نتیجه رسیدم، لطفا اگه جایی از اون ایراد داره تصحیح بفرمایید:

برای پیاده سازی، معماری دولایه رو انتخاب میکنم که از نظر فیزیکی در دو محل پیاده میشه،در سرور بانکم رو قرار میدم که Sql server هستش و یک exe که "بعضی کنترل ها مثل ارتباط جداول با هم، مقادیر پیش فرض فیلدها، محدوده ورودی فیلدها، مجوزهای کاربران برای دسترسی به بانک اطلاعاتی، عملیات هایی که باید قبل یا بعد از انجام تغییرات در بانک اعمال شوند و..." را شامل میشود { که البته برای این پروژه فعلی من با توجه به اینکه ثبت اطلاعات نداره و فقط جستجوست در اصل فعلا هیچ exe روی سرور ندارم }،این میشه سرور.
بعد در کلاینت exe ای رو دارم که شامل dataset,datagrid و خلاصه ملزومات اتصال به بانک هست و قراره که آنچه رو که کاربر جستجو میکنه بهش نشون بده.فکر میکنم اینطوری میشه "پردازش های مبتنی بر سرویس گیرنده".
خوب با توجه به مطالب قبلی share کردن exe صحیح نیست،در این حالت باید چه کار کنم؟یک برنامه نصب بسازم و اونو روی سرور قرار بدم تا هر کلاینتی که مایل بود اونو اجرا کنه و با این اجرا exe رو سیستمش نصب بشه ،سرور رو بشناسه و با بانک اون ارتباط برقرار کنه؟یا برای کلاینت باید کار دیگه ای انجام داد؟

بینهایت از راهنمایی شما سپاسگزارم.

vcldeveloper
پنج شنبه 15 شهریور 1386, 17:32 عصر
- پیاده سازی این لایه میانی business logic کجا انجام میشه؟ (در معماری سه لایه)روی کلاینت ، سرور یا اونهم با توجه به شرایط روی هر کدوم ممکنه که باشه؟
لایه میانی یک بخش مجزا است و می تونه روی یک سیستم جداگانه، یا بر روی همان سیستمی که سرور بانک اطلاعاتی روی آن قرار دارد نصب شود. در واقع این لایه سرور کلاینت ها و کلاینت سرور بانک اطلاعاتی است.


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


در سرور بانکم رو قرار میدم که Sql server هستش
این میشه سرور بانک اطلاعاتی شما.


یک exe که "بعضی کنترل ها مثل ارتباط جداول با هم، مقادیر پیش فرض فیلدها، محدوده ورودی فیلدها، مجوزهای کاربران برای دسترسی به بانک اطلاعاتی، عملیات هایی که باید قبل یا بعد از انجام تغییرات در بانک اعمال شوند و..." را شامل میشود
این میشه Business Logic پروژه شما، هر چند روی همان سیستمی قرار دارد که سرور بانک اطلاعاتی شما قرار دارد، اما به عنوان یک لایه بین کلاینت ها و سرور بانک اطلاعاتی عمل می کند.


{ که البته برای این پروژه فعلی من با توجه به اینکه ثبت اطلاعات نداره و فقط جستجوست در اصل فعلا هیچ exe روی سرور ندارم }

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


بعد در کلاینت exe ای رو دارم که شامل dataset,datagrid و خلاصه ملزومات اتصال به بانک هست و قراره که آنچه رو که کاربر جستجو میکنه بهش نشون بده.
این میشه رابط کاربر گرافیکی کاربر که در سمت کلاینت قرار داره. این برنامه ممکنه یک فایل EXE کوچیک باشه که کاربران دانلود می کنند، یا یک فایل EXE که نیاز به نصب یکسری فایل های همراه و تغییرات در سیستم دارد و باید برای آن برنامه Setup درست کرد، یا حتی یک Web Application که داده ها را در یک مرورگر اینترنت به کاربر نمایش می دهد و نیازی به نصب یک برنامه بر روی کلاینت نیست.