PDA

View Full Version : بازسازی برنامه کاربردی



adabyron
دوشنبه 01 بهمن 1386, 13:47 عصر
سلام
توی یه موسسه ای با یه برنامه کار میکنن هر بار که تغییراتی لازم میشه مثلا یک فیلد (به فرض کد ملی) باید به اطلاعات افراد اضافه شه، موسسه این مسئله رو به طراحان برنامه اطلاع میده و اونا هر بار یک پکیج کوچیک می فرستن و با نصب اون در برنامه اصلی تغییرات انجام میشه، میشه بفرمایید این کار به چه صورتی انجام میشه ؟

dr_csharp
دوشنبه 01 بهمن 1386, 14:38 عصر
سلام
یک exe جدید برای برنامه ی اصلی میسازن که مثلا حاوی فیلد کد ملی هست و هنگام نصب تغییرات لازم روی Database اعمال میکنن ! :لبخندساده:

adabyron
دوشنبه 01 بهمن 1386, 14:49 عصر
درسته... ولی UI چطوری تغییر میکنه؟ مثلا فرمها یا گزارشات مربوطه؟

hassan razavi
دوشنبه 01 بهمن 1386, 15:03 عصر
حتما خودشون تغیرات رو روی برنامه اعمال میکنند و دوباره کامپایل میکنند و بعد فایل exe جدید رو جایگزین می کندد.

adabyron
دوشنبه 01 بهمن 1386, 15:15 عصر
حتما خودشون تغیرات رو روی برنامه اعمال میکنند و دوباره کامپایل میکنند و بعد فایل exe جدید رو جایگزین می کندد.

راستش خودم هم اول همینو گفتم ولی اونا بهم گفتن که فایل خیلی کوچیکیه و لازم نیست که کل برنامه رو دوباره نصب کنن . فکر نمیکنین روش دیگه ای داشته باشه ؟!

sinpin
دوشنبه 01 بهمن 1386, 16:42 عصر
راستش خودم هم اول همینو گفتم ولی اونا بهم گفتن که فایل خیلی کوچیکیه و لازم نیست که کل برنامه رو دوباره نصب کنن . فکر نمیکنین روش دیگه ای داشته باشه ؟!
در بهترین حالت ممکنه اونا از یک Plug-in Pattern استفاده کرده باشند. به این شکل حتی با انداختن یه دونه dll کوچیک کنار برنامه قبلی میشه خیلی تغییرات رو اعمال و حتی قسمتهایی رو به برنامه قبلی اضافه کرد. این الگو معمولا در سیستمهایی که به شدت درگیر توسعه هستند لحاظ میشه.

بنقل از : http://www.c-sharpcorner.com/UploadFile/rmcochran/plug_in_architecture09092007111353AM/plug_in_architecture.aspx (http://www.c-sharpcorner.com/UploadFile/rmcochran/plug_in_architecture09092007111353AM/plug_in_architecture.aspx)

Using this technique, we will use the standard GOF State Pattern by having a host application expose a piece of functionality as interface. The host will then load different implementations based on some criteria that we'll be choosing. Once we have a class that implements this interface, it can be "plugged" into the host application by dropping the containing dll into a specified folder which provides the host application with a "pluggable" implementation of the exposed interface...

Remember... both of these projects need a subdirectory called "Plugins" to run and you will have to manually drop the implementation of each plugin into this directory for the host application to consume it. Also, nither of these projects are bullet-proof by any means and are demonstration purposes only. We would have to add error handling before they would be production ready. Also, we would probably want to add enough unit tests to our projects to ensure everything is working properly before a distribution build.
Anyways... the important thing is the technique. We could adapt this approach for many differerent types of applications such as creating windows or web services with pluggable functionality or building a mission-critical application architecture where we can plan for future version deployment such that a customer would just have to drop a new dll in a folder in order to avoid application down-time as a result of a new installation process.
http://www.ddj.com/cpp/184403942
http://weblogs.asp.net/rosherove/articles/8048.aspx

adabyron
سه شنبه 02 بهمن 1386, 13:48 عصر
در بهترین حالت ممکنه اونا از یک Plug-in Pattern استفاده کرده باشند.
ممنونم ... ولی میشه لطفا خودتون یه کمی بیشتر توضیح بدین ... یه dll جدید رو چطوری میشه نصب کرد ؟؟

sinpin
سه شنبه 02 بهمن 1386, 14:16 عصر
ممنونم ... ولی میشه لطفا خودتون یه کمی بیشتر توضیح بدین ... یه dll جدید رو چطوری میشه نصب کرد ؟؟
لینکهایی رو که معرفی کردم - خیلی بهتر از من و بصورت قدم به قدم - شما رو آموزش میدهند.
نیاز به نصب وجود نداره (پست قبلی من رو مجددا نگاه کنید) فقط کافیه شما dll رو drop کنید اونجایی که تعریف شده...