views:

479

answers:

4

I am looking at moving my company's internal business app from VB.NET to PHP. Some of the people were worried about losing GUI features that can be found in .NET. I am under the impression that with the right javascript framework, anything in .NET GUI can be replicated.

While I am still researching this point, I would like to ask if form features in .NET GUI can in fact be replicated with javascript and slightly more importantly, will it take much longer to develop to get the same results?

A: 

I'd say it depends on the UI features being replicated. Hard to gauge the unknown :)

Gabriel Isenberg
+5  A: 

First off: to answer your question.

A Tree Control is hard to emulate in a web environment. Doable, but hard (look at Yahoos YUI for an example).

  • State: you get it in WinForms, not in the web. This has more to do with how people use the application.
  • Interaction: That is easier on WinForms than web. Again, it is doable, but more layers are involved.
  • Data Size: How much data is being displayed? You don't see grids with thousands of records on the web, that can be common on WinForms. This can effect web load times greater than WinForms.
  • Testing: how many browsers to you have to test with. The JavaScript/CSS differences between the browsers can make life difficult. Ah heck, IE6 will make your life difficult if you have to develop for that.
  • Development time: that is about the same for a developer experienced in both environments.

But, there are a number of other questions that pop up in your initial statement.

Why go from WinForms VB.Net to PHP? Instead, go to ASP.Net with VB.Net. Might save you from completely reinventing the wheel. Also, then you wont have to learn how to convert between frameworks.

Chris Brandsma
thanks for the answer. About browser types, we can dictate to only use one kind.About the reason to move to PHP, it would be business/resource related.
Jonathan
+2  A: 

I will say that yes anything "CAN" be replicated, but the amount of time to do it might be a big bottle neck right away.

I am going to assume that your current application is an ASP.NET application and that you are not moving from WinForms. (If you are the answers are still pretty much the same...but I might add a few extra comments).

Out of the box, with drag and drop functionality from a UI perspective you have data validation and many other general out of the box items, that although they are done clientside you don't have to write a single line of JavaScript to get them working. This is a big cost saver, but can it be replicated elsewhere, yes, but it takes time.

Secondly you have the very easy to work with ASP.NET AJAX functionality combined with the AJAX Control Toolkit. These again allow you to use .NET logic to put things together, but can they be replicated? Yes, jQuery and many other AJAX frameworks contain similar items to a lot of items.

The biggest point that I have to make is that if you already have something and are familiar with the language and technology behind it, why scrap it, risk not getting done on time, and enter an unknown world of a new language. That is just my $0.02 I guess.

Mitchel Sellers
+1  A: 

In general it always takes less time to do anything using Microsoft technologies, whether it's web applications, desktop applications or lately Silverlight applications. There are a few reasons:

  1. Microsoft provides wizards for everything.
  2. Microsoft raises the level of abstractions high, up to the point sometimes it is perceived that it "dumps down" the developers, although this is debatable. More on this in #5.
  3. Abundance of third party widgets, controls, etc.
  4. Tight integration with IDE such as Intellisense, Source Control, IE, Excel, SQL servers, etc is out of the box.
  5. Along the same line with #2, MS provides Drag-and-drop, point-and-click in its IDE. Microsoft also loves the concept of data binding, so as a result, you can end up with a table or grid of data with potentially very few lines of coding.
  6. Debugging is seamless, out of the box most of the time.

I would say that if your application is somewhat simpler, then you can get done quicker using a Microsoft framework. In an Intranet environment, where you can control the browser (in case of web applications) the users must be using, or which framework to install (.NET framework and/or Silverlight plug-in), and development time is critical, then doing the Microsoft way might be the way to go.

There are drawbacks (I have to say the followings with the exception of StackOverflow and a few sites that are built using ASP.NET which are really well done):

  1. Your applications tend to be bloated. A simple desktop application still requires a full installation of a .NET framework.
  2. Sometimes to do an easy thing can make you end up doing all kind of convoluted things, as Microsoft APIs are not always the cleanest.
  3. For web application using ASP.NET, you could end up with an applications that contain very ugly JavaScript codes. Although not directly related to this point, there was an instance that was discussed on Ajaxian.com a while back where someone discover some really ugly JavaScript code right inside SharePoint. In term of culture, most ASP.NET developers don't care, don't need to, or simply don't know JavaScript. That's because the framework encourages so (although this could changed in the future with jQuery integration).
  4. Your web application tend not to run on anything other than IEs, and this might be acceptable in your situation. If it does, that might be by accident and not by design.
  5. Microsoft replaces its own technologies every few years and offer very little backward compatibility. They force developers to re-learn in every few years or so and could be confusing in any given transition period where we try to sort things out. As an example. this is currently happening with ASP MVC and Silverlight. But this might be a good thing instead of a drawback.
Khnle