نمایش نتایج 1 تا 13 از 13

نام تاپیک: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

  1. #1
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟
    من یه برنامه نوشتم که هر کاربر با نام کاربری و پسورد خاص خودش میتونه واردش بشه.
    حالا میخواستم بدونم اگر برنامه در یک سرور نصب بشه، آیا چند کاربر میتونن تحت شبکه
    همزمان واردش بشن؟ آیا نیازی نیست در کد ها تغییری بدم؟ آیا مشکلی برای برنامه پیش
    نمیاد؟منظورم کار با دیتاست.
    قبلا از راهنماییتون کمال تشکر دارم.

  2. #2

    نقل قول: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    منظورم کار با دیتاست.
    اگر برنامه داره با SQL Server کار می کنه تنها دقدقه ی شما Connection String و چند تا تنظیم کوچولو مربوط به permission ها در SQL Server هست اما اگه دارید راجع به Socket Programming حرف می زنید تا دلتون بخواد نکات ریز و درشت هست...

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران
    پست
    81

    نقل قول: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    مشکل همزمانی ممکن براتون مهم باشه. ویرایش و حذف رکورد ها همزمان توسط چند کاربر و اینا.

  4. #4
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    نقل قول نوشته شده توسط jalalx مشاهده تاپیک
    اگر برنامه داره با SQL Server کار می کنه تنها دقدقه ی شما Connection String و چند تا تنظیم کوچولو مربوط به permission ها در SQL Server هست
    دیتابیس برنامه با sql2008 نوشته شده و به برنامه Add شده.
    این هم کانکشن استرینگ

    Mycn =
    newSqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=
    |DataDirectory|\MYDATEBASE.mdf;Integrated Security=True;Connect
    Timeout=30;User Instance=True;");

    تغییرات و تنظیمات را چه طور باید لحاظ کنم؟

    نقل قول نوشته شده توسط karim_medusa مشاهده تاپیک
    مشکل همزمانی ممکن براتون مهم باشه. ویرایش و حذف رکورد ها همزمان توسط چند کاربر و اینا.
    مثلا اگر دو رکورد را همزمان حذف بشه اگه در برنامه از {}try{}catch استفاده کنیم مشکلی پیش نمیاد.
    البته ویرایش را نمیدونم چی کار کنم.
    آیا میشه کاری کرد که اگر کاربری در هر قسمت از برنامه دکمه ی "ویرایش" را کلیک کنه و کاربر
    دیگه ای هم به همون صفحه جهت ویرایش بره متوجه بشه که یک کاربر دیگه در حال ویرایشه؟

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران
    پست
    81

    نقل قول: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    دو کاربر یک رکورد یکسانی رو بازیابی می کنند .
    اولی می خواد حذف می کنه و دومی می خواد ویرایش کنه.

    - کاربر اول اگر کارش زودتر انجام بده که دومی با خطا مواجه میشه. اول حذف و بعد ویرایش .

    اگر دومی زود تر ویرایش کنه و اولی حذف کنه . خطایی پیش نمیاد فقط داده از بین میره. یعنی کاربر دوم فکر می کنه که داده تغییر یافته خودش ذخیره شده در حالی که کاربر اول اونو پاک کرده.

    برای حالتی که هر دو کاربر می خوان ویرایش کنند هم این مشکل بوجود میاد که کاربری که اول ویرایش می کنه داده اون از بین میره.

  6. #6

    نقل قول: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    نقل قول نوشته شده توسط jalalx مشاهده تاپیک
    اگر برنامه داره با SQL Server کار می کنه تنها دقدقه ی شما Connection String و چند تا تنظیم کوچولو مربوط به permission ها در SQL Server هست اما اگه دارید راجع به Socket Programming حرف می زنید تا دلتون بخواد نکات ریز و درشت هست...
    لطفا درباره Socket Programming توضیح بدید چی هست ؟
    چقدر طول میکشه تا یک برنامه نویس سی شارپ یاد بگیردش ؟
    و چه قابلیتهایی داره؟
    استفاده کردن و نکردن ازش چه فایده و ضرر هایی داره ؟

    با تشکر

  7. #7
    کاربر دائمی آواتار zayens
    تاریخ عضویت
    آبان 1387
    محل زندگی
    تهران - بهارستان
    پست
    591

    نقل قول: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    ممنون میشم یه نفر ، سوالهای قبل را جواب بده.
    البته در مورد سوکت پروگرمینگ یه چیزهایی خوندم.
    مباحثش گسترده ست.
    البته اگه کسی لینکی، چیزی سراغ داره بذاره

  8. #8
    کاربر دائمی آواتار حجتی نیا
    تاریخ عضویت
    دی 1387
    محل زندگی
    ایران
    پست
    400

    نقل قول: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    اگر برنامه در یک سرور نصب بشه، آیا چند کاربر میتونن تحت شبکه
    همزمان واردش بشن؟
    100%
    آیا نیازی نیست در کد ها تغییری بدم؟ آیا مشکلی برای برنامه پیش
    نمیاد؟منظورم کار با دیتاست.
    اینا سوالای خود منم هست،قبلا در یه تاپیک پرسیدم به جواب نهایی نرسید
    الان یه برنامه شبکه نوشتم و داره کار میکنه ولی مثلا در زمان ثبت در یه فرم،اگه همزمان ثبت کنم فقط یکی رو ثبت میکنه ..
    برای حالتی که هر دو کاربر می خوان ویرایش کنند هم این مشکل بوجود میاد که کاربری که اول ویرایش می کنه داده اون از بین میره.
    یه پیشنهاد دارم اما هنوز خودم اینکارو نکردم.. مثلا یه متغیر گرفته بشه و هروقت داده ای رو داریم ویرایش میکنیم ، مقداری که نشانگر(کلید) اون رکورد هست رو داخل متغیر قرار بدیم و اگه کامپیوتر دوم خواست داده رو ویرایش کنه اول اون متغیر رو چک کنه و بافی داستان... منتظر نظر دوستان هستم

  9. #9
    کاربر جدید آواتار sadra_r2235
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    تهران
    سن
    38
    پست
    13

    نقل قول: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    سلام دوستان.
    ببینید واسه برنامه نویسی سوکت حتما باید اول ملتی تردینگ رو یاد بگیرید. این باعث میشه اگه چند کاربر به صورت همزمان به سرور شما یا سرور های شما متصل شدند مشکلی واستون به وجود نیاد.
    بعد سعی کنید واسه کار با دیتابیس از ویزاردینگ استفاده کنید.چون هم سرعت کار با اون بالا میره هم برنامتون قابل حمل تر میشه. و دیگه نیاز نیست واسه هر در خواست کاربر کلی کد بزنید و در ضمن کد هایی که ویزارد تولید میکنه خیلی بهینه شده و سرعتشم بالا تره.
    در ادامه واسه اون مشکلاتی که در همزمانی گفتین بهتره که از message queue( صف پیام ) خود ویندوز استفاده کنید، که سرویسش موجود.
    بازم سوال داشتین بگین.

  10. #10
    کاربر دائمی آواتار حجتی نیا
    تاریخ عضویت
    دی 1387
    محل زندگی
    ایران
    پست
    400

    نقل قول: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    بعد سعی کنید واسه کار با دیتابیس از ویزاردینگ استفاده کنید.چون هم سرعت کار با اون بالا میره هم برنامتون قابل حمل تر میشه. و دیگه نیاز نیست واسه هر در خواست کاربر کلی کد بزنید و در ضمن کد هایی که ویزارد تولید میکنه خیلی بهینه شده و سرعتشم بالا تره.
    در ادامه واسه اون مشکلاتی که در همزمانی گفتین بهتره که از message queue( صف پیام ) خود ویندوز استفاده کنید، که سرویسش موجود.
    توضیح یا منبع یا کتاب یا...

  11. #11
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران
    پست
    81

    نقل قول: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    نقل قول نوشته شده توسط حجتی نیا مشاهده تاپیک
    100%

    یه پیشنهاد دارم اما هنوز خودم اینکارو نکردم.. مثلا یه متغیر گرفته بشه و هروقت داده ای رو داریم ویرایش میکنیم ، مقداری که نشانگر(کلید) اون رکورد هست رو داخل متغیر قرار بدیم و اگه کامپیوتر دوم خواست داده رو ویرایش کنه اول اون متغیر رو چک کنه و بافی داستان... منتظر نظر دوستان هستم
    معمولا دو روش وجود داره :
    1- برای ویرایش یک رکورد بعد از بازیابی ان ، مقادیر قبل از ویرایش رو نگهداری می کنند و قبل از ذخیره رکورد تست می کنند که ایا این همون رکوردی که بازیابی شده است یا نه اگر قبلا توسط یک نفر دیگه تغییر کرده باشه اونوقت مقادیرش با مقادیر ذخیره شده متفاوت خواهد بود . حداقل یک فیلدش .

    2- روش دوم اینکه در جدول پایگاه داده یک فیلد اضافه میشه به نام فیلد ورژن . این فیلد با هر بار ویرایش ورزن ان تغییر می کند. تغییر ان یا توسط خود پایگاه انجام میشه یا توسط برنامه نویس . نوع فیلد هم بستگی به پایگاه داده دارد .
    در اسکیو ال سرور 2005 یک نوع داده بنام timestamp وجود داره. بعد از هر ویرایش توسط پایگاه این فیلد تغییر می کند. فقط کافیه بعد از بازیابی رکورد این فیلد را ذخیره کرده و قبل از ثبت تغییرات این فیلد را تست کنیم اگر با مقدار قبلی برابر بود اجازه ثبت بدهیم در غیر این صورت قبلا توسط کاربر دیگری ویرایش شده است.

  12. #12
    کاربر دائمی آواتار حجتی نیا
    تاریخ عضویت
    دی 1387
    محل زندگی
    ایران
    پست
    400

    نقل قول: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    در اسکیو ال سرور 2005 یک نوع داده بنام timestamp وجود داره. بعد از هر ویرایش توسط پایگاه این فیلد تغییر می کند. فقط کافیه بعد از بازیابی رکورد این فیلد را ذخیره کرده و قبل از ثبت تغییرات این فیلد را تست کنیم اگر با مقدار قبلی برابر بود اجازه ثبت بدهیم در غیر این صورت قبلا توسط کاربر دیگری ویرایش شده است.
    چطوری باید اونو چک کرد ؟؟ (کد ..)

  13. #13
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران
    پست
    81

    نقل قول: فرق برنامه های معمولی با برنامه هایی که تحت شبکه کار میکنن چیه؟

    نقل قول نوشته شده توسط حجتی نیا مشاهده تاپیک
    چطوری باید اونو چک کرد ؟؟ (کد ..)
    چک کردنش کاری نداره.
    بسته به لایه دیتا اکسس پروژه داره اگر با کمک Linq to sql یا Linq to Entity باشه که بیشتر کار خود Linq انجام میده فقط کافیه پروپرتی های مورد نظر رو درست تنظیم کرد.
    اگر از ado.net استفاده بشه که باید کد بنویسید. ( ذخیره مقدار در زمان بازیابی و مقایسه ان قبل از ثبت تغییرات )

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •