views:

62

answers:

1

I'm a .NET silverlight developer. After last project i want to have a rest from this tech and want to learn something new. My next project will be an app for managing workflow of a company.This app will need printing support, export to office formats, document management, maybe authorization\authentication.

Can you suggest what technology should i try or just have a rest and get back to SL?
And should it be a web app or just break it down to multipe desktop programs?

+1  A: 

First off: there's no right answer. If you jump through enough hoops, you should be able to do everything you describe either with Silverlight, WPF, Flash, WinForms, Java, or just straight HTML/Javascript. So other things will need to drive your decision.

But a few observations:

If you need the sort of things that Silverlight gives you (mostly just near painless web access), then, yeah, I'd continue with Silverlight. But some of the things you mention might be a little more complicated with Silverlight than with straight WPF. If I were in your shoes, I'd start by seeing whether WPF would give you what you need. It's close enough to Silverlight that picking it up shouldn't be particularly difficult, and it gives you more flexibility on how you architect your solution.

This may be changing, but my opinion is still that you can get more functionality faster out of a desktop app than you can out of a web application. So unless there's a need for web-specific functionality, my preference is to approach LOB applications with desktop technologies. (Other folks may disagree, of course, and I'm not so convinced I'm right that I'd bother to argue my point.)

Ken Smith
I was pushing for Silverlight/RIA for a project, but backed down (and it was a good decision) to just 'plain' ASP.NET stuff (using a pretty UI toolkit, of course). In our case we couldn't justify the Silverlight client-side requirements. (However, I would rather have developed a Silverlight application :-)
pst
Thanks for answer, yes really WPF has more benefits for this current project, but what will be better, having big program for everyone(warehouse, manager, director etc) or should i divide it in different applications for different people. What is your point of view?
Viktor
That's another good question to which there is no right answer. It mostly depends on how much overlap there is between the various responsibilities. If managers never (or almost never) need to see the same screens as warehouse employees, it may make more sense to develop separate applications. (You get a little more flexibility with release cycles that way.) But my suspicion is that that probably isn't the case. A better approach might be a single application which modifies its UI to show which options are available to which users, and perhaps highlights relevant user-specific options.
Ken Smith
I'm now thinking of a modular app, and also i think i'll need authoeization/authentication to determine which modules to show. I think it's a good solution for this case, doesn't it?
Viktor
That certainly seems like a reasonable approach. You'll probably want to look into the latest Prism release (which isn't finished yet, but probably will be before your latest app is done). http://10rem.net/blog/2010/10/05/prism-v4-%E2%80%93-drop-9-coming-wednesday-morning Prism helps you a lot with the modularity of your application. If you don't want the full overhead of Prism, you should also investigate MVVM Light: http://www.galasoft.ch/mvvm/getstarted/
Ken Smith
Thanks for your suggesions. I think i'll use Prism because i have some experience with it.
Viktor