PSP表格(TP版)

需求分析

【GUI编程语言选择】

  考虑到Java编写GUI效率偏低且界面不算特别美观(即使有Windowbuilder插件帮助),所以我们使用控件更多,开发效率更高,具有集成开发环境的C#(WPF+C#+VS)

【API协作】

  先按照自己的设计思路给出一份简易API文档,然后和部分计算核心组沟通完善API文档。之后的GUI设计将以修改后的API文档为参考进行设计。

新技术快速调研

【WPF】

(百度百科)

  WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

  对矢量图和3D控件有着优秀的支持,支持GPU硬件加速,可以自动识别显示器分辨率并进行缩放。

(知乎某匿名用户,原文地址:https://www.zhihu.com/question/26862663)

先说优点
  1、wpf这个ui框架是很前沿的,包含了很多界面开发的特性,非常灵活,因为个人做界面开发比较多,包括web,iOS,android都接触过,wpf是我认为目前设计的最好的ui界面库
  2、好的界面库有好的ide支持,vs的好用大家都懂得
  3、一个功能多种实现方案,虽说灵活但实际对开发人员的要求更高,需要有更好的设计能力,追求优雅设计,MVVM模式讲究让界面代码尽量xaml化
  4、强大的.net类库支持,ms平台的特性一向是入门简单,精通难,而且方案更新快,开发人员都比较依赖微软更新,开源力量还不够
  5、基于DirectX渲染,渲染效率好,确实有很多优点
再说缺点吧
  1、内存占用高,基于.net的反射机制和wpf的内部机制,你想把控内存真心是难,只能一定程度控制,c++就不一样,内存是可控的
  2、功能太多导致学习成本非常高,传统开发理念需要转换MVVM,但由于控件支持不完善,会出现不伦不类的情况
  3、平台推广不利,这个才是最大原因,可以说是本人在.net多年学了很多,写代码是需要思考才能积累经验的,这种模式不适合互联网的快递跌代节奏,市场从业的机会太少,导致发展缓慢
  4、功能不够完善,ms的客户端技术方案太多了,wpf只是其中一种,本来wp是一个机会,奈何wp又推不起来,个人感觉wp开发功能较wpf缩水厉害,后面又为silverlight加了很多轻量技术方案然后引入wpf,搞得不伦不类,已经把平台分为wpf,sl,wp,win 8 morden ui
  5、平台真心混乱 自从 win8出来以后,我看到了win 8 morden ui,看了下sdk,又是一套api,感觉又是一个坑,果断决定放弃了,因为平台没有市场,去学习毫无意义,太多时间耗费在.net平台上了,感觉微软的策略真心是有问题,也得出一个结论,微软是一个比较喜欢玩技术的公司,跟着玩你会发现真的被玩了,现在看ios开发,反而感觉设计的好简单暴力,有时候给太多技术方案给开发人员不是一个好事情
最后总结
  1、wpf技术是个好东西,是界面开发技术的精华,值得学习
  2、wpf不是一切,是界面开发的一种方案,PC客户端开发坑很多,精通的话门槛很好,广会.net是不够的,底层得学
  3、平台推广不给力是关键

PROJECT | 四则运算UI设计 - PSP表格&需求分析的更多相关文章

  1. PROJECT | 四则运算UI设计 - 项目总结

    [项目Github地址] https://github.com/oTPo/hw2 [项目规划] PSP表格 事项 预计时间(min) 实际花费时间(min) 需求分析 60 60 开发流程分析 30 ...

  2. 40个UI设计工具

    摘要:用户界面设计在持续的基础上不断成长和演变.要跟上时代,你需要关注趋势.新资源和正被实施和谈论的新技术. 导读:用户界面设计在持续的基础上不断成长和演变.要跟上时代,你需要关注趋势.新资源和正被实 ...

  3. 四则运算UI组结对作业报告

    Github提交地址: 小组成员:陈兆庭,陈昶金: 一.编程阶段 清明节开始接触和调研关于UI设计的方法.由于两人的各方面知识储备均不足,在各种东西C#.MFC.Qt中进行调查和讨论,最终因为网上说Q ...

  4. 第一次个人项目【词频统计】——PSP表格

    PSP2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min) Planning 计划 45 40 Estimate 估计这个任务需要多少时间,并规划大致工作步骤 30 20 De ...

  5. psp表格

    陈康杰psp表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 10 10 Estimate 估计这个任务 ...

  6. 分享20个最新的免费 UI 设计素材给设计师

    用户界面设计涉及到很多的创意,灵感以及需要与客户进行有效沟通的技能.良好的用户界面是一致的,可以使网站更容易理解和使用.UI设计的重点在于用户体验和互动,同时易于使用对于一个成功的移动应用程序来说非常 ...

  7. 2017年8个UI设计流行趋势

    设计趋势变化的理由需要考虑各种各样的因素.让我们来一起看看2017年的设计流行趋势吧. 应用界面的设计趋势是不断变化的.随着时间的推移他也在不断的成长,进化.虽然有些趋势还有待检验,但我们还是需要不断 ...

  8. 浅谈UI设计中妙用无穷的深色系背景

    英文:medium 译者:优设网 - 陈子木 链接:http://www.uisdc.com/ui-benefits-of-dark-background# --------------------- ...

  9. 21个免费的UI设计工具和资源网站,不管是web,js,android都

    本帖最后由 hua631150873 于 2014-9-12 18:26 编辑 Lumzy 官方地址:http://www.lumzy.com/ Lumzy是一个网站应用和原型界面制作工具.使用Lum ...

随机推荐

  1. 解决 html5 input type='number' 类型可以输入e

    当给 input 设置类型为 number 时,比如,我想限制,只能输入 0-9 的正整数,正则表达式如下: /^[-]?$/ // 匹配 0-9 的整数且只匹配 0 次或 1 次 用正则测试,小数点 ...

  2. 剑指offer——72圆圈中最后剩下的数字

    题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...

  3. zip压缩详细分析

    该文章转自:http://www.cnblogs.com/esingchan/p/3958962.html (文章写得很详细,让我对zip压缩有了了解,感谢博主,贴在这是为了防止忘了有这么好的文章,侵 ...

  4. ThinkPHP5实用的数据库操作方法

    1.update方法总结 /** * 设置记录的某个字段值 * 支持使用数据库字段和方法 * @access public * @param string|array $field 字段名 * @pa ...

  5. 从模块到python文件的两种用法

    01模块的四种形式 模块 就是从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名是test.py的话,它的对应模块名就是test) 包 用 ...

  6. BigDecimal的操作工具类

    import java.math.BigDecimal; /** * 进行BigDecimal对象的加减乘除,四舍五入等运算的工具类 * @author ameyume * */ public cla ...

  7. Flask理论基础(一)视图函数和URL反转函数(url_for)

    一.视图函数 1.1 基本用法试图函数是 app.route 或者 bp.route(蓝图)装饰器装饰的函数.该函数实现了对URL路径的转换,也就是路由功能,例如下面代码定义了默认url ‘/’ 和‘ ...

  8. GYM 101933E 状态压缩 + 记忆化搜索

    题意:我方有n个士兵,敌方有m个,每方士兵都有一个血量,现在有k轮无差别炮火打击,每次都会从存活的士兵中随机选一人,这名士兵的HP就-1,问对方被团灭的概率有多大? 思路:因为n和m的范围很小,我们可 ...

  9. Apache Tomcat下载、安装、环境变量配置以及项目部署

    前言 针对在本地访问文件或资源出现的跨域问题,可以通过搭建本地服务器来解决,本篇随笔主要介绍通过搭建Apache Tomcat服务器来解决跨域.包括Apache Tomcat的下载.安装.环境变量的配 ...

  10. .net Core使用EFCore连接数据库

    一.SQL Service 1.创建实体类 public class Student { public int Id { get; set; } [Required] [Display(Name =& ...