Sunday, March 18, 2007

Namespaces - aarrghhhh

Am I overlooking something or is it just impossible to use an HttpService with resultFormat="e4x" in combination with databinding IF the incoming XML contains a (default) namespace???

Preventing the namespace from being sent to the HttpService seems to solve the problem but isn't really a nice solution...

Suggestions are more than appreciated!

Thursday, March 15, 2007

Interested in server-side session state ?

I've been trying to make my Flex based client to end up in the same server-side session upon each HttpService request.

Each request to a session-enabled ASP.NET page returns a cookie with the session id. By sending this ASP.NET_SessionId cookie back upon each request you can benefit from the session support built in ASP.NET.

There's one problem however: there doesn't seem to be a way to get the cookie information after an HttpService request... This is not going to stop us of course :)

The solution is easy:

- Create an ASP.NET page that returns the session id (in the 'normal' page output)
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.Write(Session.SessionID);
Response.End();
}
}

- Store the session id in your Flex application for re-use
...
var sessionCookie: String;
private function loginRequestHandler(event:ResultEvent):void
{ sessionCookie = event.result.toString(); }
...

- Re-use the cookie information with each new request:
...
userRequest.headers = "Cookie: ASP.NET_SessionId=" + sessionCookie;
userRequest.send();
...

Too enthousiastic Flex caching

I've been trying to call a dynamic ASP.NET webpage multiple times (each time the page returns different information).

It seems that Flex is, by default, caching the response. The 'ugly' way is to append some unique id at the end of the url to force a new request (http://somewebsite/stockquotes.aspx?ID=1, http://somewebsite/stockquotes.aspx?ID=2, ...).

There is however also a 'nice' way to solve the problem (at least if you have access to the ASP.NET source code). Just add the following code to your ASP.NET page (for example in the Page_Load method): Response.Cache.SetCacheability(HttpCacheability.NoCache);

Welcome, I'm Ria Flex

Hi! I'm Ria, Ria Flex (aka Tom Van den Eynde) and I would like to share with you my passion and experiences with Adobe Flex.

For those who don't know Adobe Flex yet: it is the ultimate solution to build modern, easy to use, web applications. You can find some examples of applications built using Adobe Flex online: