views:

229

answers:

4

We have a large code base in MFC and VB. A few applications are in .NET. All these applications interoperate with each other on the user's machine and also connect with Unix servers via sockets.

Recently we have started discussing a re-write of our applications and possibility of moving a lot of these desktop applications to web (they would run in intranet). A straight forward way is rewritting them in one of the .NET technologies. But a suggestion about using Google Web tookit has popped up and the argument is that it would help creating applications that would run in a browser on both desktop and mobile devices.

One of the key problem that I see is that GWT is a large abstraction over Javascript. This will require the team to learn GWT, Javascript, IDEs etc as their experience has been primarily Microsoft technologies and not Java. It would be easier for them to learn .NET technologies instead of GWT.

I do not have a depth of GWT and its drawback pittfalls and do not know about a parallel Microsoft Technology that I should investigate.

So I would appreciate if people here can share their views or experiences using GWT or equivalent Microsoft technology.

+3  A: 

Questions like this are subjective, so you wont get one straight answer. Are you rewriting the unix/socket backend as well? Or do you intend to put a web service wrapper in front of the sockets because without this I cant see a web / internet solution working.

For my money if you are a .net/microsoft house then a MS technology is the way to go. MS is currently backing jQuery which is a client side javascript framework, but there are others like extjs. If you stick with MS and a server side solution then ASP.NET MVC is currently gaining a lot of traction. MVC and jQuery work well together imho.

If you set up a REST based web service layer for your backend it means you can even get away with flat html front ends powered by any javascript framework without needed a server side web rendering technology at all. For REST you can look at .NET WCF if you stick with MS tech.

James Westgate
James, Thank you for your views. Yes the question is subjective and I posted this here to get views of fellow developer. There may be a few amongst us who may have made a decision about using either GWT or an equivalent MS technology. About your questions, We are not planning to rewrite Unix/socket/c code but will provide a web service wrapper for sure irrespective of technology we use. Another problem is that in the future we may want a PUSH model of updating the clients because this is how it works at the moment for the desktop app, any views on that? I have looked at COMET briefly today
byte
Hmm, at the moment this isnt very mature, although perhaps websockets - http://dev.w3.org/html5/websockets/ - might be useful and something you would be familiar with. On the whole if you go web I would stick to best practices for web dev ie classic pull model.
James Westgate
Thanks James. Your answer is helpful.
byte
+1  A: 

Given you guys are a Microsoft development shop, I'd stick with the Microsoft stack (unless your developers really want to learn something new - in my experience that's rarely the case).

Anyway, I thought I'd bring up that Microsoft had an "embraced and extended" version of GWT called Volta that they release 2-3 years ago. The idea is that it takes C# as its source file, and compiles that to Javascript.

I suspect the project is dead (I can't seem to find a whole lot of information about it), but you may want to verify that. I brought it up because you guys seemed like a Microsoft shop who's interested in GWT.

Jack Leow
Volta appears to have been ended in 2008, according to Wikipedia (http://en.wikipedia.org/wiki/Microsoft_Live_Labs_Volta) but I'd never heard it before so thanks for bringing it up! It also looks like Volta wasn't so much an "extended version of GWT" as it was Microsoft's answer to GWT.
Jason Hall
Jack, thank you. Before posting the question here, I had a look at Volta and from the information available it seems like the project is closed for now. anyways it was launched as an "Experimental" project.
byte
The project formerly known as Volta appears to be continuing in some form -- the developers recently released a piece of it, called the Reactive Framework or Rx (which is worth checking out for a nicer way to handle asynchronous programming), and in interviews they've indicated they're still working on other pieces, but not ready to talk about them yet. Not something I'd bet my business on though.
Max Strini
+1  A: 

Based on your provided information I think it is better to use fromMicrosoft Technologies instead of Google Technologies.

This will reduce Cost (include Time to learn and also the budget and etc)

on the other hand, Silverlight goes on the windows phone mobiles with (WinMo7) so your application will run as the same in Cellphones too. So my sugesstion is to use Microsofts Technologies.

Nasser Hadjloo
Thanks Nasser. As I mentioned in my question, these are the reasons I am inclined towards MS technologies.
byte
+2  A: 

Given that you've been working with MFC and VB, .NET is going to be a new world to you as well. At least with Microsoft you'll have strong development tools and learning resources that you'll need. Not so sure that will be the case with GWT.

But also, if one of your developers wins the lottery and leaves the company, you'll have fewer problems finding another MS developer to replace him.

Mike Brady
Thanks Mike, .NET would not be a new world because as mentioned above, we do have a few .NET apps. But for GWT it would be a whole new monster to tame. GWT being an abstration to Javascript, might require more efforts and time to learn especially when it comes to advance debugging and problem solving in multi tier application architecture. The team could transition onto C# or VB.NET easily as compared to learning everything new. They would still use Visual Studio and leverage their existing debugging skills. I agree with you last point as well about cost of replacing a developer.
byte