PDA

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



programerinfonet
دوشنبه 05 اسفند 1392, 23:34 عصر
سلام دوستان
من میخوام یک برنامه بنویسم که قراره توی یک شبکه با 70 کلاینت کار کنه به این طریق که
کلاینت 1 یک شخص رو تعریف می کنه و بعد از تعریف رکورد در کلاینت 2 نمایان میشه و کیکسری تغییرات صورت میگیره و بعد در کلاینت 3 نمایان میشه و ...
و این بخشی از برنامه میشه
به نظر شما اس کیو ال رو روی سرور شبکه نصب کنم و با آی پی کانکشن استرینگو تنظیم کنم منطقیه ؟ یا باید حتمأ سوکت کار کنم ؟
کمکم کنید
ممنون

plus
سه شنبه 06 اسفند 1392, 11:02 صبح
دو حالت وجود داره.
یکی اینکه لازم هست کلاینت ها به صورت کاملا خودکار از تغییرات ایجاد شده توسط همدیگه مطلع بشن، (مثلا وقتی کاربر در کلاینت 1 داره لیست اشخاص رو میبینه و کلاینت 2 یک شخص رو درج میکنه، بدون اینکه کاربر کلاینت 1 کاری بکنه، شخص اضافه شده توسط کلاینت دیگه رو ببینه).برای این حالت نیاز به یک سیستم برای همزمان کردن کلاینت ها هست و وجود یک سرور مرکزی (بوسیله Socket Programming/ WCF/ .NET Remoting...) میتونی خیلی مفید باشه البته پیاده سازی یک چنین موردی نمیتونه ساده باشه، پیشنهاد میکنم اگه کارای این شکلی نکردین طرفش نرین.
حالت دیگه اینکه کلاینت ها برای دیدن تغییرات ایجاد شده به صورت دستی Refresh کنن (توسط کاربر). در این حالت، موقع Refresh، تغییرات جدید توسط کلاینت دریافت میشه و نیازی به Sync نیست و میتونین توسط همون دیتابیس پیاده سازی کنید.
البته در کل اینکه شما نیاز به یک سرور دارین یا همون مرکز قرار دادن دیتابیس کافی هست یا نه بستگی به کل صورت مساله داره نه این مورد خاص.طراحی یک سرور، قدرت مانور بالای به شما میده ولی پیچیدگی های فنی ش هم بالاتر از اینه که فقط از یک دیتابیس استفاده کنید و سروری در کار نباشه.

mousa1992
سه شنبه 06 اسفند 1392, 11:29 صبح
کلاینت 1 یک شخص رو تعریف می کنه و بعد از تعریف رکورد در کلاینت 2 نمایان میشه و کیکسری تغییرات صورت میگیره و بعد در کلاینت 3 نمایان میشه و ...

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

sql server جوابگوی نیازتون هست
این لینکو ببینید (http://en.wikipedia.org/wiki/Microsoft_SQL_Server#Concurrency_and_locking)

programerinfonet
سه شنبه 06 اسفند 1392, 12:37 عصر
سرور وجود داره و یک شبکه ی دامینی تو محیط هست

فقط مشکل من اینه که اگه یک رکورد به بانک اضافه شد کاربر مربوطه از اون با خبر بشه
شبیه به ف ی س ب و ک که آفلاین هستی و بعد میایی رخدادهارو می بینی
در واقع اگه کاربر یک یک رکورد ثبت کنه کلاینت دو باید اونو تکمیل کنه و تا انجام نده کلاینت 3 نمی تونه ببینتش
کمک کنید مرسی

hamid_hr
سه شنبه 06 اسفند 1392, 13:38 عصر
درمورد SqlDependency تحقیق کن
کارش با خبر کردن کلاینتها از تغییرات هستش

programerinfonet
چهارشنبه 07 اسفند 1392, 10:05 صبح
حالا دوستان من با کلاینت ها کار ندارم اول اینو میخوام بدونم که :
اگه زیرساخت شبکه رو خوب در نظر بگیریم همون کانکشن استرینگ رو تنظیم کنیم کفایت می کنه ؟ مشکلی پیش نمیاد ؟

hamid_hr
چهارشنبه 07 اسفند 1392, 10:21 صبح
چون شبکه LAN هستش خوبه
نیازی به وب سرویسو و سرویس جدا و ..... نیس