We're starting a project to redo our开发者_JS百科 ERP software. It will be quite sizeable, consisting of several modules. It will be used to open new project, enter some parameters, choose parts, and produce a quote. It will also have a custom CRM module. In four months our target is to develop this for desktop, but later on we'd like to port this to the web. So far we've been using VB2010 WinForms with .NET4 and Entity Framework for the DB access. We also use DevExpress controls.
What is the best technology / pattern to use so that our project is easily portable to the web later on?
We briefly looked at LightSwitch and it seems to offer the choice of deployment to the Web or Desktop, but the UI seems limited to templates, and it isn't compatible with DevExpress controls. Is there anything along these lines but more robust - preferably one that would let us work with DevExpress and Entities?
Any suggestions are welcome.
Fundamentally, the web and the desktop are very different targets. Web applications are generally stateless views into stateful systems and use a request/response architecture, whereas desktop applications are stateful and usually event-driven.
That being said, if LightSwitch is too limited for your purposes (not entirely surprising, unfortunately), then your choices in the .NET world are WinForms and WPF.
In general, WPF is a better choice, as it's the direction that things are moving (a declarative user interface defined mostly, if not completely, in XAML) and the toolset is very similar to Silverlight, so you'll get 1.75 for the price of one. The downside is, compared to WinForms, it's less mature (in both the positive and negative sense of that term).
That being said, DevExpress is an excellent desktop application toolset and their support for WPF is (from what I gather, as I'm primarily a WinForms developer) very good.
精彩评论