DCSIMG
Upgrading technologies in an existing project - Dotmad (on .Net)

Dotmad (on .Net)

Just Another Web 5.0 Blog

Podcasts

Blogroll

Upgrading technologies in an existing project

We all know about the "cool new kids in town", meaning new technologies all developers want to use. Offer a developer two positions:

  1. Programming with C# 1.1
  2. Programming with WPF and C# 3.5

What do you think most developers will choose?
However, there is the question of an existing project, written in an "uncool" technology. In my experience developers tend to push towards using newer technologies, but how do you convince the people in charge?
Here are my thoughts on the subject:

Framework 2.0 vs. 1.1
Advantages: Performance boost if you are using ArrayLists with value types in them (when you switch to generic Lists)
Disadvantages: Incompatibility issues requiring code changes (should be very minor)

Framework 3.5 vs. 2.0
Advantages: Using Linq for new complex data access and query modules, otherwise I'm unsure
Disadvantages: Same as switching between 1.1 and 2.0

WCF vs. Various communication technologies
Advantages
: Much easier to configure and deploy, can drastically change the communication method without any code changes
Disadvantages: Not applicable when you do most of the communication in a non-.Net world if you remote points are not using web services protocols (example: communication with hardware sensors)

Workflow foundation
Advantages: Easier to manage complex workflows. Enables user modification of workflows.
Disadvantages: If an existing workflow code is already written - major code rewrite.

WPF vs. Winforms (with CGI+)
Advantages: Creating easily resizable forms due to vector graphics use. Customize look & feel in ways which are almost impossible to duplicate using winforms. Easier interaction between UI/graphics designers and developers.
Disadvantages: Will require serious code rewrite. Performance issues still exist (I have yet to witness a professional map engine based on WPF)

Team system vs. various source control / task management systems
Advantages: I have used SourceSafe, PVCS and Rational ClearCase/ClearQuest, and to this date I think VSTS is better is terms of performance, ease of use and customizability, especially when you need to integrate source control and task management.
Disadvantages: Requires Windows - how do you use VSTS to manage C++ code in a Unix/Linux environment?

תוכן התגובה

Maor David כתב/ה:

Mr.Avnit,

Cong. for your TechEd invitation!!

# February 14, 2008 8:54 AM

ekampf כתב/ה:

Well for a map engine you wouldn't want GDI+ too. Probably OpenGL\DirectX are the best solution for that...

You know Eternix's map solution?

# February 14, 2008 9:17 AM

Maor David-Pur כתב/ה:

Eran, I agree that he wouldn't want GDI+, but it depends. I know Eternix's map solution. I think it works with WPF and OpenGL - I saw it at a bio application, and it works great.

# February 14, 2008 11:08 AM

Adi כתב/ה:

Assuming you meant http://www.eternix.co.il, I see it states their technology is "WPF, OpenGL, DirectX and shader technologies" - which one is actually being used for the map engine?

# February 14, 2008 12:30 PM

ekampf כתב/ה:

Well yeah... Everything is shader based in the new DirectX pipeline (since DX8)

# February 14, 2008 5:27 PM

Yoav Zobel כתב/ה:

Our visualization engine at Eternix uses DirectX 9 or OpenGL (both implementations are available), with WPF as a renderer for some of the more advanced entities.

We actually considered using WPF on its own, but the performance wasn't satisfying. But since WPF is a technology that we very much appreciate, we've managed to use it in cooperation with DirectX/OpenGL.

I think it's one of the first systems that successfully incorporated WPF with DirectX/OpenGL (in an entirely managed enviroment). This gives us the power of displaying advanced WPF objects inside a highly optimized DirectX/OpenGL scene.

# February 14, 2008 6:17 PM