PDS is useful, but limited. However, it's tons more reliable than
coding it straight into the database (most things you can't code
reliably into the database).
I'm working on integrating MS Project Server 2003 with a home grown
enterprise app. I need to create projects feeding information from the
enterprise app and using the correct MSP template based on that
information. Sometimes, PDS can be clunky and it's not as robust as
you'd like. For instance, you cannot set the security of a project
through PDS, so be careful which user account makes the project as that
account will be the only one with access until someone goes into the
Project Server web interface and changes it.
There's a help (.chm) file that ships with MSPS 2003--copy it to your
computer because it will quickly become your best friend. And don't
make any promises about what PDS can do until you know there's a PDS
call to do it. MSP is designed to be used from the MSP app and the web
interface. It's not designed to be extensible. PDS is incredibly
useful, but limited.
Oh, and if you use custom fields, they can be tricky to populate in
PDS. Make sure you learn the difference between a text field and a
custom outline code since the latter are populated differently (steps
instead of 1).
Finally, checking a project out and checking it back in is slow through
PDS. So if performance is an issue, be ready to use some serious
hardware for the server.
Ok, done pontificating. Good luck!