views:

309

answers:

12

I am a beginner at software development and web site development. I love using Microsoft .NET stuff but it seems like they are always coming out with new technologies that requre users to download new tools to use them. For example, many Windows Apps that I write require users to download the .NET platform 3.5. If I switch over to VS2010 and start taking advantage of all the new features, users will be required to download .NET 4.0. I have recently started looking into Silverlight development for websites but then every user has to have Siverlight installed.

Now, I realize that for the majority of people, downloading Silverlight or the latest Flash player is not a really big problem but there is probably a decent amount of people (the older crowd I imagine) that just always clicks 'cancel' when the download prompt pops up and goes on to another page. If I build an entire site on Silverlight and aspx technology I could be cutting myself out of traffic. Espicaially if I am on the leading edge of technology like those first few sites that used Silverlight.

So my question is, how do you decide when it is appropriate to switch to a new technology? At what point do you just say 'screw it' the users can download silverlight or they can't view my site. Would the type of website you are designing make a difference (i.e an e-commerce site vs. a simple informative services offered page) If I am developing a services-offered type page for a small company, I would want to make it flashy to attract customers but not so flashy that people can't view it without all these additional tools...

+5  A: 

You play with new technologies long, long before you put them into play. If you're not a huge player in the market, you switch when your users will smoothly support the switch. If all else fails, you switch when you have to.

For example, the vast majority of corporate websites still support IE6; not because the developers want to, but because they have to.

If you build an entire site on Flash, you lose the iPhone, but pretty much everyone else has this. Silverlight, less so, I'd bet.

Dean J
I've heard that Flash doesn't work really well on Android, either. Personally, I think that for most commercial purposes you want to at least allow people to use your site from their phone.
David Thornley
Ideally, you provide a specific mobile implementation of your content that's optimized for smaller screens, no keyboard, no mouse. That's probably easier to do for most designers than it is to strip Flash out of your main site?
Dean J
+1  A: 

When the new technology is ready with final production release.
When you actually need it based on your feasibility study.

this. __curious_geek
I've added a vote for this post, but often you need to start work with beta ...
Budda
+1  A: 

Other people have already provided a fairly good answer for your question, so I'll provide an answer to a related question that you did not ask: while it would require more work than simply deciding when to switch to a new technology, why not make two versions of the site, one fancy and the other more simple? Like how you can view a plain-HTML version of Gmail if you wish to. That way you'd be supporting not only those users whose computers aren't fully up-to-date, you'd also be providing a service to those users who don't wish to use the fancier version of the site in the first place. (And such people do exist, for a variety of reasons that aren't necessarily computer-related.)

JAB
...and you'd be doing twice as much work.
DOK
...and probably three times the amount of testing.
Chris Lively
@DOK: Depends on how you implement it, really. You could potentially get the amount of work to 1.5x the original amount, depending on how much code you're able to share between the two.
JAB
A: 

When developing a web application, the "tech upgrade" problem concerns only the webserver where you host the site.

For the user, unless you're integrating flash/silverlight, only web standards are concerned.

If you output well formed (x)html styled with CSS, the user will be able to use it with almost every browser with no problems at all. The server side technology behind that is hidden from the user.

Now if you love, like me, the .net framework, I suggest you developing using .net 4.0 and the Mvc framework 2.0 which allows you to produce higher quality sites than traditional asp.net, which clutters your page with useless stuff and hides the mechanics of Http from you.

I am available for further information if you need.

Matteo Mosca
The difference between ASP.Net WebForms and MVC is *not* that one results in higher quality sites. Quality will depend on the abilities of the developers.
DOK
If you read carefully my comment, I say that it "allows you to produce higher quality sites". It seems pretty clear to me. Mvc doesn't do any magic, it has a greater potential that traditional Asp.Net, that's all I meant. You can still do horrible sites with Mvc, even worse of normal Asp.Net ones.
Matteo Mosca
"Well formed html" != "no browser problems" You can have the slickest looking well formed html 5 site; but if they use IE 6, well, no telling what it's going to look like.
Chris Lively
Also, I'm with DOK. MVC != "ability to produce higher quality sites" You can produce high quality sites in webforms, classic asp, regular php, etc. It's all about your (meaning the programmers) ability.
Chris Lively
Again, I invite you to read my comment carefully.I was just pointing to the fact that Mvc doesn't add trash like viewstate nor does name mangling, and so on.Is it a habit of the users of this site to misinterpret comments in order to downrate them?I never stated that if you use Mvc you have the ability to do something good. Skill is personal. But using a tool that has more potential and less drawbacks is absolute.Try cuttin a tree with a regular saw or a chainsaw and tell me if it takes the same time.
Matteo Mosca
@Matteo: The disagreement here is that at least I, and apparently others, do NOT believe that MVC has more potential to produce higher "quality" sites.
Chris Lively
BTW, I'm the one who downvoted. I did so based on the completely inaccurate statement that "well formed (x)html" will work in almost every browser with "no problems at all". This is both false and misleading. Regarding MVC, I wouldn't down vote on what is obviously an opinion issue.
Chris Lively
+2  A: 

The simple answer is "When using it solves a problem you have."

However, the reality is that it's a bit more complicated than that.

You need to weigh up the advantages of the new technology - e.g. it lets you do X - against the drawbacks - e.g. it requires a 250MB download - and see whether the result comes down in favour of the technology or not.

You also need to consider your target audience. A corporate environment tends to be consistent - all users will have virtually the same set up - but you might have a fight getting the technology accepted by corporate IT.

ChrisF
+2  A: 

It really depends on your user base and your application, here are a few guidelines I follow:

  1. Do the new tools/frameworks offer a significant value add to my app or are they fluff/eye candy?
  2. How often does your particular user base upgrade their systems, this is quite different if your user base is marginally technical or casual internet only users.
  3. How easy is it for users to upgrade to the new technology? .NET, flash, silverlight can all be relatively easy, though .NET can be time consuming.

One more important thing to consider, is can you make your application features degrade nicely for those who are slow to update? Again depending on your user base you can be really strict or really flexible here.

Brad Gardner
+1  A: 

Yes, the type of site/application matters, but also where in the infrastructure the technology is used.

For an ASP.NET web site for example it doesn't matter to the users if it uses framework 2.0 or framework 4.0, as the code that uses the framework runs on the server, so the user doesn't have to install anything. You only have to make sure that the framework is installed on the web server.

Another factor is how well used the site/application is. A large site can promote new technology by adopting it early, while still retaining most visitors. A small site has to wait for the technology to catch on before adopting it, to avoid the risk of being abandoned.

Guffa
+5  A: 

the leading edge of technology

Always a problem. Avoid it.

It's really quite simple. You adopt new technology when you're forced to by your customers.

Unless you have a huge market segment already, you cannot adopt a technology because it's cool.

You adopt a technology because folks willing to use that technology are your target market.

S.Lott
Companies are always looking to beat their competition. Newer and better technologies are one way of going about doing so. So I'd say, for a large company, technology is one way of driving innovation and increasing market share.Now for small businesses, I couldn't disagree with you more. A new company should be innovating and doing all they can to break into the market. A large company has to keep their current customers in mind and, at the same time, innovate. A smaller business is at the perfect point for technology adaptation as their customer base is not consistent yet.
Nate Noonen
A new company should offer innovative **value**. Not require novel, unproven, leading-edge technology. It's the overall **value**, not the technology. Indeed, only based on proven **value** can you consider novel technology.
S.Lott
+2  A: 

As for .NET vs something else, it really doesn't matter on the web as you should never require users to install a framework to use your website. The users should see only standard HTML/CSS/Javascript that any modern browser can render.

Flash is ubiquitous enough that you're somewhat safe in using it, but you still should not require it. You can have your pretty Flash front end, but you should provide a fully functional HTML version available. Same goes for Silverlight, but know that it enjoys much less coverage than Flash.

If your site design is going to encourage users to have a particular bit of software, why not have it encourage the use of an HTML5 compliant browser instead?

JC
+2  A: 

You should always use the technology that best fits the overall purpose of the site. Users are a factor, but the most important thing is that the site does what it's supposed to do. If you can't solve a problem without Silverlight, then you should use Silverlight.

As far as technology goes, I would look at the Diffusion of Innovations (http://en.wikipedia.org/wiki/Diffusion_of_innovations) and see which audience you want to target with your product and tailor your technology accordingly.

Nate Noonen
+6  A: 

One thing to keep in mind about web technologies is that it isn't enough to convince your user base to use them, you need to make sure that the search engines can use them as well. If you build your entire site with Flash or Silverlight, then that means that Google, Bing, Yahoo, and the other search engines won't be crawling your site, and consequently your site will not be a destination for people who use web search to find things. While this may not be a bad thing for a movie site for a movie people already know of (eg: http://disney.go.com/toystory/), it's very different for a site for a unknown product. Even AJAX can be a barrier to entry for some users (vision impaired or movement impaired).

The question to ask yourself (and your clients) before recommending a new technology is:

Am I willing to exclude or ignore:

  • People on a different platform (Mac, Linux, Smart phones, Netbooks, Tablets, etc.)
  • People with physical challenges (eyesight, hearing, movement, etc.)
  • People who can't or won't load a browser plugin.

If you're comfortable with the answer, then do it ... but don't expect me to visit your site.

Craig Trader
I would add: Silverlight works good with search engines, it allows you to generate an engine-designated HTML (specially for SEO). And This HTML will be also displayed in case your client doesn't have SilverLight installed. It is much more uglier (than WPF-representation of content), but it works.
Budda
+2  A: 

I struggle with the same problem for more than 20 years.

My experience is that if you keep on running after the latest technologies, you can only lose. I think it is better to have an 'adaptive' strategy, like this:

  • If you are a new start-up company, or you start with a brand new application, use the latest technology
  • Write your application in a modular way, so that different modules/classes can be upgraded without touching the others (see: The Gang-of-Four Design Patterns, Dependency Injection, ...). Keep your application as modular as possible. Don't let the whole application rely on one big framework, because you then tie yourself to that framework.
  • If a module needs to be redesigned (because of major new functionality, ...) see if it makes sense to use a new technology to rewrite the module. Don't force yourself to use the latest technology, but find something that fits your needs.
Patrick