I'm currently designing a web application and I'm considering using python-django for the front end and C#-WCF-Entity Framework at the back end. My core competence is C#, hence the choice of back end technologies. I, however, do not want to use C# at the front end because I prefer django's clean design vs ASP.NET plus the flexibility offered by a dynamic language. I intend to make REST calls to the WCF service for ALL data access (i.e. I won't be using django models at all).
My questions ...:
Is this a good architecture, in terms of scalability? Are there glaring, project-threatening disadvantages to the architecture? Would it be better to simply use ASP.NET and forget about REST calls?
The architecture also raises concerns about hosting since it's difficult to find a django host that also does .NET. Would hosting the front-end on Google App Engine and the back end on Windows Azure be a wise thing to do?
Your responses will be highly appreciated.
Thanks.
A robust business tier, developed in the language you feel most comfortable with - that seems like a good idea.
Decoupling the presentation layer , perhaps even in the future having more than one such tier for different client platforms - also reasonable, I've seen successful systems on those lines.
RESTful services do seem to be very effective in terms of ease of development. I would expect there to be some performance overhead in using a textual data transfer mechanism (Web Services of any flavour) but with careful design this is not usually an insurmountable problem - look at the performance of many Rich UI browser-apps they are almost certainly using AJAX calls with textual payloads.
I don't see the choice of this architecture as intrinsically obstructing scalability - clearly you have to get the business tier right, manage state carefully etc, but I don't see why this choice technolgies should introduce scaling problems.