转载:http://blog.csdn.net/fwj380891124/article/details/8085458

微软为了把开发模式从网络开发移植到桌面开发和富媒体网络程序的开发上,微软创造了一种新的开发语言------XMAL(读作ZAML),XAML全称Extensible Application MarkUp Language。即可扩展应用程序标记语言。它在做桌面开发和富媒体网络程序开发中扮演HTML+CSS+JS的角色,成为设计师和程序员沟通的枢纽。

         现在设计师和程序员一起工作,共同维护软件的版本,只是他们使用的软件不一样----设计师使用Blend(Expression设计套件工具中的一个)来设计UI,程序员使用Visual Studio 开发后台逻辑应用代码。Blend就像PhotoShop等设计工具,因此可以最大限度的发挥设计师的特长。使用它,设计师不仅可以设计出绚丽多彩的UI,还可以让UI上包含动画-----虽然程序员也可以做到这些,但从专业性,时间开销以及技术要求上显然是划不来的。更重要的是,这些绚丽的UI动画都会以XMAL的形式直接保存进项目,无需转化就可以直接编译,节省了大量的时间和成本。

  XAML的优点:

          XAML可以设计出专业的UI和动画----好用。

          XAML不需要专业的编程知识,它简单易懂、结构清晰-----易学。

          XAML能使设计师直接参与软件开发,随时沟通、无需二次转化-----高效

          XAML这位翩翩君子的才华可远不止于这些。

          自从应用程序从控制台界面(Console User Interface,CUI)升级为图形界面(Graphic User Interface)后,程序员们就一直追求视图(View,即UI)和业务逻辑的分离。以往的开发模式中,程序员很难保证用来实现UI的代码完全不与用来做业务逻辑处理的代码纠缠在一起。UI代码和业务逻辑代码纠缠在一起通称为UI和逻辑的紧耦合,它往往带来以下后果:

         无论是软件的功能还是UI的设计有所变化或者是出现Bug,都将导致大量代码的修改。

         会使得逻辑代码更加难以理解-------修改往往比重写更困难,因为在修改之前必须要先读懂。

          重用逻辑代码编程了Mission Imposible。

          XAML的另外一个大优点就是:它帮助开发团队真正的实现了UI和业务逻辑的剥离。XMAL是一种单纯的声明型语言,这就是说它只能用来声明一些UI元素、绘制UI和动画(在XMAL中实现动画是不需要编程的),根本无法在其中加入程序逻辑,这就强制的把逻辑代码从UI中赶走了。这样,与UI相关的元素统统集中在程序的UI层,与逻辑相关的代码统统集中在业务逻辑层,形成了一种”高内聚--低耦合“的结构。形成这种结构后,无论是打算对UI进行较大的改动还是打算重用底层逻辑,都不会花费太大力气,这就好比你某一天给A客户做了一个桔子,A客户很喜欢,A客户将自己的产品介绍给B客户,B客户喜欢桔子的味道,但是希望它看上去像香蕉-----这时候,你只需要将桔子的皮撕下来,换成香蕉的皮就可以了,只需要少量的成本就可以获得和之前一样大的收益(对于软件的换肤功能,WPF提供了强大的Template功能,将在后面详述)

2 WPF之XMAL----XMAL概览的更多相关文章

  1. WPF svg 转 xmal

    原文:WPF svg 转 xmal 今天wpf里面要用矢量图,美工出的是svg格式的,需要将svg格式的转换为xaml 1.第一个尝试是安装Inkscape,这个软件可以直接将svg另存为xaml,但 ...

  2. WPF [调用线程无法访问此对象,因为另一个线程拥有该对象。] 解决方案以及如何实现字体颜色的渐变

    本文说明WPF [调用线程无法访问此对象,因为另一个线程拥有该对象.] 解决方案以及如何实现字体颜色的渐变 先来看看C#中Timer的简单说明,你想必猜到实现需要用到Timer的相关知识了吧. C# ...

  3. WPF QuickStart系列之数据绑定(Data Binding)

    这篇博客将展示WPF DataBinding的内容. 首先看一下WPF Data Binding的概览, Binding Source可以是任意的CLR对象,或者XML文件等,Binding Targ ...

  4. 《深入浅出WPF》 学习笔记

    <深入浅出WPF> 序言 1. 什么是WPF    2. 为什么要学习WPF 第一章 XAML概览 1. XAML是什么? 2. XAML有哪些优点 第二章 从零起步认识XAML 1. 新 ...

  5. 04.移动先行之谁主沉浮----XAML的探索

    如果移动方向有任何问题请参考===> 异常处理汇总-移动系列(点) 移动先行之谁主沉浮? 带着你的Net飞奔吧! 链接======>(点) XMAL引入 XAML 类似于 HTML,是一种 ...

  6. C#操作带名称空间的xml

    以前操作xml一般用下面这种方式: 好处是XDocument 能使用linq xmlPath = “path”; XDocument myXDoc = XDocument.Load(xmlPath); ...

  7. C# XMAL与WPF

    通过老师上课的解释和我下课后的网上查询,我了解到了一些关于这三者的关系.XAML是.NET体系开发程序或者网页时前台编程的一种布局方式或者说开发语言,可以比较自由的用标签的方式进行布局,借鉴了HTML ...

  8. wpf XMAL中隐藏控件

    原文:wpf XMAL中隐藏控件 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a771948524/article/details/9264569 ...

  9. 3 WPF之从0开始学习XMAL

    转载:http://blog.csdn.net/fwj380891124/article/details/8088233   剖析最简单的XMAL代码: <Window x:Class=&quo ...

  10. XMAL语法系列之-(2)---WPF控件继承图

    WPF控件继承图 1 FrameworkElement 1.1 Panel(面板类元素) 1.1.1 Canvas 1.1.2 DockPanel 1.1.3 Grid 1.1.4 TabPanel ...

随机推荐

  1. HW5.31

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  2. Sort--快速排序

    快速排序 1 public class QuickSort{ 2 3 public static int Partition(int[] a,int low,int high){ 4 int pivo ...

  3. 使用slf4j取代Apache Commons Logging

    假如你正在开发应用程序所调用的组件当中已经使用了 JCL(之前叫 Jakarta Commons Logging,JCL) 的,还有一些组建可能直接调用了 java.util.logging,这时你需 ...

  4. Redis的探究

    之前大四时候实习的公司有使用过Redis,不过那时所有配置均由主管完成了,而我也只是处于能使用的阶段. 时隔1年多,近期回想起这货,在研究中,想把它整合进现在公司的网站系统中,做做数据快照(已完成)和 ...

  5. hdfs里的文件下载HDFS之fsimage、metadata、edits、fstime(二十七)

    首先,要有这个观念,元数据信息(fsimage + editslog). fsimage是在磁盘 metadata是在内存 ********************fsimage把内存的,序列化到磁盘 ...

  6. A Tour of Go Interfaces are satisfied implicitly

    A type implements an interface by implementing the methods. There is no explicit declaration of inte ...

  7. hdoj 2032 杨辉三角

    杨辉三角 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  8. if/else语句匹配问题

    1: if(*FixedMode == LNG_OUT_FIXED_AMOUNT){ 2: if(NumTemp > MIN_FIXED_AMOUNT && NumTemp &l ...

  9. Dom深入浅出

    Dom1级提供了一个Node接口,该接口将由Dom中所有节点类型(包括元素节点.文本节点.属性节点等12种)实现,而js是作为Node类型来实现的,js中的所有节点类型的继承自Node类型, 所以它们 ...

  10. svn 如何解决冲突

    项目中,往往不止你一人开发,多人开发,难免会有代码的冲突.彼此间谁也不能保证不会修改同个文件.如果修改了同个方法的内容.这时提交到svn是会提示代码冲突的. 当然,冲突是可控的,但不能避免.每次写代码 ...