A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.
I am developing a server-side application that acts as a gateway to many different clients and servers. It is primarily aimed at medium-sized technology businesses. 90% of those will be Windows server side. Client side is browser based so not an issue. Server side is primarily CRUD with a REST interface and loads of socket handling.
What should I go for: Java (with an IKVM'd version for .NET environments) or all C# (using Mono on the non-Windows)?
It's a hard call. Java has better REST support and a wider range of third party libraries, but C# is more natural to the target base. Overall it's 50/50 in my mind at the moment.
I don't see why there is even a doubt in your mind. Java is better established on the server-side than C#, even on Windows.
C# might make sense for client-side applications, but on the server Java rules. Go with Java and don't look back.
Tuesday, October 14, 2008
I don't see why there is even a doubt in your mind. C# is better established on the server-side than Java, even on Windows.
Java might make sense for client-side applications, but on the server C# rules. Go with C# and don't look back.
[Sorry, couldn't resist parodying such a statement]
One factor I would consider would be the extent to which the two environments give you relevent programming abstractions above raw socket level.
The client facing pieces, JSON/REST, I would guess (I only use Java, so I don't actualy know for sure what you can do in C++) be supported equally well in the two environments.
So I'd be looking for libraries to interface with your various back-end services. Hope you can find some, it's potentially a lot of work to write your own adapters for specific systems.
After that, I'd be drawn to look at the ease of operation of the "application server" environment and the ease with which you can add resilience, implement security etc. I have no experience whatsoever of Mono, so it may be "obvious" that Mono can give you the quality of infrastructure you need. That's something I would research carefully before committing to a platform.
Finally, there's your own skill-set. If you're really expeienced in either Java or C++ then that's got to be a strong factor assuming that you don't see some very powerful driver in the first two areas.
We went with C# because we can use it for client AND server-side programming. Plus, we like the option to use it with Silverlight in the future.
Just my 2 cents
Wednesday, October 15, 2008
"90% of those will be Windows server side."
Do you *really* need to support platforms other than Windows?
Wednesday, October 15, 2008
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz