使用XAML技术的平台目前包括WPF,Silverlight,Windows8等平台,未来的Windows10统一Windows App也使用XAML技术。

前端开发指通过可视化集成开发环境进行用户界面的设计和实现,结合手动编写XML界面描述代码,完成表现层开发的过程。基于XAML技术的前端开发使用的开发环境是Blend,输出是XAML代码。由于目前版本的Blend 2013存在一些问题,需要和VS配合使用。Blend 2015进行了重大改进,较好地解决了各种问题,但还未发布正式版。

下面总结一下理想的基于XAML技术的前端开发方法,部分流程在小范围内进行了尝试和推广,效果还可以,还需全面尝试和推广。

1.  该部分工作的输入是原型和需求。

原型推荐使用Axure RP或Prototyper(该软件对移动开发的支持较好)来制作,非程序员(如产品经理,UI设计师等),可以方便地绘制界面元素并使用可视化的方法表达交互逻辑。

2.  该部分工作的输出是,a. Style层代码,b. View层代码,c. 样式设计文档,d. View和ViewModel层契约-数据绑定接口文档(与后端人员协商编写)。

样式设计文档和数据绑定接口文档,推荐使用UML的方式表达,因为样式和数据皆为层次结构,存在继承和依赖关系,所以UML表达方式最为合适,推荐使用Visio绘制UML图。

Style层和View层主要使用Blend完成,尽量多地使用可视化开发方法,尽量减少手工编写XAML的工作量。

3.  分析原型,理解需求。

全部前端开发人员都要深入理解需求,连要做什么和为什么做都不清楚,是做不好界面设计和实现的。

4.  开会讨论全部原型和需求中的问题,确定无问题,达成一致的理解。

这里可以认为是第0个里程碑,即前端开发工作的起点,所有人都对需求有了一致的理解,尽量避免以后的争论。

5.  讨论整体设计风格和页面结构的设计。

在这个会上可以用头脑风暴的方式根据原型构思页面的细节展示方式,一般使用几层嵌套结构,确定使用几种标题,几种正文,几种主要字体,字号,颜色等。由一个人在Visio中用UML表达清楚,便于以后使用。这其实是制定了初步的标准,以后大家都要遵守。

6.  根据上一步的讨论,一部分人编写样式设计文档并完成Style层底层的代码。另一部分人针对关键部分出几张PS效果图。两部分要能对应。

7.  第一个里程碑,效果图确认

效果图需要领导确认。

8.  效果图修改,同时可创建全部空页面和样式文件的框架,描述各个文件都是干什么用的。

如果使用自定义的界面框架,需引入界面框架并依据框架搭建页面结构。

9.  完成全部页面的控件选用和外层布局(可加入颜色指示),可以把绘制了效果图的页面进一步美化,加入Border等元素,设置并抽取样式放入Style层。

10. 第二个里程碑,控件和布局确认。

需要后端人员确认所用控件以及预想的交互逻辑后端人员是否能够实现。

11.  修改控件问题和不合理的布局,优化布局。

12.  完成全部页面的控件内部模板,样例数据,绑定设置。

13.  第三个里程碑,页面确认。

此时包含全部功能的白页面已经完成,需要项目负责人确认所有页面的功能。

14.  数据绑定接口文档应该已经完成,页面已经可以和后端配合,联调测试。

15.  应用前期抽取的样式到全部页面,进一步设置并抽取样式到Style,完善Style层。

注意人员之间的配合,保证一致性。

16.  进入控件内部模板的修改阶段,深度修改并抽取Style。

可从易到难,内部模板的修改也要抽取样式,保证一致性。

17.  进一步完善控件内部模板的动态效果。

如鼠标移上,按下,选中等状态时的样式,可加入动画提升效果。

18.  可以完成预想的动画或考虑加入动画提升效果。

19.  如已接入真实数据,自测,互测,包括不同窗口大小,分辨率,不同真实数据下的情况,记录BUG。

20.  修改BUG。

基于微软XAML技术的前端开发方法的更多相关文章

  1. 基于微软平台IIS/ASP.NET开发的大型网站有哪些呢?

    首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...

  2. 植入式Web前端开发方法

    上一篇,我讲述了植入式Web前端开发的基本情况,本篇就来探究其开发方法.以下假定CMS只能植入前端代码,并且需求规模是任意大小的. 代码形式 HTML代码是直接植入的毫无疑问,但除非植入的代码非常简短 ...

  3. 基于微软平台IIS/ASP.NET开发的大型网站有哪些?

    首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/Java平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...

  4. (转)基于微软平台IIS/ASP.NET开发的大型网站有哪些?

    首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...

  5. react基于nodejs简单的搭建与开发方法

    只需安装babel命令,即可将react的jsx写法转换成浏览器认识的js写法 1.安装nodejs(百度下载安装即可,自带npm) 2.cmd打开命令行,cd进入在自己的文件夹下 执行命令: npm ...

  6. Web前端开发中的MCRV模式(转)

    作者: izujian  来源: baiduux 摘要:针对前端开发中基于ajax的复杂页面开发所面临的代码规模大,难以组织和维护,代码复用性.扩展性和适应性差等问题,本文尝试以MVC思想为 基础,结 ...

  7. Torque:轻应用背后的大蓄势 微软语音技术厚积薄发​

    Torque,为中国用户而来 此前,"微软车库"公开发布了一系列小而美的产品,它们全部由具有"极客创新"精神的微软员工在工作之外的时间构思和开发.Torque就 ...

  8. web前端开发浅析

    原文地址:http://www.cnblogs.com/babyzone2004/articles/1807381.html 摘 要:前端开发作为一项新的领域,经历的时间随然较短,却显示了强大的生命里 ...

  9. Web前端开发(高级)下册-目录

    多媒体与绘图 多媒体音频格式视频格式 HTML5多媒体支持 <audio>和<video> htmlaudioElement和htmlVideoElement <audi ...

随机推荐

  1. 【转】深入理解Java的接口和抽象类

    深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...

  2. poj-3253-Fence Repair(哈夫曼)

    /* Fence Repair Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19914 Accepted: 6314 Desc ...

  3. jenkins显示html样式问题的几种解决方案总结

    前言 jenkins上使用HTML Publisher plugin插件生成的html报告样式会丢失,需要设置下才能正常显示. 一.样式丢失 1.官方文档的解释如下,参考地址https://stack ...

  4. xsigo systems

    继虚拟化管理软件巨头VMware以12.6亿美元收购云计算网络虚拟化厂商Nicira后,昨日,有报道称,甲骨文也不甘示弱,宣布收购了另一家网络虚拟化技术厂商Xsigo,为这股SDN(软件定义网络)热潮 ...

  5. myeclipse通过数据表生成jpa或hibernate实体

    1. 创建数据库连接 2. 选择表 3. 生成 hibernate mapping 4. 生产jpa

  6. VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”<转>

    用vs2010编写的程序经常会发生的一个问题.在自己的机器上运行的好好的,但是在别的机器上就会发生没有找到MSVCR100D.dll.这是 个很头疼的问题.对于一些代码量几百行的小程序,我不可能要求其 ...

  7. LUA全总结

    ------------------------------------------------------------------------------ --2018.7.21 do --开启或关 ...

  8. python中numpy计算数组的行列式numpy.linalg.det()

    numpy.linalg.det numpy.linalg.det(a)[source] 计算任何一个数组a的行列式,但是这里要求数组的最后两个维度必须是方阵. 参数: a : (..., M, M) ...

  9. 自定义annotation-----转载

    Java从JDK5.0开始便提供了四个meta-annotation用于自定义注解的时候使用,这四个注解为:@Target,@Retention,@Documented 和@Inherited. @T ...

  10. Flume学习总结

    Flume学习总结 flume是一个用来采集数据的软件,它可以从数据源采集数据到一个集中存放的地方. 最常用flume的数据采集场景是对日志的采集,不过,lume也可以用来采集其他的各种各样的数据,因 ...