首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silverlight和WPF兼容性

Silverlight和WPF兼容性
EN

Stack Overflow用户
提问于 2011-01-31 22:05:47
回答 2查看 465关注 0票数 8

我们正在规划一个应用程序,将在Silverlight和WPF中开发。

我想知道,既然我们将用XAML实现接口,那么它在这两种技术中是否都是兼容的?

在从一种技术移植到另一种技术时,我们应该预料到什么类型的问题?

EN

回答 2

Stack Overflow用户

发布于 2011-01-31 22:54:12

我已经构建了一个双重目标的silverlight / wpf应用程序。它不像将一个移植到另一个那么简单。

你的第一步应该是查看文档,了解wpf和silverlight的不同之处,以便更好地理解你的问题,XAML Processing Differences Between Silverlight and WPF。不要止步于此。了解基于不同应用程序环境发挥作用的设计模式。现在你开始对你正在处理的东西有了一个概念。

在为wpf和silverlight构建UI时,必须非常小心所使用的控件和命名空间。共享UI代码可能非常乏味,在适用的情况下,创建两个使用共享模板的单独UI层通常更容易。富客户端应用程序中的许多UI功能将与silverlight应用程序中的功能有所不同。您可能会在wpf应用程序中提供更丰富的数据密集型视图,而不是在silverlight应用程序中提供更简洁的视图。最终,您可能能够实现相同的目标,但这将比仅重定位和部署更困难。

如果您正在从头开始构建应用程序,那么我建议您同时构建wpf应用程序和silverlight应用程序。通过这样做,您将有机会抽象出在不同环境中使用的服务层和数据访问策略。Silverlight可能需要通过web服务访问数据,而您的wpf应用程序可能会与本地数据库实例通信。这可以很容易地完成。使用IoC容器或其他工具注入适当的服务实现。这一领域提供了最大程度的代码重用的机会。您可以创建要在两个UI之间共享的所有视图逻辑和服务逻辑。您还可以创建共享业务逻辑和数据访问逻辑。

如果您的富客户端应用程序中没有本地数据存储,那么忘记下一段。

如果你计划有一个偶尔连接的离线客户端(wpf app),你可能不得不想出某种同步策略和架构。根据您的数据结构的复杂程度,这可能会相当困难。使用可用的框架构建复杂的同步逻辑是一个P.I.TA。你可能不得不构建自己的框架,或者生活在另一个框架的限制下。

一句忠告:从测试开始,以测试结束

票数 2
EN

Stack Overflow用户

发布于 2011-01-31 22:12:59

最终,Silverlight只是WPF实体的一个子集,因此当移植到Silverlight时,您将倾向于发现WPF中的一些可用元素不存在,这些东西包括:

在Silverlight.

  • Finer中缺少某些绑定支持来调整Silverlight.

  • Storyboards中不存在的依赖项属性的方式是使用Silverlight而不是Triggers在代码中触发的。

  • 和Silverlight使用不同的核心库,这可能意味着无法在WPF/Silverlight applications.

  • There之间共享库。与WPF相比,Silverlight中可用的内置控件较少。

诸若此类。

我猜想,你最终遇到的最大问题将是你的自定义控件的移植,就像你的许多其他代码一样,这将在很大程度上是可转移的,但在标记和代码背后都有一堆明显的警告。你可能不得不调整大多数WPF控件以在Silverlight中编译,改变模板、资源等的TargetType值,并用一个控件替换另一个控件(或者有时不得不创建自己的控件来实现某个目标,例如Silverlight中缺少的UniformGrid )。

我想发布链接,但其他人似乎已经暴露了你需要知道的关于网络的一切。玩得开心。

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

https://stackoverflow.com/questions/4851774

复制
相关文章

相似问题

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