PDA

View Full Version : تبدیل برنامه تک کاربره به چند کاربره (روی شبکه)



rostamedastan
دوشنبه 26 فروردین 1387, 22:55 عصر
بسم الله الرحمن الرحیم
سلام علیکم
من برنامه های windows Application با c#.net می نویسم و از بانک اطلاعاتی Sql Server استفاده می کنم حال اگر بخواهم برنامه ام تحت شبکه کار کند یعنی یک شبکه در اداره ای باشد که Sql server روی کامپیوتر سرور نصب شده باشد و 7 یا 8 نفر بخواهند از اتاقهای دیگر بطور همزمان از برنامه استفاده کنند اگر من connectionمربوط به کلاس sqlconnection را نام سروری بدهم که sql server روی آن نصب است و سپس یک فایل exe برای هر کاربر روی کامپیوترش بگذارم تا با برنامه کار کند برنامه ام در شبکه کار می کند ؟ دیگر نیازی نیست کدی به برنامه ام که قبلا به صورت تک کاربره کار می کرد اضافه کنم ؟ در ضمن من از ADO.NET استفاده میکنم.
همچنین منظور از برنامه نویسی سوکت نویسی دیگر چیست ؟ آیا من هم به آن نیاز دارم؟
متشکرم.

دوستان توجه کنند که من جستو جو کردم ولی قانع نشدم.

khosro hoseini
دوشنبه 26 فروردین 1387, 23:28 عصر
سلام دوست منظور از socket programing برنامه نویسی شبکه است.یعنی با استفاده از این نوع برنامه نویسی میتوان برنامه هایی شبیه به یاهو مسنجر که تحت شبکه کار میکنند بنویسید.در این نوع برنامه ها معمولا دو برنامه وجود دارد:
1) برنامه سرویس دهنده که به یک پورت خاص گوش میدهد تا درخواست اتصالی از یک کلاینت در یافت کند
2)برنامه سرویس گیرنده که به یک آی پی خاص در شبکه که برنامه سرویس دهنده بر روی آن نصب است از طریق همان پورتی که سرویس دهنده در حال گوش دادن به آن است درخواست اتصال میکند.
پس از اتصال (binding) هر دو طرف شروع به ارصال اطلاعات میکنند و در نهایت نیز کلیه منابع را آزاد میکنند و ...

rostamedastan
دوشنبه 26 فروردین 1387, 23:35 عصر
با تشکر
پس با این حساب کار ما به سوکت نویسی مربوط نمیشود و اگر اشتباه نکرده باشم سوکت نویسی بیشتر جهت برنامه های تحت وب و اینترنت کاربرد دارد
برنامه ای که من گفتم منظورم یک شبکه کوچک در یک ساختمان یا کارخانه است لطفا این مورد را راهنمایی کنید.

gdevnb
دوشنبه 26 فروردین 1387, 23:50 عصر
بسم الله الرحمن الرحیم
سلام علیکم
من برنامه های windows Application با c#.net می نویسم و از بانک اطلاعاتی Sql Server استفاده می کنم حال اگر بخواهم برنامه ام تحت شبکه کار کند یعنی یک شبکه در اداره ای باشد که Sql server روی کامپیوتر سرور نصب شده باشد و 7 یا 8 نفر بخواهند از اتاقهای دیگر بطور همزمان از برنامه استفاده کنند اگر من connectionمربوط به کلاس sqlconnection را نام سروری بدهم که sql server روی آن نصب است و سپس یک فایل exe برای هر کاربر روی کامپیوترش بگذارم تا با برنامه کار کند برنامه ام در شبکه کار می کند ؟ دیگر نیازی نیست کدی به برنامه ام که قبلا به صورت تک کاربره کار می کرد اضافه کنم ؟ در ضمن من از ADO.NET استفاده میکنم.
همچنین منظور از برنامه نویسی سوکت نویسی دیگر چیست ؟ آیا من هم به آن نیاز دارم؟
متشکرم.

دوستان توجه کنند که من جستو جو کردم ولی قانع نشدم.
این سوال قبلاً پرسیده شده و در موردش هم بحث شده.
جستجو کنی گیر میاری.
در ضمن من که فکر نمی کنم چیز دیگه ای لازم باشه. شما فقط ConnectionString رو درست تنظیم کنید و اجازه اتصال به صورت Remote به SqlServer 2005 رو فعال کنید.

rostamedastan
سه شنبه 27 فروردین 1387, 16:25 عصر
من از sql server 2000 استفاده می کنم.

darioush01
سه شنبه 27 فروردین 1387, 17:21 عصر
میشه بگید connection string باید چطور Set بشه ؟ من هم قبلا این سوال رو مطرح کردم اما جواب درستی ندیدم .

gdevnb
سه شنبه 27 فروردین 1387, 18:48 عصر
به جای (local) از Ip سرور مورد نظرتون استفاده کنید.و اوتوریزیشن هم Sql .
من به صورت Remote فقط به Sql Server 2005 متصل شدم. متأسفانه با 2000 کار نکردم ولی در 2005 تا زمانی که این قسمت فعال نبود(بصورت پیش فرض غیرفعاله) نمی تونستم کانکت بشم.

BraveMind
چهارشنبه 28 فروردین 1387, 14:18 عصر
شما داخل برنامت یه قسمت برا تنظیم ip سرور میزاری تا هر بار به اونجا کانکت بشه و تنظیم string connection هم بطور دستی انجام می دی و کل تغییرات روی برنامت همینه باقی کارا رو خود سیستم عامل مدیر dbms انجام میده

xxxxxxxxxx
چهارشنبه 28 فروردین 1387, 18:46 عصر
مثل این خط


SqlConnection objConnection = new SqlConnection("Server=localhost;Database=Pubs;User ID=sa;Password=csdotnet;");

gdevnb
چهارشنبه 28 فروردین 1387, 19:05 عصر
مثل این خط


SqlConnection objConnection = new SqlConnection("Server=localhost;Database=Pubs;User ID=sa;Password=csdotnet;");


از طریق این کانکشن دسترسی به صورت local هستش در صورتی که لازمه به جای localhost
ip سرور نوشته بشه.

xxxxxxxxxx
چهارشنبه 28 فروردین 1387, 19:10 عصر
درسته ضمن اینکه hostname یا همان نام سرورهم قبوله.

captain_black81
چهارشنبه 28 فروردین 1387, 20:18 عصر
یک کلاس برای اتصال به سرور بساز . هرجا لازم بود صداش بزن
من از این استفاده میکنم

using System;
using System.Collections.Generic;
using System.Text;
namespace NewProject
{
classGeneral
{
publicstring cnm
{
get
{
string s = "server=kian;initial catalog=MADAD;integrated security=True";
return s;
}
}
}
}

rostamedastan
چهارشنبه 28 فروردین 1387, 23:27 عصر
از همه دوستان متشکرم پس این طور متوجه شدم که تنها باید کانکشن خود را با نام سرور تنظیم کنم.

darioush01
پنج شنبه 29 فروردین 1387, 23:21 عصر
از همه دوستان به خاطر راهنمایی ممنونم
حالا که بحث connection string پیش اومد , می خواستم بدونم توی web اگه بیش از یه data base داشته باشیم اونوقت چطوری تگ connection string داخل web.config رو set می کنیم .

gdevnb
پنج شنبه 29 فروردین 1387, 23:44 عصر
یک کلاس برای اتصال به سرور بساز . هرجا لازم بود صداش بزن
من از این استفاده میکنم


using System;
using System.Collections.Generic;
using System.Text;
namespace NewProject
{
classGeneral
{
publicstring cnm
{
get
{
string s = "server=kian;initial catalog=MADAD;integrated security=True";
return s;
}
}
}
}
خیر این روشی خوبی نیست. استفاده از HardCode به هیچ عنوان پیشنهاد نمیشه.
از همون Setting استفاده کنید

gdevnb
پنج شنبه 29 فروردین 1387, 23:47 عصر
از همه دوستان به خاطر راهنمایی ممنونم
حالا که بحث connection string پیش اومد , می خواستم بدونم توی web اگه بیش از یه data base داشته باشیم اونوقت چطوری تگ connection string داخل web.config رو set می کنیم .
داریوش جان این سوال مربوط به بخش Asp.net هستش.
شما به ازای هر دیتابیس یه Connection String بساز و در داخل تگ مربوطه قرار بده.
موفق باشید