开发者

Business web-app in .NET - which technology to pick?

开发者 https://www.devze.com 2023-04-03 23:32 出处:网络
Working on porting a Winforms application to the web.This is a business application, but control over end-user\'s browser is not available.Mostly, everyone will be using either IE, Chrome, FireFox on

Working on porting a Winforms application to the web. This is a business application, but control over end-user's browser is not available. Mostly, everyone will be using either IE, Chrome, FireFox on desktops and Safari on IPads.

Application is making heavy use of ListViews, TreeViews, grids, charts, and has an overall "dock-style" interface (Navigation bar on the left, detail pages open up on the right and are tabbed - similar to Visual Studio UI). Have no need for any SEO/HTML-friendly framework, as the app is hidden from search engines.

Looking for recommendations on web-technology. Need either native or 3rd party support for ListViews, TreeViews, grids, charts, and docking UI. Speed to market and simplicity are very important. /Hate/ screwing around with Javascript or non-server technologies.

Silverlight? MVC with HTML5? Plain MVC? Webforms with HTML5? Plan Webforms? 3rd party controls? (Have license to Telerik's and would prefer to stick to them unless there are free/opensource packages)

I think a year ago Silverlight would have been an easy answer, but now I am no longer sure about it due to the ul开发者_JAVA技巧timate rise of Android devices that lack Silverlight support... and it seems that Microsoft is switching its focus from Silverlight to HTML5

So, what is there left instead of Silverlight for business apps?

Thank you!


Although I'm about where you are in my quest for UI nirvana, I'll pipe in with what I am thinking about.

I personally think that if you want to stick with Microsoft but need your app running on non-windows platforms, theres only two games in town. Silverlight and MVC with a good set of client side UI widgets.

My thought process so far can be distilled down to:

Silverlight, by a good margin, is ahead of MVC in terms of ease of development (via true MVVM/fantastic data binding) and "richness" of UI. But, unfortunately for developers, how easy it is for us really doesnt matter to a user.

The downside to SL, as pointed out by others, is that it doesnt run everywhere you want it to. Most specifically, Android and iOS is difficult (although you should evaluate MonoDroid and Monotouch).

MVC, which I feel is the best server side webapp technology, is VERY nice to develop with, but simply doesnt have the stateful client side niceties that SL does, and you have to deal with HTML, javascript, and a stateless client.

Mitigating those comments is that there are quite a few nice frameworks that make javascript almost bearable (im using JQueryUI & wijmo), and provide a half-rich client UI.

It really comes down to reach versus richness. I also see that MS is putting a lot of emphasis onto MVC. Who knows, maybe we will see some nice tools for data binding etc in the future?


if you're planning to support iphone/android/non-win, then say goodbye to silverlight. then again if you're planning to support smartphones, you'd need to do separate designs for small vs large form factor devices. dockable interfaces are too cluttered for small devices.

Technology? HTML5 would be nice but only recent browsers support it, and even then only support bits & pieces of the standard.

MVC vs webforms? doesn't really matter. both just a way of spitting out HTML.

You'll need to do some "screwing around with Javascript or non-server technologies". Telerik offer a lot of the components you mentioned for webforms, though they do tend to bloat.

Based lightly on what your requirements are:

  • list views: native in webforms/mvc
  • tree views: telerik, or a jQuery plugin
  • grids: native html tables work best IMO, or you can do do a databound something in asp.net or telerik
  • charts: free plugin, telerik, dundas, or something like SSRS if you have something of a reporting nature
  • docking ui: reconsider your need for this. If you're still keen asp.net has webparts built in or you can get a package from jQuery UI

overall you may be looking for a "quick" way to web-enable your app, but they are two different beasts and will perform as such. if you do a straight conversion using every plugin available, it will take you a lot of time to learn each component, a lot of page bloat, a lot of bugs, and it will never feel right. my suggestion is to invest the same time learning how to create a proper site. will cost you less in the long run.


I had the similar project and went for ASP.NET MVC 2 + Telerik's free MVC Components, which has good Grid/ComboBox functinality.

I have also used jQuery for some UI stuff. You will have to fiddle with Javascript, but you do it with jQuery, which I think is the new level. as always IE6 was the pain :)


(Sorry for my bad english) I have similar requirements as you and opted for Silverlight. My clients do not use iPads or androids as a work tool BUT some parts of my app will be exposed to be consumed by this devices. For me, it would be much more pain to develop all in html/js just so the app can run on all platforms when my clients use windows/osx 99% of the time.

Also, tablets/smartphones/PCs all have diferente UI guidelines, for me it doesn't make sense this "html/js to run everywhere" thing. Even if using html/js you will have to build custom UI on each platform (at least for desktop/tablets) if you want a decent user experience.

To design the UI in silverlight is easy and mvvm (look for caliburn micro if you go this route) fits well. On the server, I am using RIA Services and exposing a OData feed so other clients can consume the data easily.


Just remember if you go the Silverlight route you're going to leave out Android, and iPhone and Blackberry Devices, and limit just to Windows Phones. Webforms using MVC is always a good option.

I'm always a big proponent of MVC, because of the separation of your components and views, and abstraction of the interfaces. Webforms are nice and you can use AJAX and JQuery integrated with it. Those run on most browsers, AJAX is actually pretty slick on android and iphone safari browsers. I've written ASPX pages that adhere to the different browsers for various mobile devices. It's just simple environment variables you can specify what browser, and what mobile device is being loaded.

Silverlight and WAML pages look great, and portable, but it's just not rampantly available on mobile devices. It's available on different platforms though for the desktop though.

Plus Telerik Suite Comes with Silverlight/WPF, Webforms, and Winforms, and has each comparable Control for all three formats.


One thing I forgot to mention in my earlier answer: if you have any requirements to interact with the device (be it windows/android/iOS/OSX etc), you really must do a native application. Although there is the promise of some of the HTML5 technologies having the ability to do this kind of thing, I 1) doubt it to be honest - cross platform native access? and 2) its gonna be a long way off.

I have opted for writing the UI multiple times: once in MVC/JQueryUI, which theoretically runs "everywhere" (although this everywhere part falls down quickly with different screen sizes/form factors), and a native app for each "interesting deployment scenarios".

I am currently looking at best practices to factor out as much code as possible that is common cross platform. If most of the UI code can be common across UIs, then the UI part could be very small, and optimized for a specific device. If I can keep the UI "dumb enough", shouldnt be too much of a burden, right? :-)

0

精彩评论

暂无评论...
验证码 换一张
取 消