views:

218

answers:

8

I work in a company which is primarily concerned with desktop apps not served over the internet.

Part of my value is I have a web based background and proficiencies in ASP.NET, JavaScript, JQuery etc.

The issue I'm having is that compared to a traditional desktop application building a rich web based app is more time consuming. This is understandable in terms of the hoops that need to be jumped through for web development. This is a cause of frustration for those not familiar with the ways of the web.

However because people are used to the non web world where I work I need to utilise every possible tool and technique to be productive as possible while building web based applications.

As such I'm looking for what other people do to be as productive as possible while making web based applications. I'm primarily thinking of ASP.NET (not using MVC) but apart from that everything is open.

+1  A: 

You should use third party tools.

Telerik RAD Controls and the AJAXToolkit are two such tools available to you. They make much of the 'fancy' stuff built in.

Then, and probably preferably, use JQuery.

With those three options, you can make a fancy web application in the quickest way possible.

Finally be sure your UI and business logic is properly segregated so you can reuse your business logic easier.

Clarence Klopfstein
+1  A: 

A few must-have tools on the client side (i.e. the browser)

  • FireBug - let's you debug your javascript, DOM, headers, etc
  • WebDeveloper - provides all sorts of information about the rendering of the page
  • Selenium - Web UI functional testing framework + tool

(all are firefox add-ons)

Bozho
+1  A: 

There are several ways to increase productivity while building web applications, and they're not too different from desktop programming.

  1. Code re-use. As a shop that is primarily desktop-based, this may not be an immediate option. But as you build your code-base, you'll find that you can use some of the code over for new applications, and even begin building your own customized frameworks.

  2. Development tool knowledge. If a lot of the tools are similar, then you may see immediate benefit from this. If not, it may take more time as the team gets used to new IDEs, etc.

  3. Third-party tools. UI toolkits, backend frameworks. These exist in both worlds, and could be utilized to help jump start development, until items 1 and 2 can be worked in.

bigjust
+2  A: 

The best tools for web development, in my opinion, are:

You should also look into NHibernate as an option.

Gabriel McAdams
+1  A: 

The best choice of tools tends to vary quite a bit from one developer to another. It's also very dependent on the details of the type of application you're building.

For me, Visual Studio Team Suite is indispensable. It has a rich set of visual designers and other features that have a big impact on my productivity. Deep integration with bug reporting and source control is another huge time saver (I use Team Foundation Server).

With web forms, you can of course often use drag-and-drop components, which improves productivity for some people (although not me). I can't say I'm a fan of most third-party components. They can be quirky, take a long time to learn well, and then still not do exactly what I want them to. It's also a skill that often isn't portable from one job to the next.

You can leverage jQuery to help simplify scripting -- although even with jQuery I find scripting to be one of the most time-consuming and error prone aspects of web development.

If it's suitable for your environment, you might explore Silverlight. That way, you can often have the best of both worlds, building desktop-like apps using desktop-like tools, but with web-based deployment (Expression Blend is an awesome tool). You can also use Silverlight as a replacement for JavaScript in many cases, with code that's compiled and type-safe.

Good tools on the data side are critical, such as SQL Server Profiler. Visual Studio Team Data (part of Team Suite) is invaluable for it's data generation, unit testing and deployment and management aspects.

Something very underrated by many web developers is building up an appropriate infrastructure: things like logging and performance counters, that can help you track down problems quickly when they occur. A solid configuration system is also important.

In case it helps, I put together a longer list of tools. I also write about something I call the "ultra-fast approach" in my book, which is about more than just building web sites that run fast; it's also about how to build them quickly and reliably: Ultra-Fast ASP.NET.

RickNZ
A: 

You are absolutely correct. Web development is much more complex and time consuming than desktop development. And all of us desktop developers dream about the tool that would allow us to develop web in the same familiar environment and patterns that we are used to.

And luckily there is such a tool which allows to develop web applications with desktop (Windows Forms) methodologies and run them as web applications very easily and fast. This would allow you to develop the web application you need in your company without having to learn much new skills. So I guess this would be the best choice for you.

It is called Visual WebGui. You can check it out and hopefully avoid the trouble and the HTML Hell and JavaScript mess in traditional web development.

A: 

Most important tools for ANY productive development

  1. Dual large screen monitors
  2. keyboard and mouse that works for YOU.
  3. Comfortable high-backed chair that will save you taking 2 weeks off for physiotherapy down the road.
Larry Watanabe
+1  A: 

Here's some of the tools I use for IE and FireFox, http://www.learn-ajax.com/blog/2008/04/debugging-tools-for-web-applications_03.aspx . Chrome, Opera and Safari also have their own built in client-side web development tools as well.

nickyt
I forgot to mention... patience :)
nickyt