精华内容
下载资源
问答
  • web服务器、应用服务器、web应用框架
    千次阅读
    2021-12-11 11:29:37

    web服务器:

    负责处理http请求,响应静态文件,常见的有Apache,Nginx以及微软的IIS.

    应用服务器:

    负责处理逻辑的服务器。比如php、python的代码,是不能直接通过nginx这种web服务器来处理的,只能通过应用服务器来处理,常见的应用服务器有uwsgi、tomcat等。

    web应用框架:

    一般使用某种语言,封装了常用的web功能的框架就是web应用框架,flask、Django以及Java中的SSH(Structs2+Spring3+Hibernate3)框架都是web应用框架。

    更多相关内容
  • HarmonyOS分布式应用框架深入解读

    千次阅读 2021-11-22 15:22:29
    针对上述挑战,HarmonyOS作为一款面向万物互联时代的、全新的分布式操作系统,将迎刃而解,这得益于HarmonyOS的分布式应用框架,这些多设备组成一个超级终端,充分发挥各设备能力,从而实现多设备间多端协同、跨端...

    随着越来越多设备的智能化,在多设备场景下应用开发面临以下挑战:从多设备的形态差异(不同大小、不同分辨率、不同形状的屏幕,多样化的交互方式–按钮、触屏、键盘、语音、手势等),多设备的能力差异(内存从百 KB级到GB级设备)。

    针对上述挑战,HarmonyOS作为一款面向万物互联时代的、全新的分布式操作系统,将迎刃而解,这得益于HarmonyOS的分布式应用框架,这些多设备组成一个超级终端,充分发挥各设备能力,从而实现多设备间多端协同、跨端迁移,为万物互联奠定基础。

    针对HarmonyOS的分布式应用框架后面章节将分别深入解读。

    一、HarmonyOS用户程序

    在HarmonyOS系统上应用分为:HarmonyOS应用、原子化服务,HarmonyOS应用就是跟传统应用一样需要在应用商店下载安装,原子化服务是具有独立操作入口、免安装、实现特定功能,比微信小程序功能更强大,加上HarmonyOS的跨设备、分布式的能力及应用,二者具有无限能力。

    从开发者角度看,HarmonyOS上基本的组件分为3+1,其中3代表三个Ability,分别是:PageAbility:负责用户界面的显示,DataAbility:负责数据的管理,对外部提供统一的数据访问抽象,ServiceAbility:负责后台运行的任务。1代表AbilityForm服务卡片,可以将重要信息或操作前置于此,以达到服务直达,减少体验层级的目的。3+1组件进行组合开发出HarmonyOS上的应用,其打包格式为HAP(HarmonyOS Ability Package),根据HAP是否有界面分为:FA(Feature Ability)、PA(Particle Ability)两种类型。

    1. HarmonyOS分布式应用程序框架整体架

    从应用框架的角度对系统的分层,共分5层,分别如下:

    底层软件层:包括内核和HAL、软总线,这一层开发者不会用着,一般默默地为开发者和用户服务。

    基础服务层:包括分布式调度管理、分布式数据管理、分布式硬件管理、分布式权限管理。

    核心服务层:包括全局包管理、分布式运行管理,全局包管理:HarmonyOS上的应用不再局限于单台设备上,包管理还包括跨虚拟终端上的所有设备。分布式运行管理负责应用动态运行时管理,包括协同框架、迁移框架、服务卡片框架。

    应用接口层:是系统提供给广大开发人员开发应用的接口层,不管系统底层实现有多复杂,但提供给开发者的接口尽可能的简单。这层包括之前提到的基本组件,还有ACE(Ability Cross-platform Environment)框架,在多设备的交互模型下,一致性很重要,从UI的角度怎么让UI框架适应大屏、小屏、长屏、方屏、横屏等,这个一致性很大程度是由ACE框架支撑的。

    用户程序层:这层就是广大开发者开发的应用供用户使用。

    1. HarmonyOS分布式应用程序框架运行视图

    这是应用框架运行时的视图,运行时每个应用在独立的沙箱里面,彼此隔离互不影响,这样保证了系统的安全性。系统里面包含像AppSpawn负责进程的孵化,AppMS负责进程的管理,BMS(Bundle Manager Service)负责包的管理,AMS(Ability Manager Service)负责基本的组件管理,DMS(Distributed Manager Service)负责分布式业务的,是专门的一个底层的服务,我们好多上层的服务都有分布式的业务,经由它进行一个连接的业务的归一,它的主要职责包括像分布式任务管理、跨设备状态和数据同步。

    1. HarmonyOS分布式操作:多端协同

    多端协同是为了让我们的应用程序在多个端上完成一个业务,这个时候系统的框架提供了三种能力给应用程序。第一个跨设备组件启动,有了这个能力就可以完成一个并发。第二个是跨设备数据传递,经由一个连接通道进行业务的协作。第三个是分布式共享对象能够让你能够自动的在两个设备或多个设备之间进行状态的自动同步。

    右上角的代码片段强调的是一个连接,其实在系统层面提供一个连接看似是很自然的事情,但背后及其复杂,HarmonyOS上的设备跨越了从小到中到大的各种类型的设备,它们的芯片的类型不一样、它们的连接方式也是不一样的,可能有WI-FI、可能有蓝牙等等,这样的连接是无线的,经常有干扰,这种连接还要把底下的网络抖动给过滤掉。

    在多端协同框架的基础上,开发者能够开发出跨越多个设备的应用。举例子:你可以在pad上开发一个观看视频的应用,这样借助手机可以对视频进行文字评论和回复,进行一个业务的跨端,这样就可以达到并发、协作、互补。

    1. HarmonyOS分布式操作:跨端迁移

    HarmonyOS上任务管理中心可以在一个端上管理所有超级终端上的任务,借助这个任务管理中心,可以轻松的把一个任务从手机端迁移到大屏上,这个过程就是开发者跟系统的一个对接。系统本身通过任务管理中心、通过应用拿到一个状态,应用本身通过回调把状态传递给系统,系统间传递这个状态,开发者就不用关心了,借助迁移框架给用户打造一个连续性、一致性的效果。

    1. HarmonyOS基本架构:分布式窗口管理

    不管是多端协同还是跨端迁移,当用户在任务中心拖动时,系统会将拖动的任务窗口牵引到一个虚拟的窗口中渲染,将渲染结果传递给目标的代理窗口填充进去,不仅仅是把视频流的一个传输过去,还有用户的交互事件发回给原始的应用,既有系统多模统一的交互模块,对应用来说是其实感知不到的,不知道事件来自本端还是另一端。

    1. HarmonyOS基本架构:分布式硬件

    现在的设备包含的硬件、外设非常多,比如相机、麦克风,包括各种各样的传感器,像手表里每天监测睡眠、每天的步行等健康的一个状态,如果这些设备仅局限在一个设备上使用那就是一个极大的限制。所以在分布式环境的编程中,系统从硬件的角度提供了两个能力,第一个是全局的虚拟化,将所有连接到超级终端上的硬件外设全局的池化,这样能提供给开发者跨端调用,不用自己建立连接,不用自己管理硬件使用权的交换,也不用二次授权,这是因为硬件很多时候是跟隐私相关的,系统已经通过统一的全局虚拟化将这些底层能力打通了。

    然后是第二是硬件自动跟随,我们的软件是不局限在一个设备上的,可能是从一个设备迁移到另一个设备,比如这个时候在播放声音,比如这个时候在跟别人视频聊天,那么这些硬件跟随着自动迁移过去,这一点系统在应用框架以及底层的分布式硬件的一个结合完成了这么一个事情,减少开发者的负担。

    ——————

    原创:老王丨【公众号:鸿蒙开发者老王】华为认证讲师 / 腾讯认证讲师 / 鸿蒙开发先行者

    展开全文
  • 探索嵌入式应用框架(EAF)

    千次阅读 2018-03-18 00:00:00
    EAF是Embedded Application Framework 的缩写,即嵌入式应用框架。嵌入式应用框架是 Application framework的一种, 是在嵌入式领域的应用框架。Appl...

    EAF是Embedded Application Framework 的缩写,即嵌入式应用框架。嵌入式应用框架是 Application framework的一种, 是在嵌入式领域的应用框架。

    Application Framework——应用框架,是一种软件框架,软件开发人员用应用框架作为标准结构,以便实现应用软件。

    那什么是软件框架呢?

    关于软件框架

    软件框架是一个抽象的概念, 是提供了通用的软件功能,可以通过用户编写代码有选择地改变, 从而提供特定的软件应用。 软件框架提供了构建和部署应用程序的标准方式。 软件框架是一个通用的、可重用的软件环境, 它提供特定的功能, 作为大型软件平台的一部分, 以促进软件应用程序、产品和解决方案的开发。 软件框架可能包括辅助程序、编译器、代码库、工具集和API , 汇集了所有不同的组件, 便于一个项目或系统的开发。

    那些我们用过或者常见的软件框架太多了:

    • windows上MFC

    • .net Framework

    • spring framework以及衍生的SSH等等

    • Entity Framework

    • Robot Framework

    • play framework

    • Zend framework

    • Oracle Application Development Framework

    • Cactus Framework 

    • Eclipse XXX framework

    • AWS Lambda Framework

    • FrondEnd framework:Vue.js,Angular.js,React等等

    • ......

    尤其是Web 应用框架更加丰富多彩,基于各自语言实现的Web Application Framework 不胜枚举。

    进一步, 很多的系统架构也引入Framework 的概念,例如,Enterprise architecture framework等等,甚至在研发管理上也同样涌现了Framework,例如 Project Management Framework,Risk Management Framework等,外延在不断在融合放大。

    关于软件应用框架的开发著述也有很多,例如侧重API设计的《软件框架设计的艺术》等等。

    嵌入式系统的应用框架

    与一般的电脑相比, 嵌入式设备有着自己的特性, 例如耗电量低、体积小、操作范围粗糙、单位成本低。 这是以有限的加工资源为代价的, 这使得程序和交互的难度大大增加。 然而, 通过在硬件之上建立智能机制, 利用可能存在的传感器和存在一个嵌入式单元网络, 既可以在单位和网络一级对现有资源进行最佳管理, 并提供远远超出现有可用功能的增强功能。 这或许就是嵌入式应用的必然性。

    EAF 是面向嵌入式系统的软件应用框架。嵌入式系统是一个在较大的机械或电气系统中具有专用功能的计算机系统, 通常具有实时计算约束。嵌入式系统从便携式设备, 如数字手表和 MP3播放器, 到大型的固定设备, 如交通灯, 工厂控制器, 以及大部分复杂的系统, 如混合动力车、核磁共振成像和航空电子设备等等。 复杂性从低到单一的微控制器芯片, 到非常高的多个单位等等。

    鉴于如此的复杂,很难有一个统一的应用开发框架。

    但是,参考Java 面向资源的分类(J2EE,J2SE,J2ME,Java Card等),我们可以对嵌入式系统的应用框架进行尝试分析。

    手机上的应用框架

    由于手机的功能越来越强大,很多时候被认为超出了嵌入式系统的范畴。但是,了解手机上的应用框架,对于EAF而言,还是大有裨益的。

    手机上的应用开发框架一般也被称为 Mobile Development Framework。近些年,随着智能手机的普及,面向手机开发的应用框架已被人们所熟知,例如 ios development framework,Android development framework,还有基于HTML5的混合编程框架PhoneGap等等。

    尤其是Android,如果资源允许,基于android的嵌入式设备可以轻松使用android的软件应用框架。google 还面向嵌入式设备推出了android wearable 等一系列方案,当然iOS 也是如此。

    下图就是那张经典的android 架构层次图:

    Android应用程序框架分为应用层、应用框架层、系统运行库层和Linux内核层,在开发应用时就是在这个框架上进行扩展。Android应用框架的部分功能如下:

    • android.app:提供高层的程序模型和基本的运行环境。

    • android.content:包含对各种设备上的数据进行访问和发布。

    • android.database:通过内容提供者浏览和操作数据库。

    • android.graphics:底层的图形库,包含画布,颜色过滤,点,矩形,可以直接绘制屏幕上。

    • android.location:定位和相关服务的类。

    • android.media:提供一些类管理多种音频、视频的媒体接口。

    • android.net:提供帮助网络访问的类,超过通常的java.net.*接口。

    • android.os:提供了系统服务、消息传输和IPC机制。

    • android.opengl:提供OpenGL的工具。

    • android.provider:提供访问Android内容提供者的类。

    • android.telephony:提供与拨打电话相关的API交互。

    • android.view:提供基础的用户界面接口框架。

    • android.util:涉及工具性的方法,例如时间日期的操作。

    • android.webkit:默认浏览器操作接口。

    • android.widget:包含各种UI元素(大部分是可见的)在应用程序的布局中。

    智能手机的资源还是相当丰富的,在智能手机之前的Feature Phone 同样有着自己的应用开发框架,只是不如Android 和iOS 那么普及,已经逐渐被人们所遗忘。 但是,这些应用框架的设计思想和实现方式同样有着重要的参考性。例如,Qualcomm的BREW(翻开了历史的回忆)。

    BREW 指Binary Runtime Environment for Wireless 的缩写,从基本的层面而言,BREW 平台就是手持设备上嵌入式芯片操作系统的接口或抽象层。

    • BINARY 是指二进制。BREW的编程接口是一套二进制的函数库。所有基于BREW的应用和扩展类被编译和联接成二进制代码,在本地执行。

    • RUNTIME是指运行时间。所有基于BREW的应用和扩展类志在运行时被发现和调用,这一点很像动态连接库,事实上,BREW的应用和扩展类的模拟器版本就是一个DLL。

    • ENVIRONMENT是指环境。BREW是一个开放而且灵活的环境,提供了大量的编程接口,并可以管理丰富的业务。

    • WIRELESS是指无线。BREW 可以充分无限设备的特性,快速有效的运行与低 RAM/FLASH 的环境中,使有限的无线网络资源得到有效的使用。

    BREW基本上遵从COM这一组件构架的。组件架构的一个优点就是应用可以随时间的流逝而发展进化,除此之外,使用组件还有一些可以使对以有应用的升级更加方便和灵活的优点,如应用的定制,组件库以及分布式组件等。

    M2M的应用框架

    鉴于 M2M 技术的特点, 系统设计者可能不得不从头开始构建整个 M2M 体系结构。其核心是, M2M 技术包括增加一个装置或设备的智能服务, 并将该设备与可以监控或控制该设备的后端基础设施连接起来。 为了实现这一目标, 一个 M2M 设备使用了两个基本元素: 与后端通信的基础设施(无线调制解调器或模块)和运行服务的软件。

    通过提供一种将 M2M 服务直接嵌入通信模块的方法, 以及预先安装装的软件模块、连接能力和处理资源方式,一般的M2M 应用框架如下:

    EAF一般包括下列组成部分:

    优化的轻量级操作系统

    虽然一些 M2M 应用程序需要更强大的 RTOS, 但大多数都不需要。 操作系统的设计能够提供 API 来控制语音, 数据调用, 短信, 以及 TCP/IP 连接。 应该经过优化, 以充分利用直接访问协议栈的能力。 为了提供对连接应用程序的全面支持, 操作系统还应提供一个核心功能集, 其中包括:

    • 实时性, 包括保证对外部或内部中断的响应时间, 不论其状态如何。

    • 灵活安排任务的优先顺序。

    • 多任务能力, 以定义和同步服务所需的任务。

    • 在处理速度和功率选择方面的灵活性, 以优化电池寿命。

    • 内存、固件和软件保护功能。

    • 能够使用API访问蜂音频等媒体和数据路径。

    软件库

    为了简化开发过程和市场的速度时间, EAF 应该包括各种软件库和API, 提供设备或服务可能需要的各种功能。 这包括定位、全面的互联网连接协议、无线和互联网安全等服务。 EAF还应支持为目标市场具体需求开发的第三方软件库。 理想情况下, EAF 不仅应得到通信模块供应商的支持, 还应该得到合作伙伴和开发者的支持。

    开发工具

    EAF 还应该包含一个开发工具包, 以便于编码、调试和监视 M2M 应用程序, 这些工具应该是开源的, 可以免费使用。 最终, EAF 应该提供开发 M2M 应用程序并将其嵌入模块所需的一切。

    云连接

    最后, EAF 应该提供工具来简化连接设备的云管理, 包括一个完全实现的系统来处理设备监控和软件/固件升级。 该系统应该允许开发者监控设备的健康状况, 并识别潜在的问题。 它还应该包括已验证的操作系统远程升级工具, 以及使用补丁机制的热修复工具。

    面向脚本的EAF

    对于为嵌入式系统创建软件的开发者而言,对脚本的编写并不陌生。 选择脚本是往往是解决问题的最快方法。一般地,脚本被用来自动构建和运行验证测试。作为全栈必备的Javascript被广泛应用于网页、 web 服务器和移动应用程序中,在嵌入式系统中也将占据一席之地。

    出于对性能的担心,可以通过一些技术手段提升JavaScript的运行性能:

    1.充分利用内置函数和对象。 Javascript 语言拥有支持数组、 JSON、正则表达式和其他字符串运算的复杂内置对象。 这些实现通常在 JavaScript 引擎中得到了很好的优化。 

    2.小心编码。由于脚本比本地代码慢, 代码优化在性能重要的地方是至关重要的。 Javascript 的动态特性意味着 JavaScript 引擎通常不能像 c 编译器那样有效地优化代码。

    3.混合编程。没有一种语言适用于所有情况, 所以要为工作选择最好的语言, 而不是100% 纯粹地使用。 每一个 JavaScript 引擎都提供了一种从脚本调用本地代码的方法。 如果不确定性能, 首先在 JavaScript 中实现, 因为它更容易执行。 如果存在性能瓶颈, 请在 c 中重新实现函数。

    在 Mozilla 的一个项目 asm.js 中出现了一个可以替代使用 c 的方法。 定义了一个严格的 JavaScript 子集, 它更容易被翻译成本地代码或 c 源代码。 利用 c 和 JavaScript 之间的语法相似性, 使翻译变得简单明了。 嵌入式开发人员可以在 asm.js JavaScript 子集中编写性能关键代码, 并将其编译为本地代码, 作为构建过程的一部分, 而不是依赖 JIT。

    对于内存的使用而言,从积极的一面来看, JavaScript 使用了一个垃圾收集器, 从而消除了显式释放内存的需要。 通过这种简化, 嵌入式开发人员有时间专注于其他方面的开发。 

    目前,已经有多个开发系统开始支持嵌入式的JavaScript:

    • Espruino是一个单片机开发板, 被称为微控制器的 JavaScript。 它运行开源的 Espruino JavaScript 引擎, 它支持 JavaScript 标准的子集。

    • Tessel 是一个集成了Wi-Fi的JavaScript 微处理器,并提供一个兼容Node.js的 API,开发人员可以使用Node.js进行开发。

    • Marvell Semiconductor 的 Kinoma Create 是一个运行在 Marvell 半导体上的"JavaScript 物联网构建工具包", 它支持完整的 JavaScript 5.0.

    在国內,也有类似的开发系统,例如老友周爱民老师所在的ruff.io。

    总之,Javascript 在嵌入式设备上的潜力很大, 可以简化嵌入式程序员的开发工作, 并为客户提供更可靠、更可定制的产品。




    综上所述,嵌入式应用框架(EAF)对嵌入式系统的成功有着重要的意义。特别是对于嵌入式开放平台而言,能够提高开发者的开发效率,促进生态系统的繁荣。然而,IoT中还有很多超轻量级的设备,或许根本没有OS,被称为“智能颗粒”,笑称“智霾”,可能不需要EAF,也可能是一种另外形态的EAF,只是我不知道而已。


    参考:

    • Jaroslav Tulach, 《软件框架的设计艺术》,人民邮电出版社,2011

    • 金泰延 宋亨周 朴知勋 李白 林起永, 《Android 框架揭秘》,人民邮电出版社,2012

    • 曹洪伟,《BREW 进阶与精通》,电子工业出版社,2009

    • http://www.embedded-computing.com/hardware/embedded-application-frameworks-simplifying-the-development-of-m2m-devices

    • http://www.embedded-computing.com/embedded-computing-design/javascript-for-embedded-devices

    • http://www.embedded-computing.com/embedded-computing-design/speeding-embedded-systems-time-to-market-using-node-js


    展开全文
  • 应用框架的设计与实现 .NET平台 && 源代码
  • Web应用框架汇总

    万次阅读 2018-03-05 14:23:17
    Web应用框架(Web application framework)是一种开发框架,用来支持动态网站、网络应用程序及网络服务的开发。其类型有基于请求的和基于组件的两种框架,Web应用框架有助于减轻网页开发时共通性活动的工作负荷,...

    Web应用框架(Web application framework)是一种开发框架,用来支持动态网站、网络应用程序及网络服务的开发。其类型有基于请求的和基于组件的两种框架,Web应用框架有助于减轻网页开发时共通性活动的工作负荷,例如许多框架提供数据库访问接口、标准样板以及会话管理等,可提升代码的可再用性。

    PHP

    Zend framework
    CakePHP
    Yii
    ThinkPHP
    kohanaphp
    Seagull
    Drupal
    CodeIgniter

    javascript

    jQuery
    MooTools
    prototype
    dojo
    zk
    SproutCore
    Sammy.js
    Spine.js
    Knockout.js
    Javascript MVC
    GWT(Google Web Toolkit)
    Google Closure
    Ember.js
    Angular.js
    Batman.js

    Python

    django
    pinax
    Grok
    Pylons
    TurboGears
    Zope
    snakelets
    snakelets
    PylonsHQ
    Tornado

    Ruby

    Ruby On Rails
    Sinatra

    .net

    mvc
    三层
    nhibernate

    JAVA

    Spring
    Hibernate
    Grails
    Tapestry
    ZK
    SpringMVC
    Struts2
    Struts
    Mybatis

    分布式缓存框架:

    Microsoft Velocity:微软自家分布式缓存服务框架。

    Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度。

    Redis:是一个高性能的KV数据库。 它的出现很大程度补偿了Memcached在某些方面的不足。

    EnyimMemcached:访问Memcached最优秀的.NET客户端,集成不错的分布式均衡算法。

    开源的.NET系统推荐:

    OXITE:微软ASP.NET MVC案例演示框架。

    PetShop:微软ASP.NET宠物商店。

    Orchard:国外一个MVC开源的博客系统。

    SSCLI:微软在NET Framework 2.0时代的开源代码。

    DasBlog:国外一个基于ASP.NET的博客系统。

    BlogEngine.NET:国外一款免费开源的博客系统。

    Dotnetnuke.NET:一套非常优秀的基于ASP.NET的开源门户网站程序。

    Discuz.NET:国内开源的论坛社区系统。

    nopCommerce和Aspxcommerce:国外一套高质量的开源B2C网站系统。

    JumboTCMS和DTCMS:国内两款开源的网站管理系统:

    日志记录异常处理:

    Log4Net.dll:轻量级的免费开源.NET日志记录框架。

    Enterprise Library Log Application Black:微软企业库日志记录。

    Elmah:实现最流行的ASP.NET应用异常日志记录框架。

    NLog:是一个简单灵活的日志记录类库,性能比Log4Net高,使用和维护难度低。

    关于NoSQL数据库:

    Mongodb:分布式文件存储数据库。

    Membase:家族的一个新的重量级的成员。

    自动任务调度框架

    Quartz.NET:开源的作业调度和自动任务框架。

    Topshelf:另一种创建Windows服务的开源框架

    依赖注入IOC容器框架:

    Unity:微软patterns&practicest团队开发的IOC依赖注入框架,支持AOP横切关注点。

    MEF(Managed Extensibility Framework):是一个用来扩展.NET应用程序的框架,可开发插件系统。

    Spring.NET:依赖注入、面向方面编程(AOP)、数据访问抽象,、以及ASP.NET集成。

    Autofac:最流行的依赖注入和IOC框架,轻量且高性能,对项目代码几乎无任何侵入性。

    PostSharp:实现静态AOP横切关注点,使用简单,功能强大,对目标拦截的方法无需任何改动。

    Ninject:基于.NET轻量级开源的依赖注入IOC框架

    常用的几个ORM框架:

    EF(ADO.NET Entity Framework):微软基于ADO.NET开发的ORM框架。

    Nhibernate:面向.NET环境的轻量级的ORM框架。

    SqlMapper.cs:用于小项目的通用的C#数据库访问类。

    AutoMapper:流行的对象映射框架,可减少大量硬编码,很小巧灵活,性能表现也可接受。

    SubSonic:优秀的开源的ORM映射框架,同时提供符合自身需要的代码生成器。

    FluentData:开源的基于Fluent API的链式查询ORM轻量级框架。

    Dapper:轻量级高性能基于EMIT生成的ORM框架。

    EmitMapper:性能较高的ORM框架,运行时通过EMIT动态生成IL代码,并非采用反射机制。

    格式和数据类型转换

    Newtonsoft.Json:目前.NET开发中最流行的JSON序列化库,为新版的WebApi库提供基础。

    System.JSON.dll:微软自己开发的JSON序列化组件(需要单独下载)

    DataContractJsonSerializer 和 DataContractXmlSerializer:微软在WCF中使用的序列化器。

    JavaScriptSerializer:微软默认针对WEB开发者提供的JSON格式化器。

    iTextSharp、PDFsharp 和 PDF.NET:通过.NET处理和生成PDF文档的组件。

    SharpZipLib.dll:免费开源的ZIP和GZIP文件解压缩组件。

    Math.NET:强大的数学运算、微积分、解方程和科学运算。

    DocX:不需要安装word软件,通过C#操作word文件。

    SharpSerializer:开源XML和、二进制、JSON、压缩和优化框架。

    反射和动态语言

    Clay dynamic:开源的动态语言dynamic框架让您形如javascript的方式创建对象。

    ExposedObject:在类的外部通过动态语言dynamic的方式访问私有成员。

    PrivateObject:微软单元测试框架中便捷在外部调用类内部私有成员的一个类。

    跨平台和运行时解决方案

    MONO.NET:跨平台的.NET运行环境,让.NET跨平台运行成为可能。

    DotGnu Portable.NET:类似于MONO.NET的跨平台运行时。

    Phalanger:将PHP编译成.NET,可实现PHP与.NET互操作。

    VMDotNet:中国移动飞信所使用过的.NET运行时。

    Unity3D:微软大力支持的机遇C#和JavaScript的跨平台游戏开发框架。

    Cassini、IIS Express和Cassinidev:开源的ASP.NET执行环境。

    Katana:微软基于OWIN规范实现的非IIS寄宿ASP.NET和MVC等。

    IKVM.NET:基于.NET的JAVA虚拟机,让JAVA运行在.NET之上。

    WEB开发和设计

    Jumony Core:基于.NET开发的HTML引擎。

    Microsoft.mshtml.dll、Winista.HtmlParser.dll 和 HtmlAgilityPack.dll:解析处理HTML文档的框架。

    JavaScript.NET和ClearScript(微软出品):基于.NET开发的JavaScript引擎。

    NCrawler:其HTML处理引擎htmlagilitypack的的开源网络爬虫软件。

    AntiXSS:微软官方预防跨站XSS脚本入侵攻击的开源类库,它通过白名单机制进行内容编码。

    YUICompressor.NET、Microsoft Ajax Minifier 和 Google Closure Compiler:JavaScrip和CSS压缩器。

    NancyFx:是一个不错的轻量级开源.NET WEB框架。如果想快速做个简单的WEB应用。

    AspNetPager:国内知名的ASP.NET分页控件,支持多种分页方式。

    NOPI.dll:导出Excel报表的插件(基于微软OpenXml实现)(nopi.css.dl通过css设置样式)

    Enterprise Library:微软针对企业级应用开发的最佳实践组件。

    PowerCollections:国外一个牛人写的高级开源集合。

    移动互联网和云计算

    PushSharp:通过.NET向各种移动平台推送消息。

    mono for android:用.NET语言开发安卓应用:

    MonoTouch:用.NET语言开发IOS应用。

    PhoneGap和AppCan:跨平台基于HTML5的移动开发平台。

    Cordova:PhoneGap贡献给Apache后的开源项目,是驱动PhoneGap的核心引擎。

    网络通信和网络协议

    SuperSocket:基于.NET轻量级的可扩展的Socket开发框架。

    SuperWebSocket:通过.NET实现TML5 WebSocket框架。

    XProxy:支持插件的基础代理程序集,内置NAT、加解密、反向、直接和间接代理。

    图形和图像处理框架

    Paint.NET:基于.NET小巧灵活强大的图形处理开源项目。

    Imagemagick.NET:用C#对开源图像处理组件Imagemagick的封装。

    Skimpt:基于.NET开源的屏幕截图软件。

    ImageGlue.NET:商业的图像处理组件,支持的格式列了一大堆。

    Sprite and Image Optimization Framework:微软CSS精灵,多图合成一张大图和CSS样式。

    桌面应用程序框架

    DevExpress:一个全球知名的桌面应用程序UI控件库。

    Prism:微软开发的针对WPF和Silverlight的MVVM框架,通过功能模块化的思想,来讲复杂的业务功能和UI耦合性进行分离。

    WPFToolkit 和 Fluent Ribbon Control Suite:开发类似于Office风格的Ribbon菜单。

    测试和性能评估方面

    Faker.Net:方便生成大批量测试数据的框架。

    Nunit:一个轻量级的单元测试框架。

    Moq:非常流行的Mock框架,支持LINQ,灵活且高性能。

    xUnit:比NUnit更好的单元测试框架,升级改进版的Nunit框架。

    MiniProfiler和Glimpse:基于MVC的两款性能事件监控框架。

    事务和分布式事务支持

    KtmIntegration:一个支持NTFS文件系统的事务开源类。

    NET Transactional File Manager:对文件系统操作(复制、移动和删除)加入事务支持。

    分词、全文检索和搜索引擎

    Lucene.net:流行高性能的全文索引库,可用于为各类信息提供强大的搜索功能。

    Lucene.Net.Analysis.PanGu:支持Lucene.Net最新版的盘古中文分词扩展库。

    数据验证组件整理

    FluentValidation for .NET:基于LINQ表达式方法链Fluent接口验证组件。

    Microsoft.Practices.EnterpriseLibrary.Validation.dll:微软企业库验证程序块。

    CuttingEdge.Conditions:基于Fluent接口方法练接口的契约编程组件。

    DotNetOpenAuth:让网站具备支持OpenID、OAuth、InfoCard等身份验证的能力。

    开源图表统计控件:

    Visifire:一套效果非常好的WPF图表控件,支持3D绘制、曲线、折线、扇形、环形和梯形。
    SparrowToolkit:一套WPF图表控件集,支持绘制动态曲线,可绘制示波器、CPU使用率和波形。
    DynamicDataDisplay:微软开源的WPF动态曲线图,线图、气泡图和热力图。

     

    可以扩充消息队列类别,如:Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:
    以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。
    高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。
    支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。
    同时支持离线数据处理和实时数据处理。
    Scale out:支持在线水平扩展。
    RabbitMQ
    RabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正因如此,它非常重量级,更适合于企业级的开发。同时实现了Broker构架,这意味着消息在发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持久化都有很好的支持。
    Redis
    Redis是一个基于Key-Value对的NoSQL数据库,开发维护很活跃。虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间。测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。实验表明:入队时,当数据比较小时Redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis。
    ZeroMQ
    ZeroMQ号称最快的消息队列系统,尤其针对大吞吐量的需求场景。ZeroMQ能够实现RabbitMQ不擅长的高级/复杂的队列,但是开发人员需要自己组合多种技术框架,技术上的复杂度是对这MQ能够应用成功的挑战。ZeroMQ具有一个独特的非中间件的模式,你不需要安装和运行一个消息服务器或中间件,因为你的应用程序将扮演这个服务器角色。你只需要简单的引用ZeroMQ程序库,可以使用NuGet安装,然后你就可以愉快的在应用程序之间发送消息了。但是ZeroMQ仅提供非持久性的队列,也就是说如果宕机,数据将会丢失。其中,Twitter的Storm 0.9.0以前的版本中默认使用ZeroMQ作为数据流的传输(Storm从0.9版本开始同时支持ZeroMQ和Netty作为传输模块)。
    ActiveMQ
    ActiveMQ是Apache下的一个子项目。 类似于ZeroMQ,它能够以代理人和点对点的技术实现队列。同时类似于RabbitMQ,它少量代码就可以高效地实现高级应用场景。
    Kafka/Jafka
    Kafka是Apache下的一个子项目,是一个高性能跨语言分布式发布/订阅消息队列系统,而Jafka是在Kafka之上孵化而来的,即Kafka的一个升级版。具有以下特性:快速持久化,可以在O(1)的系统开销下进行消息持久化;高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统,Broker、Producer、Consumer都原生自动支持分布式,自动实现负载均衡;支持Hadoop数据并行加载,对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka通过Hadoop的并行加载机制统一了在线和离线的消息处理。Apache Kafka相对于ActiveMQ是一个非常轻量级的消息系统,除了性能非常好之外,还是一个工作良好的分布式系统。


    展开全文
  • Java高手真经 应用框架卷 光盘全部源码.iso
  • Nuxt + Vue-Element - 通用应用框架

    千次阅读 2021-11-27 15:21:42
    文章目录Nuxt / Vue-Element - 通用应用框架一、入门1.1 模板代码拉取1.2 目录结构介绍1.3 客户端渲染/服务端渲染二、基本使用2.1 场景一:新写一个模块及页面2.2 场景二:后端数据交互(Axios)2.3 场景三:XXXX...
  • web应用框架 负责处理http请求,响应静态文件,常见的有Apache,Nginx以及微软的IIS. 负责处理逻辑的服务器。比如php、python的代码,是不能直接通过nginx这种web服务器来处理的,只能通过应用服务...
  • 常用的桌面应用框架

    千次阅读 2019-02-14 10:33:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • 1. Android手机操作系统是一个基于Linux Kernel的分层... 应用框架层(Java Frameworks),是Google发布的核心应用所使用的API框架  系统运行库层(User Libraries),包含了手机系统平台必须的C/C++核心库、Dal...
  • 使用ExtJS6.0开发应用框架

    千次下载 热门讨论 2015-07-31 10:33:08
    本文详细描述了如何使用最新的ExtJS6.0搭建应用框架,欢迎批评指正。
  • 首先为了理解安卓系统是怎么工作的,就先来看一下android的系统架构,其架构大至可以分为四层:linux内核层、系统运行库层、应用框架层和应用层,那就先说说这几层。 1.linux内核层: Android系统...
  • Android应用框架原理与程序设计(高焕堂)(中文简体+全书源码) 一本关于Android的不错的书,可惜之前只有繁体中文的,阅读起来比较费劲,现在上传一个简体版的跟大家分享。另外本资源还包含了书中所有的源码,供...
  • ubuntu20下mediapipe unity开源跨平台机器学习模型应用框架过程,MediaPipeUnityPlugin,ubuntu20下编译过程
  • web渗透--9--识别web应用框架

    千次阅读 2018-09-11 23:55:33
    获悉目标框架的类型必然为测试人员带来极大的优势,如果该框架在之前就被测试过。测试人员不仅可以获得未修补版本中存在的漏洞,还可以了解此框架中特有的错误配置以及已知的文件结构。从而使指纹识别过程显得格外...
  • 首先为了理解安卓系统是怎么工作的,就先来看一下android的系统架构,其架构大至可以分为四层:linux内核层、系统运行库层、应用框架层和应用层,那就先说说这几层。 1.linux内核层: Android系统...
  • Java高手真经(应用框架卷):Java Web核心框架.pdf

    千次下载 热门讨论 2012-11-05 16:59:12
    Java高手真经(应用框架卷):Java Web核心框架 一整套java的学校资料!总计五本!
  • 集微网4月7日消息(文/数码控),近日小米官方放出了MIUI负责人在线关于快递类型短信的优化、快应用的用途等大家关心的问题的解答汇总,一起来看看吧!问:短信验证码来的时候,弹出时可以出个“复制并删除”按钮吗?...
  • Ext4+JSON+Servlet+Tree构建Web应用框架

    千次下载 热门讨论 2012-05-16 23:44:34
    Ext4+JSON+Servlet/Struts2+Ext.tree.Panel+Ext.tab.Panel构建Web应用系统框架
  • Spring简介、框架核心、优缺点、应用场景

    万次阅读 多人点赞 2019-10-29 23:34:33
    Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序...
  • (语言:C++)Web应用框架

    千次阅读 2017-10-10 08:21:29
    Civetweb : :提供易于使用,强大的,C/C++嵌入式Web服务器,带有可选的CGI,SSL和Lua支持。 CppCMS : :免费高性能...Kore : :使用C语言开发的用于web应用程序的超快速和灵活的web服务器/框架。 libOnion : :轻
  • 免费漂亮的WPF界面框架

    热门讨论 2015-09-14 18:02:58
    基于FirstFloor.ModernUI的免费WPF界面框架,演示了如何自定义界面字体实现。该框架界面简洁明快,易于二次开发,可开发出靓丽的应用软件。时间久远,自主降低积分
  • Java桌面应用框架集锦

    千次阅读 2010-04-18 17:48:45
    [b]一、jgoodies[/b] look.jar 外观样式管理器。 forms.jar 布局管理器 [b]二、 borland[/b] dbswing.jar borland的UI设计控件。 [b]二、jdesktop[/b] ...ballTooltip.jar 对于toolTip进行再封...
  • 应用框架, Clouda先行

    万次阅读 2013-12-10 14:54:34
    随着各家网站以及论坛上越来越多的谈论JavaScript, 并且随着chrome, V8引擎, Node.js等的流行,大家也越来越关注并开始学习JavaScript开发框架, 一个好的开发框架可以帮助开发者节省大量的时间。 面对拥有众多...
  • HTML5应用框架-Lavaca介绍

    千次阅读 2013-01-13 20:19:35
    HTML5应用框架-Lavaca介绍作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszsLavaca是一个全功能的HTML5应用框架,专注于快速、简便的构建Web应用。Lavaca是一个完整的构建系统,内建了配置以适应于...
  • 在这里我想介绍一下我们软件领域的应用框架发展情况。  在早期的时候,开发软件所使用的api都是直接调用系统的api。如果系统的api想要变化,那么势必会导致之前基于这个系统开发出来的所有软件应用都会付诸东流,...
  • JavaWeb应用开发框架实例

    万次阅读 2018-06-12 21:15:49
    一、 概述Web 应用架构可以划分为两大子系统:前端子系统和后台子系统。前端子系统:1. 基础技术: Html/Javascript/CSS / Flash2. 开发框架: jQuery, Extjs , Flex 等;后台子系统:1. 基础技术: Java Servlet;2. ...
  • 应用框架的设计与实现--.NET平台(SAF源代码) 应用框架实例代码
  • 跨越平台桌面应用开发框架electron使用的心路历程

    万次阅读 多人点赞 2018-06-26 15:48:34
    从接触Electron到真正去做出一个桌面应用,再到今天写下这边文章,大概花了三个月时间吧,到不是因为有多难学,主要是由于这纯碎是个人兴趣,自己是在业余时间干的,公司里面目前还没有推行,这段时间开发任务又比较...
  • web应用基本框架

    千次阅读 2019-01-22 14:57:56
    一、常见框架图 web应用框架1.0 

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,797,061
精华内容 718,824
关键字:

应用框架