面向对象的C语言开发框架:Nesty

分享到:

Nesty是什么?

Nesty是跨平台的,面向对象的C语言开发框架。Nesty旨在为从事系统开发的编程人员提供一套统一的、高效的、易于使用的编程接口。

 

Nesty能做什么?

Nesty不是一个可以单独运行的程序,而是一套程序开发框架(或者工具库),Nesty已有的代码为从事C/C++开发的编程人员提供跨平台,面向对象C,容器及算法,多线程,单元测试等支持。编程人员利用Nesty所提供的工具开发出进一步接近其项目需求的软件。

 

Nesty包含了哪些组件?

Nesty目前的版本包含了NOOC,NCollection,NThread,NUtil,NTest等重要组件:

NOOC (Nesty Object-Oriented C)为纯C语言环境提供面向对象编程的支持。NOOC提供的类型框架能够模拟C++语言类继承,多态,运行时类识别,安全类型转换等面向对象行为。NOOC突破C的语言限制,为C环境下从事类C++开发提供强力支持。

NCollection 是在NOOC基础上开发的面向对象的容器框架,NCollection提供了近20种常用容器,类型覆盖所用通用数据结构,如数组(NArray)、向量(NVector)、列表(NList),集合(NSet)、关联表(NMap)。用户只需要为类型定义极少数的模板函数,即可以方便地使用。

NThread 基于Posix标准提供并发编程的支持。除了实现了Posix协议下的大多数同步对象外,还专为线程创建与调度提供了NExecutor和NScheduler等基于线程池的技术。NThread足以解决所有您在并发编程中遇到的难题。

NUtil 包含了框架中的其他功能,其中NString是功能强大的字符串对象,涵盖了对拘留池的支持,NChars为创建字符串容器提供便利。

NTest 是Nesty的单元测试框架,旨在帮助用户构建快速,有效的测试,既可以整体地运行也能对个别用例提供单独调试的便利。通过NTest提供的工具,您将能够方便,系统地管理以及复用您的测试用例。

 

Nesty基于什么协议发布?

Nesty基于GNU联盟的GPL(GNU GENERAL PUBLIC LICENSE  Version 3, 29 June 2007)协议发布,意味着使用了Nesty的项目,也必须是开源的。但对于商业团体而言,依然可以向Nesty的作者申请非GPL授权。

 

Nesty支持哪些平台?

目前只支持32位的Windows操作系统和32位的Ubuntu12.04LTS Linux系统。Nesty采取了全平台战略,用纯C语言开发,不依赖任何第三方库/代码,因此您可以毫不费力地将Nesty移植到任何支持ANSI C99以及Posix .1标准的平台上。

 

Nesty容器支持C++

为了方便用户在C++中使用容器,Nesty专门针对模板类对NCollection的所有对象提供了封装,因此您可以像使用标准模板库一样方便地使用Nesty。

 

Nesty可以使用哪些跨平台的工具与技术?

Nesty使用CMake来构建和编译项目,因此要求使用Nesty的平台能够运行CMake。Windows下可以使用Visual Studio,以及Linux下可以使用KDevelop进行开发。

 

Nesty目前什么规模?

Nesty共包含约357个代码文件,代码总行数约78000行,有效代码行数约56000行,其中测试代码约20000行。

 

为什么要支持Nesty?

Nesty易于集成和移植,为了考虑到跨平台及移植的问题,Nesty核心组件采用纯C语言编程,支持ANSI C99标准。

Nesty支持面向对象,Nesty能很好地模拟C++等面向对象语言的诸多特性,如继承,多态等,使您的程序在保持了C简洁、高效的特性的同时,又能弥补语言限制而引发的设计上的不便。Nesty已经为您提供了最简洁的模式来实现面向对象C。

Nesty的代码是健壮的,Nesty的核心代码经过作者反复测试和调试,并进行了多次的修改与更正,以确保其正确性,虽然仅凭作者一人之力很难做到完美,但作者对其代码拥有充足的信心。

Nesty的算法是高效的,Nesty采用了大量计算机行业中优秀且成熟的算法,其中部分是经作者长期研究和测试所总结出来的宝贵经验。

Nesty的框架是优秀的,Nesty自开发之初,便参考了众多成熟且优秀的编程语言和SDK,如Java,C#,python,STL,QT,GTK等,并逐一参考其优点。

Nesty是免费且开源的,Nesty的源代码完全公开,任何人都可以获得一份该软件的拷贝并免费使用,前提是您必须在GPL的授权许可下从事活动。

Nesty会得到长期支持,作者承诺会持续开发并维护该软件,即使将来作者由于个人原因无法继续开发Nesty,任何组织和个人都可以在GPL的框架下继续扩展和维护Nesty。

Nesty直接从开发者获得支持,Nesty的作者并非来源于某个外国的个人或组织,而是中国公民,并且活动于国内知名技术论坛,您随时可以联系作者提问并给予反馈。作者会尽快受理您的请求。

 

Nesty的作者是谁?

Nesty的作者是在计算机行业拥有多年工作经验的程序员,曾任职于国内知名IT/游戏公司。目前,作者本人作为Nesty项目的发起人和主要开发者,致力于为众多专业/非专业的编程开发人员提供服务。

 

作者能向您提供什么服务?

代码授权,Nesty基于GPL发布,为了保证公开且公平,GPL具有传染性,意味着使用了Nesty代码的软件项目也必须是基于GPL发布的,即同样是开源且免费的。如果您对Nesty感兴趣但又不希望自己的项目暴露在GPL框架下,作者同样可以向您提供非GPL授权。

技术支持,如果您在对Nesty进行移植和集成过程中遇到问题,或者需要对软件实施定制,作者可以向您提供必要的支持,并将根据实际情况为您提供免费/非免费的服务。

项目主页:http://www.open-open.com/lib/view/home/1364621479156

昵    称:
验证码:

相关文档:

  • C/C++学习工具 ZinjaI
    ZinjaI 是一个多平台的 C/C++ 集成开发环境,主要用在教室中学习 C/C++ 语言用的。...
  • C++ 异常堆栈跟踪器libcsdbg 的可视化工具:jTracer
    jTracer 是 libcsdbg 的可视化工具。当 libcsdbg 为异常、线程创建一个堆栈跟踪,可配置通过 TCP/IP 来广播跟踪的数据。而 jTracer 捕获这些数据...
  • C/C++编译器 AsmJit
    C/C++编译器 AsmJit...
  • C语言的伪随机数发生器 gjrand
    gjrand 是一个C语言的伪随机数生成器。伪随机数的意思是在这个随机数并不保证是真正的随机,只适合一些对随机要求不是很高的场合,...
  • libjc - C语言事件驱动开发包
    libjc 是 C 语言的事件驱动开发框架。...
  • Java 中嵌入c/c++
    Java Native Interface(JNI)是Java语言的本地编程接口,是J2SDK的一部分。在java程序中,我们可以通过JNI实现一些用java语言不便实现的功能。...
  • Node.js的C++移植版本 Node.native
    node.native 是 node.js 的一个 C++11 (aka C++0x) 的一个移植。...
  • JSONCPP介绍及使用
    JSON全称为JavaScript ObjectNotation,它是一种轻量级的数据交换格式,易于阅读、编写、解析。 jsoncpp是c++解析JSON串常用的解析库之一。其...
  • Linux C 的工具包:JustKit
    JustKit 是一个简单易于使用的 Linux C 的工具包...
  • 通用LINUX C类库 jzlibs
    通用LINUX C类库。 包含双向链表、单向链表、向量、哈希表、红黑树等经典数据结构及其算法...
  • 多态在 Java 和 C++ 编程语言中的实现比较
    众所周知,多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。C++...
  • 纯Java 实现的 C 语言预处理器 - JCPP
    JCPP 是一个完整、兼容、独立的纯Java 实现的 C 语言预处理器,其目的是为了使用编写在 Java 中可使用的 C 风格编译器...
  • C语言日志、事务API libjio
    libjio是一个C库做日志,交易为导向的I/O它提供了一个类UNIX的文件操作功能(如打开,读取和写入) ,这是装在一个交易框架,以使文件...
  • java嵌入c,c++程序指南
    本文为在 32 位 Windows 平台上实现 Java 本地方法提供了实用的 示例、步骤和准则。本文中的示例使用 Sun Microsystems 公司创建的 Java Developmen...
  • 类似于Java Spring的C++依赖注入库:autumnframework
    Autumn Framework 项目是用C++实现依赖注入。它支持属性setter注入和构造器注入。它可以在多个平台上编译。它支持POCO(普通的C + +对象)并...
  • C++ 转换成 JSON
    经常有朋友问我如何将C++对象转换成JSON格式字符串。我的回答通常是CppCMS中的json::value. 我也写过一篇文章介绍该技术。...
  • GObjects 预处理器:GOB
    GObject Builder (GOB) 是一个用来轻松创建 GObjects (glib objects) 的简单预处理器。它读取 C 代码中的类描述文件并生成 .c 和 .h 的文件。可以让...
  • 一个C/C++开发工具IDE - Anjuta
    Anjuta是一个C/C++ IDE,它最大的特色是灵活,同时打开多个文件,内嵌代码级的调试器(调用gdb),应用程序向导(Application widzards)可以方...