Web programming in Lazarus/Delphi can be done in 3 ways:<div>- Non persistent safe CGI, you have to do persistence yourself, this is ok, requires some work but is no the fastest way of doing things, you do get a free garbage collector <hint>Implement something like smart pointers in C++ using operator overloading ?</hint>, interfaces are too much overhead.</div>
<div>- Persistent building a module/plugin (not safe), or using FastCGI, SCGI or a small HTTP server behind a bigger one, i would probably try the HTTP backend (proxy) server behind the real server because FastCGI has poor support (very old apache module) and SCGI doesn't seem too well known.</div>
<div>- The full thing with whatever backend, everything managed by Lazarus just like a desktop app something like Morfik/Intraweb, this is probably the least efficient way of doing web stuff but it would be ok if you only input data and output reports without the need to customize anything, people seem to complain about <a href="http://ASP.NET">ASP.NET</a> for being too difficult to learn and customize.</div>
<div><br></div><div>I'm not sure if threading support is better now, last time i checked, there were still some issues with threads in FPC, the developer who wrote PWU complained a lot about threading support being a major obstacle in FPC, if you want a faster HTTP or FastCGI service instead of the slow but safe CGI you really need good/predictible threading and absolutely no leaks so the SmartPointer/ReferenceCounting would be really useful because in most projects there are other people that forget to free some stuff.</div>
<div><br></div><div>Razvan</div>