I thank Rien for giving valuable feedback on my test project. He had some questions that show I am not explaining my approach well enough. So I will try to clarify. Let see:
Love your idea of starting a good commented pytthon-flex-cairngorm project! Very much needed indeed!
Glad to hear you think that too. I think that as we share what we learn, all of us will benefit. One thing, though: this project is about a Flex client to Google App Engine. Not necessarily about Cairngorm. I will probably go the way of PureMVC. No problem for Cairngorm users, anyway, because the project is about the client-server integration, not about the framework for the Flex client.
I got your project running, there’s only one thing I do not understand just yet.
You have 2 folders “server” and “python-client”. They contain each pyamf in its whole? Is that necsessary?
It would help me and others much if you could explain why they are splitup in 2 seperate folders.
I agree that is a waste. Space is cheap, though. My reasoning is that I want my “server” directory to contain only what must be running at Google App Engine. No client tools at all. That is, I want a self-contained web service on GAE, and nothing else.
Since I also wanted a Python client to be able to test PyAMF in a way that is independent of Flex, that led me to create a “python-client” directory. I put a separate copy of PyAMF there so both subprojects (Python server and client) would be independent and self-contained, with no external dependencies.
And how the client.py knows of ProjectService.py and EchoService.py I don’t seem to get how they are linked up?
Well, first about the server. It does not know about any client. It only knows about requests that come through PyAMF.
About the clients, both (Python and Flex) are bound to the server in a naïve way that is suitable only for a test project. They use a fixed URL to the server (http://localhost:8080/) and they use the name of two services (EchoService and ProjectService) that are routed inside main.py in the server to the actual implementation classes.
Because I only start up “dev_appserver.py server”? And then openup the flex app.
You can start only one instance of the server on port 8080 and have both the Python and the Flex client talking to it.
I hope that clarifies a bit. Feel free to ask if you have more questions. Just keep in mind that I am still learning all this.