Search code examples
.netpdf2dgdi+quartz-2d

New 2D API: Porting 2D construction drawing application to Mac, Linux, Windows


We have a somewhat popular 2D text/shape drawing application used by people in the construction/property management industry. Our program draws 2D floor plans (vector graphics). Currently, we use C# with GDI+, but Microsoft has abandoned GDI+, and replaced it with WPF, which is horrible for creating a 2D CAD drawing application (but good for html developers who need to create form-based desktop apps). We need a new 2D API. We need to port our app to Mac and Linux too (the Windows 8 start menu seemed to single-handedly kill off our Windows market). Our focus is on vector-based graphics (drawing walls with joins, dimension lines, text, door openings), often for print. I have read stuff about Quartz 2D, pdf, etc, but I can't figure out what would work on all platforms. Currently, our app keeps track of all the drawing objects in our own data structures, so there is no need for us to have an api that retains/remembers all the objects we have drawn (WPF, or other retained-mode apis). What non-retained-mode, pdf-friendly API should we use to keep as cross-platform as possible? Java is too limited since we use a lot of functional language features (F#). Feel free to correct my current understanding of any topic in this question...I just need a good solution.


Solution

  • The problem is a lot bigger than just the library providing the rendering layer. Your whole programming language, development environment, and UI development need to be considered. I believe only Java would be portable enough for your requirements, but I would be happy if someone contradicts me.