نحوه توسعه نرم افزاری که بتوان از آن در شبکه نیز استفاده کرد(C# , SQL)

MPERSIA4

Member
درود و خسته نباشید
میخواستم بدونم نرم افزاری که توسعه داده میشه (برای مثال یک نرم افزار حسابداری) به چه چیزهایی در برنامه نویسی نیاز داره که تو یک شبکه بر روی چند کامپیوتر نصب شه ، طوری که این نرم افزار تو هر کامپیوتر با بقیه کامپیوترها تو شبکه ارتباط داشته باشه ، نسبت به تغییرات عکس العمل مناسب یا به درخواست ها پاسخ مناسب بده
لطفا راهنماییم کنید
با سپاس فراوان :rolleyes:
 

the_king

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

MPERSIA4

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

the_king

مدیرکل انجمن
پس پایگاه داده فقط باید تو یکی از کامپیوترهای شبکه نصب شه؟
یا اینکه همراه نرم افزار تو همه کامپیوترها نصب شه و یکی از کامپیوترها بعنوان سرور باشه ، اگه اون سیستم از شبکه خارج شد همه کامپیوترها با پایگاه داده خودشون کار کنند و هر وقت سیستم سرور به شبکه وصل شد اطلاعات پایگاه داده سرور رو آپدیت کنند؟
این دومی که گفتم مرسوم هست؟
یا تو شبکه و پایگاه داده ها مشکلی ایجاد میکنه؟
اینکه یک پایگاه داده محلی (local) هم داشته باشید که یک option محسوب میشه وگرنه اگه قراره اطلاعاتی بین کاربران به اشتراک قرار بگیره دیگه وقتی سرور از مدار خارج شد عملا اشتراک داده ای در کار نیست.
اینکه پایگاه داده ها sync بشن پیاده سازی اش خیلی دشواره چون منطق اش باید خیلی پیچیده باشه، فرض کنید کاربر A یک آیتمی رو پایگاه داده پاک کنه که هنوز sync نشده. کاربر B هم کمی بعد برای اون آیتم یک عملیات انجام میده که بازم sync نشده. اولا زمانی که سرور به مدار برگشت زمان sync شدن دو تا پایگاه داده A و B مستقل و متفاوته. موقع sync شدن هر کدوم شون هم در جریان تغییرات سایر کاربران نیستند چون سایر فعالیت های محلی هنوز sync نشدن.
الان موقع sync شدن میخواهید چطور رفتار کنید؟ پایگاه داده سرور رو مبنا قرار بدید و فعالیت های A و B رو نادیده بگیرید؟ پایگاه داده A رو مبنا قرار بدید و سرور و B رو نادیده بگیرید؟ پایگاه داده B رو مبنا قرار بدید و سرور و A رو نادیده بگیرید؟ هر کدوم که زودتر sync بشن شرایط کلا تغییر می کنه و نمی دونید هنوز چه عملیات هایی از قبل مونده که در آینده ممکنه sync بشه. حداقل در مورد برنامه های حسابداری که اطلاعات بهم مربوط اند نمیشه همچین منطقی داشت، اینجور کاربرد ها مناسب کاربرانی است که روی پروژه یا فایل های مستقل کار می کنند که sync شدن شون تداخلی با سایر پروژه ها و فایل ها نداره.
 

MPERSIA4

Member
اینکه یک پایگاه داده محلی (local) هم داشته باشید که یک option محسوب میشه وگرنه اگه قراره اطلاعاتی بین کاربران به اشتراک قرار بگیره دیگه وقتی سرور از مدار خارج شد عملا اشتراک داده ای در کار نیست.
اینکه پایگاه داده ها sync بشن پیاده سازی اش خیلی دشواره چون منطق اش باید خیلی پیچیده باشه، فرض کنید کاربر A یک آیتمی رو پایگاه داده پاک کنه که هنوز sync نشده. کاربر B هم کمی بعد برای اون آیتم یک عملیات انجام میده که بازم sync نشده. اولا زمانی که سرور به مدار برگشت زمان sync شدن دو تا پایگاه داده A و B مستقل و متفاوته. موقع sync شدن هر کدوم شون هم در جریان تغییرات سایر کاربران نیستند چون سایر فعالیت های محلی هنوز sync نشدن.
الان موقع sync شدن میخواهید چطور رفتار کنید؟ پایگاه داده سرور رو مبنا قرار بدید و فعالیت های A و B رو نادیده بگیرید؟ پایگاه داده A رو مبنا قرار بدید و سرور و B رو نادیده بگیرید؟ پایگاه داده B رو مبنا قرار بدید و سرور و A رو نادیده بگیرید؟ هر کدوم که زودتر sync بشن شرایط کلا تغییر می کنه و نمی دونید هنوز چه عملیات هایی از قبل مونده که در آینده ممکنه sync بشه. حداقل در مورد برنامه های حسابداری که اطلاعات بهم مربوط اند نمیشه همچین منطقی داشت، اینجور کاربرد ها مناسب کاربرانی است که روی پروژه یا فایل های مستقل کار می کنند که sync شدن شون تداخلی با سایر پروژه ها و فایل ها نداره.
مرسی از راهنماییتون
پس همون روش اول که گفتین
دوباره مزاحم میشم
 

جدیدترین ارسال ها

بالا