PDA

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



aghayex
سه شنبه 31 شهریور 1394, 19:48 عصر
با سلام دوستان عزیز
دوستا اگه برنامه ای داشته باشیم که نسخه تک سیستمی اون طوری درست شده که برا ارتباط با دیتابیس از entity framework استفاده می کنه و حالا بخواهیم همین برنامه رو تحت شبکه کنیم بهترین راه کار برای ارتباط با دیتابیس سرور چه ؟
آیا سکوت خوبه ؟
آیا wcf خوبه ؟
آیا ria service خوبه ؟
آیا Web api خوبه ؟
یا چیز بهتر دیگری هست ؟

SabaSabouhi
چهارشنبه 01 مهر 1394, 10:18 صبح
با سلام دوستان عزیز
دوستا اگه برنامه ای داشته باشیم که نسخه تک سیستمی اون طوری درست شده که برا ارتباط با دیتابیس از entity framework استفاده می کنه و حالا بخواهیم همین برنامه رو تحت شبکه کنیم بهترین راه کار برای ارتباط با دیتابیس سرور چه ؟
آیا سکوت خوبه ؟
آیا wcf خوبه ؟
آیا ria service خوبه ؟
آیا Web api خوبه ؟
یا چیز بهتر دیگری هست ؟

سلام
اگه سرور دیتابیس شما نسخه‌ای باشه که تحت شبکه پاسخ‌گو باشه ( مثلاً LocalDb تحت شبکه کار نمی‌کنه ) همین الان هم برنامه‌ی شما
تحت شبکه می‌تونه کار کنه.
نیاز به کار خاصی ندارین.

صبا صبوحی

aghayex
چهارشنبه 01 مهر 1394, 12:05 عصر
تشکر
حرف شما درسته اما با توجه به استانداردهای تعریف شده یک برنامه تحت شبکه فراتر از اینه که شما فقط در برنامه کانکشن استرینگ رو از لوکال به تحت شبکه تغییر بدی ( مباحثی مثل همزمانی ورود داده ها و وارد نشدن همزمان یک کاربر در دو سیستم و ... )

SabaSabouhi
چهارشنبه 01 مهر 1394, 15:11 عصر
تشکر
حرف شما درسته اما با توجه به استانداردهای تعریف شده یک برنامه تحت شبکه فراتر از اینه که شما فقط در برنامه کانکشن استرینگ رو از لوکال به تحت شبکه تغییر بدی ( مباحثی مثل همزمانی ورود داده ها و وارد نشدن همزمان یک کاربر در دو سیستم و ... )

سلام
شما عنوان تاپیک رو گذاشتی «برنامه‌نویسی تحت شبکه» و الان مطلب دیگه‌ای رو مطرح می‌کنی.
برنامه‌نویسی تحت شبکه ما رو به سمت socket programming هدایت می‌کنه. در حالی که مشکل شما همزمانی هست.
در مورد جلوگیری از ورود همزمان یک کاربر در دو کامپیوتر به‌تر هست کاری نکنی، چون فقط محدودیت‌های بی‌مورد به نرم‌افزار
اضافه می‌کنی.
ممکنه من روی کامیپوترم logon باشم، و بخوام همزمان روی یه کامپیوتر دیگه هم وارد بشم، دلیلی برای ممانعت وجود نداره.
ضمن این که با هر مکانیزمی که بخوای logoff رو ثبت کنی، در صورت هنگ کردن برنامه، یا reset شدن کامپیوتری که برنامه
روی اون در حال اجرا هست، به مشکل می‌خوری و باید برای حل این مشکل کلی راه‌کار پیش‌بینی کنی. پس به صرفه هست
که دنبال این قضیه نباشی. هر کسی خودش مسوول حفظ شناسه و گذرواژه‌ی ( کلمه‌ی عبور ) خودش هست.

و در مورد همزمانی راه‌کارهایی در EF پیش‌بینی شده.
https://msdn.microsoft.com/en-us/library/vstudio/bb738618(v=vs.100).aspx
https://msdn.microsoft.com/en-us/data/jj592904.aspx

صبا صبوحی

aghayex
چهارشنبه 01 مهر 1394, 16:51 عصر
نه بحث من همزمانی صرف نیست برنامه ای که ازاول تحت شبکه نوشته میشم از ساختار و قواعد متفاوت تری تبعیت می کنه اگه بخوام مثالی بزنم میشه در فراخوانی داده ها ، و کردن اونها گفت ولی در برنامه تک سیستمی شما در زمان و به هر مقدار که بخواهی می تونی از دیتابیس واکنشی داده داشته باشی اما در نسخه شبکه شما باید مراعات شبکه رو داشته باشی چون تمام پهنای باند مال شما نیست و یا مباحث امنیت در تک سیستم متفاوت است تا تحت شبکه