|
|
|
|
|
by CWuestefeld
35 days ago
|
|
So they brewed up a bunch of ugly C macrology that enabled C programmers (or Visual Studio wizards) to define COM interfaces in header and implementation files that just happened to lay out memory in the exact same way as vtables of C++ pure virtual classes. While C++ programs would use other ugly macros to declare actual honest-for-god C++ classes to implement COM interfaces. And Visual Basic programmers would ... do whatever it was that Visual Basic programmers did. We were being a well-behaved MS shop at this point. The new generation of our website was designed with a distributed component architecture being called from ASP (Active Server Pages) using DCOM. We implemented it in C++ using ATL (iirc) to facilitate the COM interfaces. The thing was, even with that help, our actual business logic was absolutely overwhelmed by all the annoying casting back-and-forth between those IUnknown values and C++ native types. It was really annoying. This was around the timeframe of VB 5, I think, and we discovered that we could write the same logic in VB without all the annoyance. Putting aside our "serious developer" C++ elitism, we were actually productive in doing it all in VB instead of C++, and that generation of the system lasted for a bunch of years. We eventually replaced that with an ASP.Net design in C#, which was a whole lot more manageable. |
|