建设工程互联网技术
2022-03-14 09:48
通过
互联网在建设工程行业的发展,建设工程
互联网公司技术也愈加成熟,
华春网络公司成立以来,一直本着为
工程建设领域的信息化建设和新业务孵化提供有力支撑的执业使命,公司坚定:
以“统一技术支持平台”为企业发展核心技术;
以“提高技术服务水平”为企业未来生存理念;
以“快速成长自我学习”为企业发展的源动力;
在此基础上公司按照“统一技术支撑平台”的核心能力建设思路,采取基础平台+产品应用的思路进行技术架构建设,在统一的基础平台上,支持未来所有的产品。
在公司的开发体系中采用前后端分离的开发模式,前后端分离的含义不只是前后端代码的分离,而是系统级的分离。
前端采用一整套独立的开发、线上服务与周边保障体系,从而更全面地支撑用户端业务的快速发展,并且实现跨业务线的技术资源横向复用。
公共样式库有利于各业务线之间保持用户体验的一致性。各业务线在公共样式库的基础之上做可复用的UI组件,促进效率提升。
公共功能库包括常用的功能模块,比如登陆、支付、数据统计等等,可以用自动化测试的覆盖度来保障质量。
第三方库的组织构成:
样式框架:Bootstrap Material design
UI框架:React Vue
第三方功能库:Fetch Modernizr Sentry GA
第三方基础库:jQuery Zetpo Underscore Lodash
后台应用采用Linq作为主要开发语言。
公司通讯架构采取微软的WCF架构,全称是Windows Communication Foundation,是由微软开发的基于Windows平台下开发和部署的SDK,专门为SOA(Service Oriented Architecture)而设计的一套完整的技术框架。它为服务提供了运行环境,允许使用CLR类型调用其他服务。它是微软对一系列行业标准规范的框架的实现。它整合了原有的Windows通讯的.NetRemoting,WebServices,Socket的机制,并融合有HTTP和FTP的相关技术。是Windows平台上开发分布式应用最佳的实践方法。
WCF是一个基于SOAP(Simple Object Access Protocol的首字母缩写,即简单对象访问协议)消息的分布式编程平台,我们可以使用现有技术(如HTTPS)、Windows集成安全性或对用户进行身份验证的用户名和密码生成安全的分布式应用程序。WCF基于现有安全性基础结构和SOAP消息的经验证的安全标准提供可互操作的安全消息交换通用平台。通过使用WCF的安全机制,我们可以可以在Internet范围内跨多个Windows域进行服务和客户端的数据交互。
通常情况下,大量数据是保存在数据库中的,而应用程序访问数据库是一项很费时的操作。如果先将数据库中的数据缓存到缓存区中,当应用程序需要这些数据的时候,直接存缓存中提取,就可以减少系统开销,大大提高了数据访问的速度。同时,在ASP.NET中,通过类SQLCacheDependency建立起与新一代数据库的SQL缓存依赖关系,这种关系可以使得数据库能够自动监视数据表的状况,一旦数据表发生变化,立即启动数据库本身的触发器将相应的缓存区中的数据变为无效,这样就确保了缓存区中的数据和数据库中的数据是适时匹配的。
Redis是一个开源(BSD许可的)的使用ANSIC语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。它可以用作数据库、缓存和消息中间件,它支持多种类型的数据结构,如字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sortedsets)与范围查询等。这些数据都支持Push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
在公司技术研发中采用MVP模式搭建移动应用框架
View层通过Presenter层来获取自己想要的数据,或者传递想发送的数据(此处数据为页面抓取)。
Presenter通过View层指令来分发事件,是网络请求还是页面间数据传递等等来做相应的逻辑处理,此处会进行访问model层的动作,对其进行赋值与获取,处理完成之后回调(携带数据)view层,让其进行界面更新。