PDA

View Full Version : طراحی برنامه و بانک که در اپدیت های بعدی به مشکل نخورد



CSharpLovers
سه شنبه 27 دی 1401, 03:03 صبح
با سلام خدمت دوستان عزیز . فرض کنید با سی شارپ و اس کیو ال برنامه ای رو شبیه برنامه های حسابداری طراحی کردیم .
حالا برنامه رو شروع به فروش میکنیم . بعد از مدتی میخوایم برنامه رو آپدیت کنیم و قابلیتهای جدیدی بهش اضافه کنیم .
سوال اینجاست چه مواردی رو باید در برنامه و کد نویسی رعایت کنیم که در آپدیتهای بعدی به مشکل نخوریم و کاربر خیلی راحت بتونه از طریق نت فایل جدید رو دانلود کنه و بعد از نصب ، برنامه بدون مشکل کار کنه.
فرض کنید چند فرم و منوی جدید به برنامه اضافه میشه .
و مثلا فلان فرم برنامه ویرایش میشه و چیزهای جدیدی بهش اضافه میشه و در بانک اس کیو ال هم مواردی اضافه میشن . و مثلا فلان جدول بانک که 5 تا ستون داشته و الان شده 8 تا تغییر کرده .
خوب برنامه به نسخه جدید آپدیت میشه .
حالا تکلیف بانک چی میشه ؟ بهترین روش برای آپدیت بانک چیه؟
آیا بانک قبلی باید حذف بشه و بانک جدید جایگزین بشه و بکاپ بانک قبلی وارد بانک جدید بشه ؟ در این صورت فایل بکاپ به مشکل نمیخوره ؟
چطور باید در برنامه بکاپ گیری رو تعریف کنیم که مشکلی با ریستور به بانک جدید که تغییر کرده نداشته باشه ؟
نسخه اس کیو ال میتونه اکسپرس باشه در سیستم کاربر یا باید کامل باشه ؟
یا نه باید کاری کرد که بانک قبلی سر جاش باشه و با کدهای اس کیو ال مثلا سه تا ستون جدید به فلان جدول بانک قبلی اضافه بشه و اطلاعات سر جاشون بمونن.
ضمنا برنامه سه لایه و با entity framework db first نوشته شده Sql 2014
لطفا راهنمایی بفرمایید.

علیرضا حسن زاده
یک شنبه 02 بهمن 1401, 20:06 عصر
سلام
کاری که اول باید انجام بشه قبل از هر کاری یه بک اپ از داده های فعلی توسط برنامه گرفته بشه
مرحله بعدی دو تا روش وجود داره:
اول اینکه یه اسکریپت تهیه کنید که تغییرات مورد نظر رو تو دیتابیس قدیمی اعمال کنه
دوم اینکه با توجه به فریمورک استفاده شده میتونید از قابلیت Migration استفاده کنید البته با این تغییر که اون رو یکبار برای همیشه به CodeFirst تغییر بدین و دیگه این مشکلات رو نداشته باشین
اما باز هم تهیه اسکریپت نیاز خواهد شد اونم برای مواقعی که sp‌جدید ایجاد کرده باشید یا یکی رو تغییر داده باشین یا سایر ابجکت های دیتابیس که با Entity‌مدیریت نمیشن