what is the ideal SERVER side programing language for such a dev project? ASP.NET, VB.NET, PHP, JSP ??? -- PHP may be the best as it is pretty modular. ASP.NET would require a MS server with ASP.NET support and someone with good .NET experience.
what is the ideal CLIENT side programing language for such a dev project? -- If you really need to be able to download the database n be able to work with it offline I'd suggest using something like .NET (C# works good).
what should the ONLINE database and OFFLINE database backend be? MYSQL, MSSQL, ACCESS ??? -- MySQL for online database which the PHP server side end would easily be able to update and manage. For the offline database backend, I'm sure it is possible to download the sql database and access it within .NET though I've never done it before.
how should the general structure of callbacks and serverside and clientside software be? -- I'm not sure of all the things that inputs that the server will be receiving to store information into the database. But here is my assumption of what should be done: It would be possible to have a simple web interface for adding things to the database and viewing stored contents and what not and also have an app written in something like C# that has the ability to download the database with the proper credentials and add their own content to the database offline. All changes would be stored in a separate file temporarily until the person requests to append it to the online database. It would then compare the current database with the downloaded database and determine that they are the same -- if not, it would download the latest database and append the changes made to the downloaded one, if applicable.
Depending on the data itself depends on whether you should encrypt it or not. If you have sensitive information that only certain users should access, that information could easily be encrypted using an md5 hash combined with the person's username/password. If all the information is shared amongst the users with no restrictions then there really isn't a need to encrypt the data.
can AJAX help? (like ComponentArt GUI) -- Ajax can help for the web interface. If you have functionality like making updates or deleting things from the database you can use AJAX so that the web interface works like an application and doesn't require page refreshes.
are there any third party tools that make working with online-offline apps easier? -- I haven't looked heavily into online-offline apps but I know it is possible to write an application that works online/offline solely within a browser (I believe by caching data and such). I've heard of some current web apps having the capability to work offline and synchronize once you're online, which you might want to look into if you'd prefer doing it that way. My assumption (as I've never done it before) is creating a web app that can work online and offline at the same time is probably one of the more difficult things in web design to master.
how to have minimum fuss for the end user (no complex installations/ no webservers running etc) - 1 server backend which has a PHP frontend (website) that people can use to access/update/modify the database. 1 frontend app written in C# containing just 1 file (the executable) to access the sql database. Both would have to be well designed and well written to keep it easy for the end user. Possibly have a client login area on the website which would allow users to download the client for offline use telling them their credentials for using the app is the same as their user/login on the site.
how should one secure such apps? locally and online? -- Depends on what kind of privileges you want for different users.
also is decompiling such apps possible? how will i know? -- Decompiling desktop apps is possible yes. Web apps can't be decompiled, only the HTML/CSS?JavaScript can be read. For desktop apps they can be easily decompiled. It'd be best if using a desktop app to require a username/password to access the database rather than hard-coding that in to be safe.
PS. You can use ASP.NET if you'd like. Since you can use multiple languages to write ASP.NET code (such as C#) it would actually be beneficial to have a coder use ASP.NET / C# and use similar code to create both the frontend and backend for the server. My suggestion is based around what I have the most experience with (which is why I first mentioned PHP). ASP.NET and C# would be easier/faster and may actually be your best solution.
Machine Specs: Windows 7 - Gigabyte GA-EP45-UD3P - Q9550 @ 3.82GHz - 8GB DDR2 - 2x Radeon HD 4770 512MB - 750W Corsair PSU
Get 2 TB bandwidth a month plus 200 GB diskspace for $69.00 a year