Please fix what?



  •  

    ( http://titsfost.googlepages.com/ednImage1.png for people who can't see it all)

    I can guess at what they actually want fixing, but since there's a "Suggest a fix" link top right, lets click on that. 

    Ah ok, maybe we should go somewhere else... 

     

     

     

     

     

     

     



  • 'global.pas', 'TGlobal' and asp.net 1.1? Why hello there Delphi.NET.

    'Could not load type {foo}' is an error the asp.net framework throws when reflection fails to find, load or create a new instance of {foo}. I'm not at all surprised for this to pop up with Delphi.NET driven websites. Same goes for the b0rked resource string.

    Pull open any CLR assembly compiled with Delphi.NET and stare in horror at what is produced when Borland tries to shoehorn ObjectPascal's concept of units into the C#/VB.Net/etc. concept of namespaces. Iirc everything becomes an inner class to a generated Unit class that takes the name of the .pas file and some type aliasing voodoo glues everything together with the outside world. It's very easy to get the asp.net framework to implode on magic numbering like this. All it takes is a duplicate class name.

    In the case you present, global.pas means a new class Global will be magically grown to contain TGlobal as an inner class. However, Global is a class that iirc already exists in the context of the Global.asax file associated with asp.NET websites. It's highly likely types have just started colliding and Fusion (the runtime assembly loader / binder) just completely failed.

    I had to work with this abomination of a development platform myself for a year and it has given me these kind of errors many, many times. Even at compile time things would mess up: I still cringe when I think back to the odd errors Borland's shoehorning would end up making the compiler spout. 'Type System.Int32 is not equal to type System.Int32' indeed.

    I guess you could say the WTF here is not just a lack of testing before deployment...



  •  I had a similar error this weekend trying to play the Aion beta.  When I was logged into their site trying to set up my account it kept telling me there was an error with a field, but it didn't say which field.  At least you know the problem is Global.TGlobal!!!

    What was the problem with NCSoft?  They have something in their site that didn't work in FF, or Chrome so I had to open the site in IE to get it to work... 



  • Yeah, TRWTF here is definitely Delphi for .NET.  I used to use Delphi to develop Win32 apps and it was great for that (for its time).  Eventually my job shifted more into web development, old-school Delphi didn't cut it, so I tried their new-fangled IDE with ASP.NET support because I didn't really know C# and hated VB.  Tried the 2005 version for about 3 weeks and finally gave up - aside from the CLR/native type horror and blatant mangling of ASP.NET markup (which they blamed on Microsoft), the IDE crashed all the time.  When 2006 came out I was already well into C#, but I tried Delphi again for the hell of it, and it was the same garbage with slightly fewer crashes; and it still mangled markup, just in a slightly different way.  From concept to implementation, the whole product was just one massive fail; it's no wonder that Borland divested it.

    Ironically, CodeGear is now highlighting Embarcadero as one of their "Prism" customers.  Kind of sad that they couldn't find anything better.  I don't know, it's possible that their Win32/64 native development IDE is still OK, but I wouldn't touch any of their .NET versions with a 50-foot pole, no matter how many years they've had to fix it.



  • @Ragnax said:

    'global.pas', 'TGlobal' and asp.net 1.1? Why hello there Delphi.NET.

    'Could not load type {foo}' is an error the asp.net framework throws when reflection fails to find, load or create a new instance of {foo}. I'm not at all surprised for this to pop up with Delphi.NET driven websites. Same goes for the b0rked resource string.

    Pull open any CLR assembly compiled with Delphi.NET and stare in horror at what is produced when Borland tries to shoehorn ObjectPascal's concept of units into the C#/VB.Net/etc. concept of namespaces. Iirc everything becomes an inner class to a generated Unit class that takes the name of the .pas file and some type aliasing voodoo glues everything together with the outside world. It's very easy to get the asp.net framework to implode on magic numbering like this. All it takes is a duplicate class name.

    In the case you present, global.pas means a new class Global will be magically grown to contain TGlobal as an inner class. However, Global is a class that iirc already exists in the context of the Global.asax file associated with asp.NET websites. It's highly likely types have just started colliding and Fusion (the runtime assembly loader / binder) just completely failed.

    I had to work with this abomination of a development platform myself for a year and it has given me these kind of errors many, many times. Even at compile time things would mess up: I still cringe when I think back to the odd errors Borland's shoehorning would end up making the compiler spout. 'Type System.Int32 is not equal to type System.Int32' indeed.

    I guess you could say the WTF here is not just a lack of testing before deployment...

    TRWTF is that this is the company that actually MAKES Delphi.NET (Embarcadero bought it from Borland).  I'll at least give them credit for using their own product even if it is made of fail.

    @Aaron said:

    Ironically, CodeGear is now highlighting Embarcadero as one of their "Prism" customers.  Kind of sad that they couldn't find anything better.  I don't know, it's possible that their Win32/64 native development IDE is still OK, but I wouldn't touch any of their .NET versions with a 50-foot pole, no matter how many years they've had to fix it.
    Actually, CodeGear is a division of Embarcadero.


  • @Aaron said:

    Tried the 2005 version for about 3 weeks and finally gave up - aside from the CLR/native type horror and blatant mangling of ASP.NET markup (which they blamed on Microsoft), the IDE crashed all the time.

    Don't get me started on the Borland Development Studio (BDS): random crashes; ridiculous memory hogging; corrupting the windows help system with a shoddy help-file integration tool; corrupting the Global Assembly Cache (GAC); randomly messing up installed debugger services; losing GUI layout preferences; nuking source files during editing. Urgh!

    Come to think of it; Delphi.NET as a platform was probably the lesser of the two WTFs.



  • @Ragnax said:

    @Aaron said:
    Tried the 2005 version for about 3 weeks and finally gave up - aside from the CLR/native type horror and blatant mangling of ASP.NET markup (which they blamed on Microsoft), the IDE crashed all the time.

    Don't get me started on the Borland Development Studio (BDS): random crashes; ridiculous memory hogging; corrupting the windows help system with a shoddy help-file integration tool; corrupting the Global Assembly Cache (GAC); randomly messing up installed debugger services; losing GUI layout preferences; nuking source files during editing. Urgh!

    ... good I still use Delphi 7. It has a great help file (better than those I've experienced with any * Studio IDE) and only crashes once in a while. And pre-warns you before doing so ("I'll crash soon, please save your work and restart me!", not an actual quote).



  • I still use Borland Builder C++ 6, simply for the reason that I've not seen another version that isn't absolutely horrible to use. It isn't pretty, but it does the job and does it quickly (compared to the 10 seconds it takes to reconfigure the windows every time you enter/leave debug mode on Builder 2009, it's like lightning).

    I'd switch to VS, but a lot of my code is QAD for custom tasks, so Builder is far more RAD than VS. 


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.