Cool Low Level Technology

Ok, i started playing more with the ATL Server projects that come with Visual Studio.NET 2003.  I have to say I'm very impressed.  This is really cool stuff, It seems to basically let you define your own language.  You write some server response files (.srf) and then a couple of C++ dlls that have implementations of the "tags" or "handlers" that you use in the .srf files. 

I'm not sure that I'll ever find a deployment scenario for this technology as It would probably take me too much time to do anything deployable. Also lets face it, with ASP.NET and the .NET platform there really isn't much that you need to go to low level code for anymore.  I think that would be my only complaint about .NET (they've taken away all of my excuses to use C++).  Anyways, although I'll likely never deploy the ATL Server programs i build, they are fun to do.  Also, I kind of doubt that my web host OW would let me deploy on one of the shared servers.

Ok back to the cool tech, I started off by doing this tutorial (i'm about a 1/3 of the way through it).  The tutorial basically is an online store, it is powered by either an Access or SQL Server database and uses OLE DB to connect to the dbs.  I think when i get it finished one of my first tasks will be to start retro fitting it to use Oracle's OCCI libraries and talk directly to my oracle dev box. 

I think that I'm really one of the luckiest people that i know.  Most people have things they do to relieve stress, (skydive, drive fast, throw things off buildings, etc...) What I do to relieve stress is to program, to Code.  (hence the name codeboy) I have to say I've learned more when i was trying to relieve some stress than nearly any other time.  Its just my little way of making something stressful work in my favor as opposed to against me.  That and getting all frustrated &  throwing fits just isn't as productive or socially acceptable as it once was.  (it was well accepted when I was three)

Ok, its time for me to get back to my billable work, then I can do my fun work (C++).  Oh yeah, more justification for doing code in C++, i think it makes me a better programmer.  C++ running as close to the metal as it does demands care, it demands that you check your inputs, check your return values and never just "assume".  These are good practices, I find the more I use C/C++ the more I do these things in my C# and (gasp) VB code.

Ok, Rant over...

 

Comments

# Dumky said:

It doesn't really allow you to define your own language, only a set of tags that will trigger handler function calls. For example you can't add a {{ifnot Handler()}} clause, because "ifnot" doesn't exist.

It really is much like ASP, except that you can't inline any code, just handler calls and use a couple of pre-defined flow control tags (if, while,...).

One bad thing about ATL for the web is that it is quite primitive. The major differences with cgi are that you have less html in your code and the perfs are better ;-)

On the other hand, ASP.NET (for example) has proven to be a more powerful programming model (encapsulation, caching,...). But I guess it all comes down to what your needs are.

I have been coding in C++ using ATL for 2 years now, so I probably need to wait until I used .NET for 2 years to really compare ;-)

One good thing with ATL though, is that you can debug through the ATL server code (that parses the srf and calls the handler functions), which is sometimes useful.

Cheers
Dumky

Friday, July 25, 2003 9:46 PM
# TheCodeFoundry said:

You are incorrect.

ATLS does allow you to create your own tags and there are flow control tags {{if taghandler}} {{while}} etc. Since you have the source code to ATLS and it is templatized code, you can easily extend the language to suit your own needs. These features have been in ATL Server since the first iteration in VS 2002. You can add dynamic tags, such as {{DoSomething(2)}}, but if you read the documentation, the reason for the exclusion of inlining is that you are moving biz tier logic into the pres tier which is not good design.

Thursday, September 04, 2003 5:20 PM

Leave a Comment

(required) 
(required) 
(optional)
(required)