WPF、Windows Forms和Silverlight间的联系和区别

WPF、Windows Forms和Silverlight间的联系和区别

 

 

收到了一封学生的邮件:

===========================

金老师您好:
        最近在学C#.NET,基本语法学习的差不多了,接下来准备学习图形界面设计部分。但是我目前对于.NET的WinForm、wpf、silverlight这三者的关系弄的不是很清楚,一般书中很少介绍wpf和silverlight,网上搜了一下关于WinForm和wpf的区别,有的说WinForm是wpf的子集,有的说WinForm和wpf是共存关系,弄的很乱。想请教一下您这三者之间到底有什么样的关系呢?
                                                                                                                                                                            您的学生
===========================

以下是我对这三者间关系的理解,如果不对,请业界朋友指正。

在Windows中,诸如窗体绘制等功能由GDI实现,放在操作系统内核中。Windows Forms在底层使用的是GDI+。GDI+是GDI的“面向对象包装”,使用C++实现。.NET Windows Forms应用程序中使用的GDI+其实是在C++实现的非托管代码之上又包了一层,从而让我们能使用C#这样的托管编程语言调用GDI+功能绘图。
 
WPF底层使用的是DirectX,就是通常用来开发游戏的那个DirectX。WPF与Windows Forms这两者并没有什么关系。按照微软的意图,WPF是用来取代Windows Form的,所以最新的Visual Studio就使用了WPF开发界面,这是一个很明确的信号。
当然,出于兼容目的,Windows Forms与WPF将长期并存,可以把它们看成是两套独立的界面技术。
 
Silverlight在API层可以看成是WPF的子集,但事实上除了这点之外,Silverlight与WPF并没有任何联系。因为Silverlight应用程序不依赖于.NET Framework,只要用户计算机(或手机)安装有Silverlight运行环境(比如用户通过互联网给浏览器添加了Silverlight插件),就可以跑Silverlight应用程序,并不要求用户安装庞大的.NET Framework。Silverlight运行时环境在API层面也可以看成是标准.NET Framework的功能子集,但它完全是重新写过的,独立于标准的.NET Framework,虽然为了方便应用程序开发,微软努力保持两者在API层面的一致性,但并不排除Silverlight运行时环境日后会拥有全新的为.NET标准环境所不具备的功能。
 
Windows Forms/WPF/Silverlight这三者其实是独立发展的三个技术领域,只不过微软出于方便开发的目的,有意让Silverlight与WPF在应用层面开发体验(甚至包括大部分应用层代码)高度一致罢了。

从开发角度来看,Windows Forms已有多年的历史,高度成熟,拥有大量的第三方控件等各种资源,如果开发“标准”与“通用”界面类型的Windows应用程序,使用它可以获得较高的开发效率和不错的运行性能。

WPF的长处在于它可以开发非常“个性化”的Windows应用程序,你可以不受任何限制地实现你所能“梦想”到的各种用户界面,而且在动画等多媒体方面,WPF优于Windows Forms,另外,WPF的数据绑定机制也比Windows Forms要强大和灵活。WPF的短处在于它对计算机硬件的要求较高,对于硬件配置较低的计算机,其运行性能不如Windows Forms版本。就目前来看,WPF的最佳平台是Windows 7。

Windows Forms和WPF主要用于开发桌面应用程序,Silverlight主要战场是互联网,通常用它来开发RIA的互联网应用程序,或者是跑在手机等智能移动设备上的应用程序。可以这样说,会WPF,不费太多力气,就可以转去开发Silverlight应用程序,两者实在是太相似了,特别是界面层代码,由于都使用XAML,这使我们可以比较容易地为某一应用程序同时开发“桌面版”、“手机版”和“浏览器版”三种版本,而这三种版本其用户界面都可以拥有一致的外观和用户使用体验。




  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
### 回答1: PRISM 是一种用于构建 WPFSilverlight 应用程序的框架。它提供了一组工具和库,用于构建可重用、可维护和可测试的应用程序。其中包括模块化、命令、事件和导航等功能。 MVVMLight 是一个轻量级的 MVVM 框架。MVVM (Model-View-ViewModel) 是一种用于构建 Windows Presentation Foundation (WPF) 和 Silverlight 应用程序的架构模式。MVVMLight 提供了一组简单易用的工具和库来帮助开发人员使用 MVVM 模式构建应用程序。 ### 回答2: PRISM和MVVM Light都是用于构建软件应用程序的框架,尤其是面向WPFSilverlight应用程序的框架。 PRISM是一个由微软开发的轻量级框架,旨在帮助开发人员构建灵活、可扩展和可组合的应用程序。它通过使用模块化的方式来组织应用程序,将各个功能模块分割为独立的部分,使得开发人员可以独立地开发、测试和维护每个模块。PRISM还提供了一套强大的命令和事件系统,以及易于使用的导航和通信机制,帮助开发人员解耦应用程序中的各个部分。 MVVM Light是由Laurent Bugnion开发的一个开源框架,专为MVVM(Model-View-ViewModel)设计模式而设计。MVVM Light提供了一套简洁而强大的工具和库,帮助开发人员快速实现MVVM模式。它提供了数据绑定、命令绑定和消息传递等基本功能,同时还提供了一些额外的扩展功能,如消息总线和IOC容器。MVVM Light的设计哲学是简化开发过程,提供一种高效的方式来开发和测试应用程序,同时保持代码的可维护性和灵活性。 综上所述,PRISM和MVVM Light都是非常有用的框架,可以帮助开发人员构建高效、可扩展和可维护的应用程序。它们在设计理念和功能上有所不同,开发人员可以根据自己的需求和技术偏好选择适合自己的框架。 ### 回答3: Prism和MVVMLight都是用于构建面向对象的(WPFSilverlight、UWP、Xamarin、Windows Forms等)应用程序的开发框架。 Prism是一个由微软基宋体研发的开源项目,旨在帮助开发人员开发可扩展、灵活且易于维护的应用程序。Prism遵循了模块化设计和MVVM(Model-View-ViewModel)架构模式。它提供了一些有用的功能,如导航管理、事件聚合、依赖注入(DI)等。通过使用Prism,开发人员可以更好地组织和分离应用程序的不同模块,使得代码更易于编写和测试。Prism还提供了一套强大的工具和类库,以简化应用程序的开发过程。 相比之下,MVVMLight是一个开源的MVVM工具包,由Laurent Bugnion开发。它被设计用于简化MVVM模式开发的过程。MVVMLight提供了许多有用的工具和类,如ViewModel基类、命令绑定、消息传递等。它还集成了依赖注入容器(如SimpleIoc),使得开发人员可以更轻松地管理应用程序中的依赖关系。 Prism和MVVMLight都有自己的优点和适用场景。Prism适用于大型、复杂的应用程序,它提供了丰富的功能和工具来管理应用程序的不同模块和功能。MVVMLight则更适合于小型、简单的应用程序,它提供了一个简单而高效的方式来实现MVVM模式。 总的来说,Prism和MVVMLight都是非常优秀的开发框架,可以帮助开发人员更好地组织和开发可维护的应用程序。选择适合自己项目需求和团队技术栈的框架是非常重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值