如何构建一个'可翻转的'应用程序?

时间:2009-11-05 19:40:50

标签: .net wpf silverlight xaml crud

以可以翻转的方式构建 WPF Silverlight )应用程序是否可行(和一些指导)从Web到桌面来回?

也许某些背景是有序的。

我是非营利组织的唯一开发人员。我只开发具有很长生命周期的内部应用程序,不断修改和更改业务规则或要求。 例如,我的第一个项目是将现有的 ASP.net 2.0 )应用转换为 winform 应用允许在现场断开连接使用。

现在,如果我只知道我所知道的(或者我认为我知道),我可能不需要问这个,但是,我离题了。

我最近在Twin Cities Code Camp中介绍了Silverlight 3和XAML的世界,其中一位演示者使用了一些从Silverlight到WPF可互换的UI代码。

现在,关于蝙蝠,我知道Silverlight是一个子集,并不完全可以互换。从来没有,它让我思考。如果我使用WPF并从winform重新编写我们的核心应用程序,那么事实上,我可以使用 XBAP 并允许我的应用程序(几乎没有更改)基于Web和/或桌面上相同的用户界面和业务层?

  • 我需要考虑哪些因素 允许那种 灵活性?
  • 任何人都可以获得任何指导来源 提供?

作为旁注,我们所有应用中有75%是以某种方式,形状或形式变体的 CRUD 应用,并以中央SQL Server作为数据存储。

我发现以下文章也有助于让车轮转动HERE


修改

我非常感谢这些回复,并且我将深入研究Silverlight的Out Of Browser功能。

我原来的问题试图询问的是如何让我的用户界面尽可能“轻浮”。据我所知,Out Of Browser可以允许一站式商店应用,但是以某种方式帮助我使用XAML,允许我为Web和桌面应用重用相同的UI?

在切线上;任何人都可以在Silverlight和某种类型的复制上提供任何内容吗?

3 个答案:

答案 0 :(得分:6)

听起来您最好的选择是在Silverlight中开发应用程序并使用Out Of Browser(OOB)功能。 OOB功能允许您在桌面上安装Silverlight应用程序,以便它可以在脱机模式下运行。您可以使用包含业务应用程序模板的.NET RIA Services,以便您快速创建CRUD类型的应用程序。

对于此方法,您需要在sql数据库前面有一个Web服务层。但是,无论如何都应该存在。

对于离线模式下的数据,您可以使用独立存储(如注释中提到的Nate)。以下是该主题的一些链接:

在我当前的项目中,我们将查找表作为集合缓存在独立存储中以用于脱机模式。当用户上线时,我们刷新该数据。对于事务数据(如订单),我们不会缓存它们,但我们允许用户离线创建新的数据,然后在它们重新联机时将它们添加到系统中。它现在对我们很有用。

答案 1 :(得分:4)

你应该真正看看浏览器的Silverlight应用程序。看到这篇博文: http://wildermuth.com/2009/03/18/Enabling_Out-of-Browser_Support_in_Silverlight_3

看起来这可能正是您所寻找的。

注意:浏览器外的Silverlight应用程序仍然像浏览器中的Silverlight应用程序一样完全沙箱化,而WPF应用程序完全信任并且可以完全访问用户的计算机。此外,浏览器外的Silverlight应用程序支持“断开连接”使用,并提供API以确定网络可用性。

答案 2 :(得分:2)

一个occaisonlly连接的Silverlight应用程序将成为一个熊写。耐用存储的全部功能都是隔离存储。

与XBAP相同。

您是否需要跨平台支持您的应用程序?

为什么不直接使用ClickOnce WPF应用程序,并将其设置为能够在实时连接与服务层和断开模式之间切换?

可以完成多目标WPF和SL,但这并不容易。查看Prism项目,其中包含指南和VS插件,以支持多目标。