Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何构建一个';可翻转';应用程序?_.net_Wpf_Silverlight_Xaml_Crud - Fatal编程技术网

.net 如何构建一个';可翻转';应用程序?

.net 如何构建一个';可翻转';应用程序?,.net,wpf,silverlight,xaml,crud,.net,Wpf,Silverlight,Xaml,Crud,构建一个WPF(Silverlight)应用程序,使其能够在网络和桌面之间来回翻转,这(以及一些指导)的可行性如何 也许有些背景是合适的 我是一个非营利组织的独立开发者。我只开发具有很长生命周期的内部应用程序,并不断修改和更改业务规则或要求例如,我在这里的第一个项目是将现有的ASP.net(2.0)应用程序转换为winform应用程序,以允许在现场断开连接使用 现在,如果我当时只知道我现在知道的(或认为我知道的),我可能不需要问这个问题,但是,我离题了 我最近在Twin Cities Code

构建一个WPF(Silverlight)应用程序,使其能够在网络和桌面之间来回翻转,这(以及一些指导)的可行性如何

也许有些背景是合适的

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

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

我最近在Twin Cities Code Camp上被介绍给Silverlight 3和XAML世界,其中一位演示者正在从Silverlight到WPF交替使用一些UI代码

现在,我马上就知道Silverlight是一个子集,不能完全互换。然而,这让我思考。如果我使用WPF并从winform重新编写我们的核心应用程序,事实上,这是否会使我能够使用XBAPs,并允许我的应用程序在几乎没有更改的情况下,基于Web和/或桌面,具有相同的UI和业务层

  • 我需要考虑什么 允许那种 灵活性
  • 任何人都可以得到任何指导 报价
作为补充说明,我们75%的应用程序在某种程度上、形状或形式上都是CRUD应用程序的变体,使用中央SQL Server作为数据存储

我发现下面的文章也有助于推动车轮转动


编辑 我非常感谢大家的回复,我肯定会深入了解Silverlight的浏览器外功能

我最初的问题是想问的是,我将如何使我的UI尽可能“可翻转”。我知道浏览器外可能允许一站式应用程序,但asside将以某种方式使用XAML,允许我在Web和桌面应用程序中重复使用相同的UI


在切线上;有人能提供Silverlight和某些类型的复制吗?

你真的应该看看浏览器外的Silverlight应用程序。请参阅此博客帖子:

看起来这可能正是你想要的


注意:浏览器外的Silverlight应用程序仍然像浏览器内的Silverlight应用程序一样完全处于沙盒状态,这与WPF应用程序不同,WPF应用程序是完全信任的,可以完全访问用户的机器。此外,浏览器外Silverlight应用程序确实支持“断开连接”使用,并提供API来确定网络可用性

对于您来说,最好的选择是在Silverlight中开发应用程序,并利用浏览器外(OOB)功能。OOB功能允许您在桌面上安装Silverlight应用程序,以便它可以在脱机模式下运行。您可以利用其中包括业务应用程序模板的功能,使您能够非常快速地创建CRUD类型的应用程序

对于这种方法,您需要在sql数据库前面有一个web服务层。然而,无论如何,这应该是存在的

对于脱机模式下的数据,可以使用独立存储(如注释中所述)。以下是有关该主题的几个链接:


在我当前的项目中,我们将查找表缓存为脱机模式下隔离存储中的集合。当用户联机时,我们刷新该数据。对于事务性数据(如订单),我们不缓存它们,但我们允许用户离线创建新数据,然后在它们恢复在线时将其添加到系统中。它现在对我们来说运行良好。

一个偶尔连接的Silverlight应用程序将是一个很难编写的应用程序。持久存储的唯一优势是隔离存储

XBAP也一样

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

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


可以实现多目标WPF和SL,但这并不容易。查看该项目,该项目包括指导和支持多目标的VS附加组件。

Silverlight OOB正是您所需要的。真的,这让我很兴奋,但请参阅我对Bryant帖子的评论。您可以在脱机状态下使用隔离存储来保存数据。此数据存储功能强大,不会自动清除。但是,用户可以选择从隔离的存储区域删除数据,但只要不这样做,数据就应该是安全的。此时,脱机模式下的数据有多可靠?winforms版本使用安装在每台机器上的SQLExpress,并使用合并复制来同步两个db,我现在认为这是严重的过度使用。存储的持久性如何?i、 e.关闭系统您可以使用隔离存储。它应该通过重新启动等方式保持。