转载: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. HDU-4622 Reincarnation 后缀数组 | Hash,维护和,扫描

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4622 题意:给一个字符串,询问某字串的不同字串的个数. 可以用后缀数组来解决,复杂度O(n).先求出倍 ...

  2. leptonica 学习笔记2——pixBackgroundNormSimple

    1 pixBackgroundNormSimple 函数功能:自适应背影标准化 位置:adampmap.c /*-------------------------------------------- ...

  3. Android实例-MotionSensor加速度(XE8+小米2)

    结果: 1. 实例代码: unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classe ...

  4. python 错误处理

    在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描 ...

  5. hdu 5504 GT and sequence

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5504 GT and sequence Time Limit: 2000/1000 MS (Java/O ...

  6. php中带mb的字符串处理函数

    int strlen ( string $string ) int mb_strlen ( string $str [, string $encoding ] ) encoding参数为字符编码.如果 ...

  7. APP上架详细流程-2016最新

    注:文章为博主原创,转载请注明出处 由于新项目要上架,并且发现了与以往不同的地方特此总结 原料: 0.MAC一台 1.可用的开发者账号 2.AppID 3.发布证书 4.描述性文件 上架步骤: 一.在 ...

  8. UIDatePicker 之显示中文 年月日

    picker_start=[[UIDatePicker alloc]initWithFrame:CGRectMake(centerView.frame.size.width/-,centerView. ...

  9. python 闭包(closure)

    闭包的定义: 闭包就是一个函数,这个函数可以记住封闭作用域里的值,而不管封闭作用域是否还在内存中. 来一个例子: def happy_add(a): print 'id(a): %x' % id(a) ...

  10. VPN介绍--虚拟网络

      VPN属于远程访问技术,简单地说就是利用公网链路架设私有网络.例如 公司员工出差到外地,他想访问企 原理 业内网的 服务器资源,这种访问就属于远程访问.怎么才能让外地员工访问到内网资源呢?VPN的 ...