Gradually porting PowerBuilder/C++ application to C#/WPF or Winforms -
i have chance start porting legacy application written in c++/powerbuilder c#. have feature sprint launches independent dialog , went through exercise of creating ccw dll managed implementation of feature, called c++. decided use wpf views in managed dll. far good, able inter operate managed dll, including launching wpf window sample mfc app.
there several reasons motivating strategy:
- i have bunch of re-usable manage dlls came being recent redesign of 10 year old legacy app.
- i experienced in c# compared c++ find myself battling language syntax , intellisense. fwiw, our company better in investing in tooling although not change dislike c++ syntax, header files , inconsistencies......of approach.
- for desktop apps atleast kind of applications develop, think c# way go. 4.there future plans re-write app, , not want repeat myself, hence temptation start designing things right, can, @ stage.
- i not have alot of c++ help.
however, have concerns , questions:
is piecemeal approach way go?
from performance perspective is, should interoperating winforms instead of wpf? application hosting gis performance key, although have developed wpf application host thinkgeo's mapsuite , performs quite well. main difference legacy app alot more gis intensive wpf cousin.
with latest rumours fate of wpf/silverlight, should considering wpf? alternatives anyway desktop apps, if wpf/silverlight die?
3.what gotchas waiting me?
any thoughts and/or advice on great. consulting manager on wanted of thoughts , experiences first. tia.
klaus
edit:
sorry application 10 year old , not 25 year old stated. little mix there.
i don't see better approach piecemeal one. , can use c++/cli (aka managed c++) bridge difficult gaps.
i'm big fan of wpf/silverlight suggest above winforms, older looking technology. custom controls , data binding have made things lot easier long term development in wpf world.
the rumors of wpf dying off plain nonsense. yes, microsoft reduced size of wpf team -- because wpf has become mature , stable. want put more resources browser areas strategic reasons; not sure why equate them killing wpf.
i've had great success in using wpf wrapper or interface legacy code written in c++. main "gotcha" i've run when have layers of managed , unmanaged code, can bit tricky , hard debug. may want consider writing custom assembly loader callback can see more fails load , why, if have legacy app loading c++ dll ends running managed code.
Comments
Post a Comment