سلام دوستان
من یک نرم افزار رو کاملا طراحی کردم چطوری باید این نرم افزار رو به صورت کاملا اصولی و صحیح تحت شبکه کنم
ایا کد نویسی خواصی داره ؟
میشه کلا برام توضیح بدین !
من فقظ میخوام که کاربران دسترسی به بانک اطلاعاتی داشته باشن مثلا بتونن ثبت کنن و ....
یعنی برنامه روی هر سیستم کلاینت نصب بشه و از طریق شبکه وارد یک سیستم سرور بشن و دسترسی به بانک پیدا کنن
ولی حالا نمیدونم چطوری باید این کار ها رو با هم هماهنگ کرد
مثلا در هنگام ثبت تداخل بین هر یوزر پیش نیاد .
میتونی توی کانکشن قسمت Data Source آی پی سیستم سرور رو بزنی
کلاینت ها به بانک سرور وصل خواهند شد
اقا ایمان اگر همزمانی رخ داد چی میشه ؟
یعنی هم زمان دو کاربر روی یک تیبل و یک فیلد عملیاتی انجام دهند
اس کیو ال Engin خیلی قوی و هوشمندی داره
خیلی درصد همزمانی پایین هست
خب اقا ایمان میشه یک آموزش برای همین روش شما قرار بدین که دیتابیس رو به اشتراک بزارزیم کلا باید چه ویژگی هایی داشته باشه نرم افزار
مشکل اول شبکه کردن:
شما ابتدا باید دیتابیس رو روی sql server سیستمی که قراره همه به اون وصل بشن راه اندازی می کنی
برای مثال ip اون سیستم هسن 192.168.1.10
حالا کافیه تمام کانکشن استرینگ نرم افزار قسمت data source=192.168.1.10 مقدار دهی شه
یه مثال کانکشن استرینگ :
data source=192.168.1.10;initial catalog=DBName;integrated security=false;
در اینصورت همه به یه دیتابیس وصل می شن.
مشکل دوم همزمانی:
یه فیلد واسه هر جدول می زاری به نام ورژن هر بار ویرایش میشه ورژنش رو افزایش بده
بعد هر کاربر اگر خواست داده ای رو ویرایش کنه ابتدا ورژن رو چک می کنی ببینی قبلش کسی اینو ویرایش نکرده.
Entity Framework دو تا راه حل واسه این مورد گذاشته
1. RowVersion
2.Concurency
می تونی در موردش تحقیق کنی
سلام
بحث Concurency يا همان همزماني هرچند موضوع مهميه اما حتي در پروژههاي بسيار بزرگي كه حدود دو سه هزار تا كاربر همزمان وصل ميشن هم پيش نمياد مخصوصا در SQLو Oracle پس نيازي به ورژن زدن نيست! چون اصلا بحث همزماني خودش مقدمه اي دارد كه اگر ان را به طور دقيق مطالعه كنيد متوجه مي شيد كه احتمال همزماني خيلي خيلي پايينه و اصلا نيازي نيست كه كارايي و سرعت را فداي فرآيند عدم همزماني كنيم!
با تشکر از جناب قاسمی
با توجه به پروژه ای که درموردش بحث شد(به احتمال زیاد پروژه ی کوچکی هست)
این روش رو پیشنهاد کردم
ما در مورد سیستم ثبت احوال صحبت نکردیم ، در خیلی از موارد ورژن و concurrency جواب میده
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)