Prism V2之旅(1)

概述

如果你在开发wpf程序,应该听说过The Composite Application Guidance for WPF(以下简称prism)

总而言之,prism是帮助你开发复杂的wpf应用程序的。希望在看完此系列教程以后能对你有所帮助.

从去年正式版发布至今,将近快半年了.silverlight 2正版的推出.prism也开始支持silverlight,而且这次是同时支持wpf和silverlight.这样便统一了wpf和silverlight的编程,代码的移植也更加的方便.现在prism最新的版本是Prism V2 - Drop 8.相对于第一个版本发生了一些变化.本文则基于Prism V2 - Drop 8这个版本进行介绍.如果你还在用7月份的那个版本可以看周银辉写的教程.

以下说明三个最基础的概念.

一.被引导的Windows窗体Shell

wpf程序在启动时,需要一个宿主容器,一般情况下是System.Windows.Window,以下是一个刚创建的窗体.

<Window x:Class="HelloWorldSample.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Window1" Height="300" Width="300">
  <Grid>
    
  </Grid>
</Window>

默认情况下,System.Windows.Application会通过设置StartupUri来运行主窗体.

<Application x:Class="HelloWorldSample.App"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  StartupUri="Window1.xaml">
</Application>

接着随着prism框架的加入,运行主窗体的方式改变了.因为prism要在窗体运行之前做一堆事情,来为框架可以做的事情做铺垫.所以我们要去掉StartupUri,手动启动窗体. prism通过一个名为Bootstrapper类作为引导程序,这里我们先不管他做了什么,只知道他起了程序的引导作用.

通过Bootstrapper的引导,这个窗体就不再仅仅是一个单纯的窗体了,这个窗体我们也可以称为Shell,也可以理解为一个壳的意思.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索程序
, 窗体
, silverlight
, 版本
, wpf prism
, prism
一个
泰坦之旅汉化补丁v2.7、太空旅客v2、天之传说v2.1、千年之战v2.1、天之传说v2.1隐藏英雄,以便于您获取更多的相关知识。

时间: 2024-09-24 06:07:38

Prism V2之旅(1)的相关文章

Prism V2之旅(2)

在这里我们统一prism里面一些名字的称谓. 1.Shell 主程序容器 2.Region 内容区域 3.Module 模块 4.wpf 不是特殊情况,就是指wpf和silverlight 一.wpf的内容控件 继承自ContentControl控件的,我们称之为内容控件. <ContentControl Content=""></ContentControl> ContentControl控件定义了一个Content,在没有框架的情况下,也可以将其作为一个内容

prism v2之旅(7)

这篇继续介绍Module的功能. 第5篇已经介绍过模块的一些基本功能了,这篇介绍模块在silverlight的特殊应用. silverlight的项目生成文件是xap文件,其提供了一个非常方便的功能,即相互的xap文件可以相互加载,就如flash的swf文件一样可以动态加载.建议你在看下去之前先看一下TerryLee写的这两篇文章 这里我简单的总结一下silverlight程序初始化的步骤.总目标是要拿到xap里面的UserControl 1.先加载xap文件,xap文件包括一个xaml文件和一

Prism V2之旅(4)

这篇向大家介绍一个在wpf中非常实用的功能Attach Behavior.我们称之为附加行为. 附加行为在Web领域的流行 如果你知道asp.net ajax框架就一定会知道AJAX Control Toolkit.虽然里面的很多功能华而不实,但这种实现方式确实非常值得学习.你可以再次打开其展示的网站回顾一下其用法,如下面代码的方式 <asp:TextBox ID="TextBox1" runat="server" /> <sample:Focus

Prism V2之旅(3)

上篇介绍了Region的基本应用,这篇接上篇,继续介绍关于Region的相关应用-RegionAdapter 1.预先实现映射关系RegionAdapterMappings RegionAdapterMappings对Control和RegionAdapter做了一个映射,这个映射是在Bootstrapper引导程序中完成的. protected virtual RegionAdapterMappings ConfigureRegionAdapterMappings() { RegionAdap

Prism V2之旅(6)

这篇来讲事件.事件主要用来交互. 监听事件 我订阅了一些blog的rss,如果我订阅的blog发布了新的文章的话,系统(就是抓虾)就会帮我抓取新的rss信息 很好理解,一方订阅(Subscribe),一方发布(Publish). prism的事件 prism的抽象类EventBase实现了事件的订阅和发布的操作.CompositePresentationEvent类继承自EventBase做了进一步封装,其是一个泛型类,我们可以通过CompositePresentationEvent来传递一个参

Prism V2之旅(5)

这篇来介绍Prism中的很重要的一个功能模块化. 基本概念 模块化的概念类似于现在网上比较流行的Widget,如下例子 google的个性化页面 vista的sidebar 他们都有如下特性: 1.模块之间没有关联,模块之间不会相互引用 2.可插拔(可随意增删改模块)

基于wpf的相关设计问题-ViewModel

prism v2正式版本已经发布,有兴趣的可以去研究一下.框架给了我们一些实用的功能参考,并不代表实 际开发就不会遇到问题.有些人以为只要套用了框架,开发效率就会提升很好,就好比有人以为只要我掌 握了设计模式,开发效率会提升一样.框架只是为我们解决一部分常用的问题.但对于不同系统的设计总 有些不同.本篇将讨论在wpf中主要使用了一些设计方法. 一.Model-View-Presenter MVP模式现已经非常常用,如果你不熟悉请参考此文MVP 模式实例解析,我把我自己理解的相关类列出来 . 我来

我的WCF之旅(7)

我的WCF之旅(7):面向服务架构(SOA)和面向对象编程(OOP)的结合 - Part II 4.Host Service:http://localhost/Artech.InheritanceHierarchy 现在我们完成了Service的定义,现在我们来Host我们定义的Service,这次我们通过IIS的方式来host service.我们首先在该Website中引用Artech.InheritanceHierarchy.Service Project.然后为FullWhetherFo

我的WCF之旅(7):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的继承

当今的IT领域,SOA已经成为了一个非常时髦的词,对SOA风靡的程度已经让很多人对SOA,对面向服务产生误解.其中很大一部分人甚至认为面向服务将是面向对象的终结,现在的面向对象将会被面向服务完全代替.在开始本Blog之前,我先来谈谈我对SOA和OO的区别,首先申明,这只是一家之言,欢迎大家批评指正,并且关于SO的谈论不是本Blog的主题,只是主题的引子,在这里只是简单讨论而已 . OO和SO之间具有共同的部分,在运用的领域上存在交集,只有在基于他们交集层面上谈论谁是谁非才有意义,下面是我对SO和