好多技术人员都有一个通病,不关注用户的需求,产品的可用性,只看使用的技术的新不新,潮不潮,这就是所谓的技术发烧友。
这段时间,断断续续的开发一个WPF的软件,也拿出来Show一下。要不放在硬盘里就发霉了。
热点一:SOA的分布式理念
现在的开发理念,不管是企业级的ERP,还是网站式的应用,都涉及到了SOA的分布式。就拿一个比较典型的网站来说吧,做网站的童鞋们对CAS,SSO这些关键字并不陌生吧,实质就是应用了SOA的理念,把一个网站平台的认证授权单独抽取出来独立成一个系统,其它业务网站的认证授权都以这个为基础,实现了单点的登录,授权。其实在企业级的ERP中,我们也是这么干的,我们把认证授权提取成一个独立的基础平台(这个甚而平台有可能包括:公共基础数据系统,消息系统,工作流,报表)的一个子系统,其它业务系统都围绕着这个基础平台进行开发。如下图所示,把每个业务系统的权限都提取出来,放在基础平台。
因为这是一个基础开发平台,所以必须为别的应用程序留下服务接口,方便的与别的应用程序通信,实现其软件的价值。
热点二:WCF的安全机制(拦截器)
我们把通用的功能都提取出来组成了一个基础开发平台,以后的业务系统都只关心业务固然是好。不过有点乌托邦了。你想想,业务系统与基础系统怎样通信?怎和样保证通信的安全,这个问题曾经困扰了我好久。系统之间的通信,大家不约而同的可能都想到了Web Service或者WCF吧,不过怎样保证Web Service,WCF的安全呢?我还看到过有人用javascript来调用web Service(Web Service做的是CRUD的操作),这是把自己的衣服脱了赤裸裸的让别人来攻击,给我吓出了一身冷汗呀!
那我们怎样来保证Web Service 或者WCF的安全呢?最笨的方法可以为每个WCF或者Web Service定义两个参数(一个用户名,一个加密码的密码), 或者再改进一下定义一个Token的参数(这个方法我这样做过,鄙视自己一下),有的为了代码看起来更优雅一些,在请求服务时把这个Token写在Header里。然后在执行Web Service 或者 WCF的主体之前,根据传过来的参数在数据库里查询一下,判断这个请求是否有权限。不过一些中大型的系统,一般都会有上百甚至几千个Web Service,每个服务都定义一个参数,或者在Header里定义一个键值对,是不是显得代码很臃肿呢?我们针对这样的问题,我们采用WCF特别的机制拦截器。 WCF中的拦截器其实就是AOP的一个实现,当然这个实现我们也可以自己来写。
在调用每个Web Service或者WCF之前,我都加一个Token在Header里,这个动作,我们完全可以公用,就是采用AOP技术。
在公共基础平台接收到请求的时候,同样可以用AOP的技术,判断Token是否有效。具全实现看源码。
热点三:WPF
在bs结构的系统中,HTML5的UI比较有前景,在cs结构的UI中,我想WPF应该有她独特的优势,在这儿我们暂时不讨论平台的好坏,技术优劣。且看我怎样用WPF来实现一个软件的UI。
1)个性化的菜单:
2)炫耀的表单验证
3)自定义,动态生成xaml的模板
4)目前正在用mvvmlight改写原有的代码。
这些亮点都不得不让我用WPF,这是一个技术爱好者的执着追求,是我的理念。
热点四:Code First
我们什么SOA, AOP, IOC等热点技术都用上了,千万不要拉下了ORM,ORM有Ibatis, hibernate,daper等,但是从性能,可使用性上来说各有千秋,没有优劣,但是我感觉在.net平台上,只有entity framework才是真正的可用orm。entity framework有三种模式,mode first, database first, code first。我为什么在这个项目中选择code first是有原因的。因为我定义的实体,既想作为生成数据库的定义,又想作为WCF中数据传输的数据契约。往往单方面从一个技术角度来看并不难,但是技术与技术叠加,就会出现很多稀奇的问题。我上一段代码片段:
其中红色的是WCF数据契约的标识,蓝色的是Code First的数据定义。把这两种定义都集中在Model上,减少了业务层代码,业务层重点放在了处理业务上。
相关推荐
本文将对GPS软件开发的关键技术进行详细探讨,重点分析卫星星历的计算、GPS定位的数学模型以及如何在软件开发中应用这些技术以提供高效的定位服务。 首先,需要了解GPS卫星星历的重要性。星历是卫星运动轨迹的数学...
软件系统设计技术方案(解决方案) 在软件系统设计技术方案中,需要考虑多种要素,以确保系统的高效、安全和灵活性。本文档将围绕博通协同办公系统的设计,提供技术方案和解决方案。 一、系统架构设计 博通协同...
软件测试的技术,七章,介绍软件测试在各个阶段(单元测试、集成测试、系统测试、验收测试和安装测试)的技术和方法,以及典型测试领域的特点和技术 软件测试的实践,六章,介绍软件测试 的团队和环境的建立,以及...
JavaWeb 软件项目技术方案概述 在本技术方案中,我们将详细介绍 JavaWeb 软件项目的技术架构设计和实现方案。这份技术方案的目的是为了提供一个可靠、可维护、高效的软件系统,满足用户的需求和期望。 1. 设计依据...
软件工程技术学习文档
软件项目投标最全技术方案书模板 本资源提供了软件项目投标最全技术方案书模板,涵盖了软件设计各阶段相关文档目录,旨在帮助软件项目经理和开发团队更好地规划和实施软件项目。下面是该技术方案书模板的详细知识点...
《软件项目技术方案书》是IT行业中至关重要的文档,它为软件开发过程提供全面的指导,确保项目的顺利进行。这份模板涵盖了华为等领先企业的实践,是开发者、项目经理和团队成员的重要参考资料。以下将深入探讨软件...
此书不仅适合测试从业者作为学习和参考的教材,也对那些希望提升软件质量的开发人员、项目经理及对软件测试感兴趣的读者具有很高的参考价值。通过本书,读者可以领略到软件测试的内在逻辑,掌握测试过程中的关键技巧...
前 言 <br>第一篇 软件测试的原理 第1章 软件及其开发过程 第2章 软件测试的基本概念和方法 第3章 质量保证与测试策略 第4章 软件测试依据和规范 <br>第二篇 软件测试的技术 第5...
"软件测试方法和技术.zip"这个压缩包很可能包含了一系列关于软件测试的详细资料,涵盖了多种测试方法和技术。以下是对这些关键概念的深入解释。 1. **黑盒测试**:这是一种不考虑内部结构或工作原理,仅关注软件...
参加投标供应商需保证所提供产品符合本次招标要求及国家相关产品,符合ISO质量体系认证、售后服务技术支持,具备知识产权保障的最新质量标准的产品软件。
必须满足上述规定,专利才能批准,但为了不让竞争对手完全掌握我司技术,对于希望保密的地方,可以在细节上做一些加工,如隐藏,或提供别的实现方式。对于希望保密的地方,可向代理人说明。 6.技术交底书完成后,请...
AUTOSEMO此前发布了《车载SOA软件架构技术规范1.0》;《版本1.1》提供了更新内容,包括:整个SOA软件服务设计规范从服务设计、服务策略、服务分类、服务部署4个方面明确技术规范和方向指引,使汽车SOA服务设计过程中...
软件agent技术 软件agent技术 软件agent技术 软件agent技术
适合技术部的KPI考核,软件开发、java技术的考核,适合各开发部
### 技术部分核心知识点解析 #### 一、项目背景及目标 - **产业升级转型**:随着信息技术的发展,特别是“互联网+”战略的提出,传统纺织服装产业面临着转型升级的巨大压力。本项目旨在通过构建“互联网+服装时尚...
### 软件测试技术基础知识点总结 #### 第1章 软件测试概述 **1.1 软件测试的意义** 随着信息技术的发展及其在各个领域的广泛应用,软件产品的质量越来越受到开发人员和用户的重视。软件缺陷的存在是不可避免的,...
车载SOA软件架构技术规范1.0.pdf