首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为Windows 8构建企业桌面应用程序

如何为Windows 8构建企业桌面应用程序
EN

Software Engineering用户
提问于 2011-12-19 13:41:26
回答 3查看 4.8K关注 0票数 15

我想我对Windows 8用户应用程序开发的期望有了一定的把握。在WinRT之上创建一个新的基于地铁的用户界面,通过市场将它部署到你的客户,每个人都会赢。看起来很简单。不幸的是,我不做那行。

我为一家大型企业开发内部业务应用程序.我们目前使用.NET技术,如WPF和Silverlight,以便创建可以通过web或ClickOnce轻松部署到用户的丰富UI。应用程序可以支持WinXP和Win7,而不需要太多麻烦,我们的开发人员可以使用XAML,这是一种非常可靠的UI技术。

看上去WPF和Silverlight在这一点上有可疑的未来,所以继续在这些方面投资是有点令人担忧的。但是Metro似乎不适合企业应用程序,而且WinRT API对于企业应用程序需要做的“典型”事情非常有限。

如何架构目前部署到WinXP和Win7中的基于XAML的应用程序,以便它们能够在Win8?

上得到支持和发展。

为了这个问题的目的,假设HTML5在ASP.NET之上提供的特性不足以满足我想要创建的应用程序。我知道我可以在一些应用程序中使用HTML5,但是我正在努力弄清楚当这还不够的时候我应该做什么。

编辑1:这是对@Emmad Kareem的评论的回应。我同意Silverlight/WPF在短期内(2-5年)是可行的。然而,我们生产的应用程序具有非常长的寿命(10-20年以上)。因此,从长远来看,某项技术的生存能力是我们关注的一个问题。此外,我们还担心,如果社区认为Silverlight / WPF开发技术已经“死了”,那么开发人员将越来越难找到对这些技术感兴趣的开发人员。我只想明白我的选择,然后睁大眼睛做出决定。

EN

回答 3

Software Engineering用户

发布于 2011-12-19 14:58:40

我将在关于MVVM的书中提到的一件事是如何利用这个模式来创建一个可重用的核心应用程序。您应该为您所针对的各种平台(无论是web、silverlight、phone、WPF或WinRT)创建一个本地UI。但在大多数情况下,您可以封装驱动ViewModel后面的UI的逻辑。

您访问的任何服务都应该封装在平台之间或多或少可移植的接口(Facade模式)后面。接口应该映射到前面的客户端API,并在后面转换为包装服务的API。

这种策略可以帮助您创建一个坚实的核心框架,它只需要一个新的UI就可以在上面分层。把它想象成你的视图模型是肌肉,你的服务是骨架(和器官)。WPF/Silverlight/WinRT形成皮肤。

事实上,我在书中很早就指出的一件事是,MVVM并不像它看上去那么新。海豚Smalltalk有一个类似的模式,他们称之为MMVC (这两个M是应用模型和域模型)。我们今天使用的ViewModel只是来自MMVC的应用程序模型和控制器的组合。事实上,许多开发人员发现,有时将ViewModel分为它的两个组件是有意义的(控制器用于导航和编排多个VM,这样VM就可以保持对其他组件的幸灾乐祸)。

票数 1
EN

Software Engineering用户

发布于 2011-12-19 14:33:50

你说XAML是可靠的,但接着说WPF有一个值得怀疑的未来。除非我遗漏了什么,WPF使用的是XAML,我不认为这两者是分开的。关于WPF可能使用其他一些基础技术,或者微软甚至可能考虑构建另一种构建UI的新方法,我是否错过了一些消息?除此之外,我怀疑WPF会走向何方,但这不是MS第一次淘汰我们的代码.

如果您需要一个丰富的UI应用程序,而且HTML5不会削减它,而且您的组织致力于windows,我认为WPF是最好的选择,因为它是目前最新的/最好的,肯定比winforms.

票数 0
EN

Software Engineering用户

发布于 2011-12-19 19:48:43

我对此的看法是,您不应该过多地关注应用程序的实现细节。如果您从更大的角度来看,可以隔离您的技术依赖关系。通过隔离对例如xaml/wpf/silverlight的依赖,可以确保您可以用下一代技术替换ui组件/技术,从而保证即使在20年的时间内也能保持连续性。这还将有助于使您的系统组件脱钩,并通过执行这样的替换而产生影响。(在此,我假设,为了提供连续性,可以修补解决方案,使其在下一代平台上运行)

提供与这些技术依赖的隔离的另一种方法是启用虚拟化。如果您以这样的方式设计您的应用程序,您就能够在vm中运行它们,您将能够在20年的时间内这样做!

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/125944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档