views:

5085

answers:

12

We need to build an administration portal website to support our client/server application. Since we're a .Net shop the obvious traditional way would be to do that in ASP.Net. But Silverlight 2 will be coming out of beta a good while before our release date. Should we consider building the whole website in silverlight instead, with a supporting WCF backend?

The main function of the portal will be: users, groups and permissions configuration; user profile settings configuration; file upload and download for files needed to support the application.

I think the main reason for taking this approach would be that we have good experience with WPF and WCF, but little experience in ASP.Net. Either way we would have to learn ASP.Net or Silverlight, and learning Silverlight seems a more natural extension of our current skills.

Are there any big no-nos from the experience of StackOverflowers? What are the big positives?

A: 

ASP all the way. You should only use silverlight/flash etc when text can't do what you want it to do - e.g. display video.

IainMH
Iain, Why though? In my opinion Silverlight has a much better programming model than HTML/JavaScript. Why shouldn't I use it?That's what I'm trying to find out.
Samuel Jack
I think that there are WAY too many things that "text can't do" besides displaying video. ASP all the way is misguiding Sam, because it really depends.
Martín Marconcini
@Sam The web is html. Html is text. Big fat binary lumps isn't the best way to render text.
IainMH
@Sam If you are programming for the web, embrace HTML and JavaScript. Don't let the webforms ASPX experience keep you away from new AJAX frameworks.
AlexanderN
+14  A: 

I would recommend against building a pure Silverlight site.

Silverlight suffers from the same issues as Flash does: Unintuitive Bookmarking, issues with printing, accessibility issues, not working back buttons and so on.

Also, you would require your users to have Silverlight installed or at least to have the ability to install it.

In controlled environements (eg. in large companies or health care) or on mobile devices, this might not be the case.

pilif
A: 

There are some downsides with developing a site completely in Flash / Silverlight, but if those downsides won't matter to you or won't have an impact then there is nothing stopping you. Choose whatever tool you think meets your needs more fully. I wouldn't be put off creating a site purely in Silverlight based on the downsides, because it brings a lot more positives to the user experience.

Mark Ingram
+5  A: 

It sounds like your problem is that you need a rich-client admin application. Why not use click-once?

Keith
+8  A: 

Depends on your goals. If administration portal is part of application and will only be used from computers where your application is installed, there are plenty of advantages of going fully Silverlight - or even WPF.

But if you can see a scenario where it will be used either from random PC or by random person, fully functional HTML/Javascript version is absolutely necessary.

Some reasons are:

  • Most people don't have silverlight and you'll earn a good load of swearing if they have to download and install it. Some people who have it installed keep it disabled (together with flash and sometimes even images) to avoid distractions and speed up browsing.
  • When HTML site fails, user gets error page and reloads. When silverlight fails, it can hang or crash.
  • HTML is what is expected - both by users and web browsers: back and refresh buttons work as they should, hyperlinks and forms work as expected.
  • Slow internet is still very common, both in remote areas and mobile devices.
ima
+12  A: 

I would definitely go for a full Silverlight application, specially if you have good experience from WPF. You will be able to reuse your knowledge from WPF, and should be able to pick up Silverlight fairly quickly. I've been working with Silverlight since Beta 1, and the current Beta 2 is of solid quality. I guess it's safe to assume that a RTW version is just around the corner.

Pilf has some valid point, specially around printing. For that I would probably use SQL Reporting Services, or some other reporting framework, on the server side, and then pop up a new window with printable reports. For linking and bookmarking the issues are no different than any other AJAX application. I did a blog post today about how to provide deep linking and back-forward navigation in Silverlight.

Silverlight also has all the hooks needed for great accessibility support, as the UI Automation API from WPF is brought into Silverlight. I don't know if the screen reader vendors have caught up yet. The styling/template support in Silverlight makes it easy to provide high-contrast skins for visual impaired users if that is a concern.

Jonas Follesø
Jonas, Thanks for the Link on back-forward navigation: that should be very helpful.
Samuel Jack
A: 

The previous comments have dealt with most of the downsides of using Silverlight for a site like this and I agree. If you're determined to have rich-client style development and your audience is small (for admins only) then I'd probably recommend WPF over Silverlight as it currently provides a richer set of tools and controls.

If you stick with ASP.NET have you looked at Dynamic Data - it's ideal for building backend management sites with little effort.

Simon Steele
+5  A: 
GateKiller
I said the same thing and got voted down to -2. Heretics. :'-(
IainMH
@IainMH Perhaps you should have said something original?
GateKiller
A: 

I've seen "Silverlight only" websites at Microsoft and they are pretty impressive. But again, the demos were there to exploit the full potential of what Silverlight can do. The moment you need something different you may be out of luck. I don't see Silverlight like Flash except in the way they are installed/seen. But the Flash/ActionScript backend is really bad compared to what Visual Studio can offer with .NET

Ask yourself why would you like to use Silverlight? Fancy effects or programming model?

Martín Marconcini
+1  A: 

Using a plugin for your website makes it slow, and requires the user to have the plugin installed. Silverlight for instance rules out all Linux user. Also, since Silverlight is pretty new, there is no telling how committed Microsoft will be to keep the platform alive if it doesn't pick up soon.

I'd stick to plain old HTML with server side scripting.

Also, for public websites: Flash and Silverlight can't be indexed by any search engine, so good luck with writing tons of metadata if you want any visitors at all.

wvdschel
I'm not sure he wants random visitors... its an administrative app. Also, while it wasn't true when you wrote this, Moonlight is out now so Linux users can indeed run Silverlight apps.
Sailing Judo
+1  A: 

Silverlight is a good choice for an internal-facing portal, just as it would be for a public-facing portal if you've already evaluated your project and have decided to go forward with a web portal. You are free to integrate Silverlight components within an existing ASP.NET application (i.e. the "islands of richness") approach, but if you have the ability to build a new project from scratch, don't discount a completely Silverlight solution as a valid choice where you would have went with a traditional ASP.NET portal. Silverlight is RTW now, so if this decision is still on the table, you know you won't have to deal with breaking changes going forward.

Daniel Crenna
+3  A: 

On the topic of remote andministrators, another poster stated that was an argument in favor of HTML if the admins were on a slow connection. I would argue that depending on the type of information, it may be more efficient to use Silverlight. If you have an ASP.NET datagrid populated with server side data binding, you can be downloading a ton of markup and viewstate data. Even if you're using an alrternative to DataGrid that's lighter on the ViewState, you will still have a lot of HTML to download.

In Silverlight, once you get the XAP down, which is probably going to be smaller than the corresponding HTML, the XAP is cached and so you shouldn't have that cost every time, and you'll just be retrieving the data itself.

For another example, let's say you have a bunch of dropdown lists on one of your forms which all have the same values in the list. In Silverlight, you can get these values once and bind them to all of the dorpdowns, in HTML you will have to repeat them each time.

This will get better with client side data binding in ASP.NET, which follows a very similar model to Silverlight and WPF for data binding.

Overall, I would also think that you would need to write less code for the Silverlight implementation which can increase productivity and reduce maintenace costs.

Bill Reiss