This is not an urgent issue, but I just want to document the results from my investigations of the last couple of days.
I have looked at http://ext.net, which combines the AJAX framework extjs from Sencha nicely with .net.
The problem I have come across is this: with ASP.net, all clients connect to the same appdomain, and therefore all static (ie. global) variables are shared. This is a problem for us, because we make use of several global variables, for example DBAccess.GDBAccessObj for the connection to the database, UserInfo.GUserInfo for the current user, DomainManager.GSiteKey and DomainManager.GSystemDefaultsCache to name a few.
It would probably be possible to start an appdomain for each user, ie. each session, but it would be quite difficult to call functions inside that appdomain, and to return the results.
So my next idea was to embed the Ict.Petra.Client.App.Core classes into the ASP.net webserver, and to establish a remote connection for each session with the normal OpenPetra server. I would have to work around some global variables too, eg. TRemote, but it would be less complicated. The problem for this was that the call to RemotingConfiguration.Configure is a static call, and you get a RemotingException for the second user, telling that the TCP port is already in use. So it is not possible to have several connections from the ASP server to the OpenPetra server.
Now my next attempt is to change the UserInfo.GUserInfo to a method call, so that it returns the value of the static variable for the usual Client/Server setup, but will return the user information of the current session for the scenario of the ASP server.
I am still thinking if I will not get into trouble using just one Database connection, with transactions overlapping, so I guess I will need to change DB.GDBAccessObj as well.
I hope we can have a simple interface for the ASP pages to access the server functions of OpenPetra.
I will need this for maintaining online the Teenstreet applications for OM Germany and other offices.