未找到

未发布 新的JavaScript库邀请程序员使用Canvas进行创意编程
by Harriet666 keys 分享 1487837494989

首款专门用于LOB应用开发的JavaScript框架点击下载>>>

为了模糊技术和艺术之间的界限,Sandpit库使用JavaScript和Canvas 2D元素进行创意编程。

通过GitHub或NPM并内置在ECMAScript 6中,Sandpit仍然使用着一个可能会在1.0版本之前更改的API进行开发。“Sandpit的目标是规范和简化创建编码的过程,利用代码来做漂亮的东西,”文档介绍里提到。“不管是在2D还是3D中,通常都会绘制到Canvas元素中。”Sandpit使用dat.GUI(一个改变JavaScript中的变量的轻量级GUI)来管理设置。

未发布 Microsoft推出适用于Win 8.1和Win10的KB 4010250 Flash Player更新
by Harriet666 keys 分享 1487750909211

Microsoft发布了安全公告MS 17-005,它为各种版本的Windows提供了一些补丁。这些补丁(全部称为KB 4010250)启动Adobe APSB17-04中的Flash Player修复程序,修复了13个关键漏洞。微软用了一个星期的时间来修复漏洞。

这些补丁现在可以通过Windows Update在设备上运行:

  • Windows 8.1,RT 8.1和运行Internet Explorer 11的Server 2012 R2

  • Internet Explorer 10的Server 2012

  • 所有版本的Windows 10 - RTM(1507),1511,1607和Server 2016

【Microsoft Office 365 系列下载>>>】

Microsoft Office 365 商业版下载

Microsoft Office 365 商业协作版下载

Microsoft Office 365 商业高级版下载

未发布 百度正式开源其RPC框架brpc
by Harriet666 keys 分享 1506650334597
9月14日,百度正式在GitHub上基于Apache 2.0协议开源了其RPC框架brpc。brpc是一个基于protobuf接口的RPC框架,在百度内部称为“baidu-rpc”,它囊括了百度内部所有RPC协议,并支持多种第三方协议,从目前的性能测试数据来看,brpc的性能领跑于其他同类RPC产品。
 
brpc开发于2014年,主要使用的语言是C++和Java,是百度内部使用最为广泛的RPC框架,它经受了高并发高负载的生产环境验证,并支撑了百度内部大约75万个同时在线的实例。据了解,百度内部曾有多款RPC框架,甚至在2014年时还开源过另外一款RPC框架sofa-pbrpc。那brpc是在什么样的背景下诞生的?它有什么样的优势?又为何要开源?就这些问题,InfoQ记者采访了brpc负责人戈君。
 
Q:谈谈brpc的一些基本情况?什么时候开始研发的?经过了怎么样的迭代和升级?目前在内部应用情况如何?

戈君:brpc于2014年创建,在百度内部称为“baidu-rpc”。到目前为止,brpc一共进行了3000次左右的改动,现在仍在持续优化中,百度内的wiki上可以查询到每次改动的描述。brpc的主要语言是C++和Java,对其他语言的支持主要是通过包装C++版本,比如brpc的Python版包含C++版的大部分功能。
 
brpc目前支撑百度内部大约75万个同时在线的实例(不含client),超过500种服务(去年的统计,现在已不统计这类数据)。Hadoop、Table、Mola(另一种广泛使用的存储)、高性能计算、模型训练、大量的在线检索服务都使用了brpc。brpc第一次统一了百度内分布式系统和业务线的通信框架。
 
Q:为什么百度当时要研发brpc?

戈君:我们在实践中意识到,RPC作为最基础的通信组件,当时的百度已经不领先了。我当时的经理刘炀曾是Google的工程师,非常重视基础架构的建设,也愿意在这个方向投入资源。
 
我们在内部会更加深入地讨论这些问题。“好用”有时看起来很主观,但其实还是有据可循的,它的关键点是能不能真正地提高用户的效率:开发、调试、维护都要考虑到,如果用户效率真的被提高了,用户会想着你的,靠吹嘘或政令推广的东西得不了人心。我们创建brpc的初衷是解决百度业务所面临的实际挑战,同时也希望成为百度同学最喜爱的工具,哪怕离开百度也会怀念brpc。我们希望在提供了一个好用框架的同时,也展现了一种工作方法:注释怎么写,日志怎么打,ChangeLog怎么写,版本怎么发布,文档怎么组织,甚至对未来不在百度的同学的工作也有帮助,所以从这点来说brpc从一开始就是拥抱开源的。事实上,我们在口碑上做得还不错,brpc的wiki可能是百度内被点赞最多的内容之一。
 
Q:与其他的一些开源的RPC框架相比,brpc的优势是什么?

戈君:brpc主打的是深度和易用性。一方面我们没有精力像gRPC那样摊大饼,什么都做。另一方面我们也注意到gRPC(包括更早的Thrift)的深度和易用性并不够。技术方面的东西就是这样,看示例程序,文档非常牛逼,但实战中可能就是另一回事了,为什么各个公司都要造自己的轮子,一个隐藏原因就是表面高大上的东西在一些细节上让你无法忍受。

RPC真正的痛点是什么?是可靠性、易用性和定位问题的便利性。服务中不要出现不可解释的长尾,程序的可变项要尽量少,各种诡异问题要有工具支持快速排查。而这些在目前开源的RPC框架中做的并不好,它们大多看着很牛,但就是无法在自己组织中推广开来。回到前面那三点,brpc是如何做的呢?
  • 可靠性。这一方面是代码质量问题,通过为brpc团队设立很高的招聘门槛,以及在团队中深入的技术讨论,我们确保了稳固的代码基础。另一个问题是长尾问题,这是设计问题,brpc其实包含了很多模块,其中的bthread是一个M:N线程库,就是为了更好地提高并发避免阻塞。brpc中的读和写都是wait-free的,这是最高程度的并发。技术细节请点击链接查看。
  • 易用性。有种设计是什么选择都做成选项丢给用户,号称功能都有,但一旦出问题,则是用户“配置错了”。而且这样用户还非常依赖开发团队,没有开发团队的支持基本用不了,开发团队有足够的理由扩充团队。这么做其实非常不负责任,用户面对海量的选项也很难受。brpc对于增加选项非常谨慎,框架能自己做判断的绝不扔给用户,所有用户选项都有最合理的默认值,不设也能用。我们认为这对用户体验来说非常重要。
  • 定位问题的便利性。这点其它开源框架目前做的都不好,正常使用是可以的,但出问题就麻烦了。这个问题在百度内部其实也很严重,brpc之前用户排查问题都要拉RPC同学一起排查,RPC框架对用户是个黑盒,用户根本不知道里面发生了什么。按我们的经验,基本每天都有几个用户在群里问server卡顿,client超时之类的问题,排查问题是常态,人手必然不够。时间长了用户就觉得你这个框架各种问题,人还拽的不行很少回他们消息。brpc的解决办法是给server内加入各种HTTP接口的内置服务,通过这些服务,用户可以很快看到server的延时、错误、连接、跟踪某个RPC、CPU热点、内存分配、锁竞争等信息,用户还可以使用bvar来自定义各类统计信息,并在百度的运维平台NOAH上汇总。这样大部分问题用户可以自助解决。其实我们去看也是看这些,只是会更加专业。内置服务的具体说明可以看这里。
 
Q:作为公司内部的RPC框架,在服务治理方面有什么考虑?

戈君:百度内部RPC使用非常广泛,基本都是RPC调用,一些产品线还会通过local RPC隔离工程框架和策略代码。这么多年下来,服务周边的系统也比较全面了:编译是BCLOUD,发布是Agile,服务注册和发现是BNS,认证是Giano,监控和运维是NOAH。在百度内部,brpc和这些系统做了比较紧密的绑定,用户体验是一站式的。虽然在开源版本中,这些结合大都删掉了,但用户可以根据自己组织中的基础设施来进行定制:交互协议,名字服务,负载均衡算法都可以定制。对于其中一些特别通用的,我们希望用户反馈到开源版本中来以方便所有人。
 
Q:之前百度还开源过sofa-pbrpc,brpc与它的区别是什么?

戈君:sofa-pbrpc也是百度开发的一个比较早期的RPC框架,属于sofa编程框架的一部分,在搜索有应用。brpc相比sofa-pbrpc有如下优点:
  • 对协议的抽象更一般化,并统一了全百度的通信架构。bprc能容纳非常多的协议,基于Protobuf的,基于HTTP的,百度内的nshead/mcpack,开源的Redis/Memcached,甚至RTMP/FLV/HLS直播协议,brpc能逐渐地嵌入现有系统,而不需要彻底重构,但sofa-pbrpc则不具备扩展协议的能力。类似的,sofa-pbrpc也无法定制负载均衡算法,brpc默认提供round-robin、随机、一致性哈希,Locality-aware(局部性感知)四种算法,用户还能定制。
  • 多线程质量更好。多线程编程是非常困难的,看起来简单的RPC遍布多线程陷阱,比如处理超时的代码可能在RPC还没发出去时就运行了;发送函数还没结束,处理回复的回调就被运行了;一个回复还在被处理另一个回复回来了,诸如此类。另外,一个异步RPC的回调里发起一个同步RPC会发生什么,带着锁做同步RPC会发生什么。这些问题我们都不能在sofa-pbrpc中找到满意的答案。
  • 完备的调试和运维支持。解决这个问题的本质还在可扩展性,你如何让用户参与进来定制他们感兴趣的指标,为此我们设计了bvar,让用户能用比原子变量代价还小的方式自由地定制各种指标,用户能在浏览器上看到指标的变化曲线,或在运维平台NOAH看到汇总的监控数据。brpc还加入了大量内置服务方便用户调试程序,查看连接,在线修改gflags,追踪RPC,分析CPU热点,内存分配,锁竞争等一应俱全。
无需讳言,brpc在诞生之初和sofa-pbrpc在百度内部是有竞争关系的,但就像其他地方一样,这种竞争带来了活力。类似的,brpc和其他已经开源的RPC框架也是良性的竞争关系,在比拼谁能真正提高用户效率的过程中共同进步。每个用户都可以去对比代码、文档质量,接口设计,易用程度,扩展能力等,投出自己的一票。
 
Q:谈谈brpc的整体架构?

戈君:技术栈无外乎是从传输层垒到应用层,就略过不讲了,具体可以去看下开源出来的文档。brpc在架构上强调“在不牺牲易用性的前提下增强可扩展性”,比如brpc支持非常多的协议,在百度内部一个brpc server同端口可以支持二十几种协议,这对于服务的平滑迁移就非常好用。

Client端的协议也非常多,用户用brpc和bthread用得很爽,所以希望我们最好能统一所有的客户端,像对Redis和Memcached的客户端支持也是在这个背景下做的,这两个客户端比官方Client好用多了,感兴趣的读者可以去尝试一下。但这么多协议的配置非常简单,填个字符串就行了,比如HTTP就是把ChannelOptions.protocol设为“http”,Redis就是“redis”。Server端甚至不用设,它会自动判断每个client的协议,怎么做到的开源文档里也有。

名字服务、负载均衡也都可以定制。但为了对用户负责,我们也不鼓励“太自由”的定制,比如一点点需求的变化就要搞个新的,这时更需要想清楚本质区别是什么。这个事情我们在百度内的支持群里每天都在做,我们是开放的”乙方”,但我们也是严厉的”乙方”。
 
Q:brpc的性能如何?这么高的性能是怎么做到的?

戈君:性能是我们非常看中的一点,它和用户体验也是紧密联系的。好用但性能不行,或不好用但性能很牛,用户会很难受,我们不希望用户纠结。从另一个角度来看,在推广初期,我们要说服产品线用brpc靠什么?最直观的就是性能提升。而且这儿的性能不能停留在benchmark的图片上,而是能在真实应用中体现出来。开放出来的案例文档中或多或少都包含了性能提升,具体如下:
  • 百度地图API入口
  • 联盟DSP
  • ELF学习框架
  • 云平台代理服务
 
Q:为什么要将brpc开源?接下来在开源项目的迭代方面有什么计划吗?

戈君:因为马上还有不少依赖RPC的百度系统要开源啊。RPC作为最基础的组件,开源不仅仅是为了自身,也是为其它开源项目铺路,比如说我们马上还会开源基于brpc的RAFT库,搭建高可用分布式系统非常方便;以及使用brpc的bigflow,让流式计算变得很顺手。这些年百度对开源的认识也在不断加深,开源看似曝光了百度的核心技术,但带来的生态影响力更重要。从Apollo、PaddlePaddle开始,百度真的开始拥抱开源了。brpc的开源版和内部版很接近,只是去掉了对百度内部独有的一些基础设施的支持,我们在内网写的深入分析RPC技术细节的文档也都一并开源了,后续也会及时推送改动,请大家放心。这是一个活项目,不会拉个开源分支就不管了。
查看更多资讯>>>

未发布 .NET图像处理库ImageGear for .NET v23发布,新增AcroForm功能和亚洲OCR丨附下载
by Harriet666 keys 分享 1496731502868
ImageGear for .NET是一款图形图像处理控件,可以轻松地为程序添加扫描/压缩/条形码识别/PDF/文件查看与处理/图形编辑与处理等功能。具有扫描,压缩,浏览、添加注释,打印,图像编辑,OCR以及PDF和矢量图像支持,使开发人员可以快速地开发出图像处理程序,可用于.NET Framework2.0、3.0、3.5、4.0,ASP.NET,WPF,SilverLight,DirectX 10和Direct3D 10。支持超过100种图片格式,包含:TIFF, JPEG, CAD, Vector, 3D PDF, PDF/A, PS等。
 
最新版本的ImageGear.NET v23,为开发人员提供了新的AcroForm功能;将亚洲光学字符识别(OCR)输出添加到PDF,通过将中文、日文和韩文OCR输出结合到PDF中,扩大了适应性和在全球无缝创建PDF的能力;并通过合规性检查加强了PDF/A转换。
 
【ImageGear.NET v23最新版下载>>>】

新增功能


PDF AcroForms——创建、读取和写入PDF表单字段和数据

d353839346c4441381fb5d0d1e386b06ojpg
高级AcroForms SDK提供强大的表单功能
.NET开发中AcroForms SDK *可以将AcroForm字段添加、更新或删除到新的或现有的PDF中。这为你的用户提供从表单域读取和写入数据的方式,而无需离开你的网站或应用程序。如果他们需要更新现有的PDF,SDK会通过注释工具提供帮助。
使用表单增强你的应用程序
需要让你的用户访问数字表单?预先填充表单域允许用户直接从你的网站或应用程序将数据写入表单。将表单字段添加到PDF,包括:
·  复选框
·  文本字段
·  列表框
·  组合框
·  状态设置框
ImageGear还允许低级别访问PDF,以便用户可以直接从你的网站或应用程序访问任何文档或AcroForm。
 

亚洲OCR——包括中文、日文和韩文的语言自动检测和PDF输出
274011dbdffa41fba34c89f02c47a271ojpg

 
ImageGear增加了其先进的光学字符识别功能。ImageGear支持亚洲语言,提供中文、日文和韩文的OCR。
语言支持
亚洲OCR支持横向和纵向文字的亚洲语言。支持的语言有:
·  传统中文
·  简体中文
·  日语
·  韩语
自动语言检测技术
ImageGear使用自动语言检测技术来完成文档的OCR,包括含有亚洲语言的文档。此功能可以帮助你的业务在亚洲市场取得成功。
亚洲OCR输出格式
通过使用所有识别信息(字体细节、定位的图像区域和识别的表格结构信息)来创建格式化的输出,以重述原始文档的含义。亚洲版利用OCR引擎的强大功能,用亚洲语言创建文档图像的强大格式化输出。
亚洲版输出格式:
·  TXT
·  Word
·  Excel
·  HTML
·  PDF 

 

功能增强


OCR——改进OCR布局、分区顺序和文档

21c94ebab7e64b349fc0a74e76e8c3c0ojpg.NET,C,C ++和C#OCR
ImageGear OCR可用于Windows上的多种平台和语言,包括C,C ++,C#和其他.NET语言。ImageGear提供超过100种语言的全页光学字符识别(OCR),包括西方和亚洲语言如中文、日文和韩文。ImageGear的自动语言检测功能使OCR功能完善。
OCR可作为附件购买,为应用程序开发提供完整的文档图像库。我们的C#OCR SDK:
·  包括100多种不同的语言
·  检测并读取中文、韩文和日文
·  识别单个图像中的多种语言的字符
·  OCR样本可用于C#,VB.NET,C和C ++
全页OCR
·  通过我们的自动分区和细分功能,你的用户可以:
·  将页面自动分割为各个区域进行处理
·  根据流程、表格或图形将类型分配给定位的区域
·  用先进技术检测表格,改善数据结果重构
·  处理页面的全幅图像或单个区域
·  由用户定义区域,从文件加载或由引擎自动检测
最大精度的图像预处理
OCR之前会发生什么?看看OCR的预处理步骤:
·  高级图像处理方法可用于提高OCR精度
·  自动反转功能检测图像是否需要反转以获得最高精度
·  自动图像方向检测和调整图像
·  纠错方法检测图像并自动校正,提高分割和识别精度
·  去斑方法去除图像捕获过程中的污点和缺陷
·  分辨率增强提高了低分辨率图像的质量
预定义和可定制的字典
ImageGear的OCR在扫描文档时使用预定义的字典和数据字典。ImageGear使用17种不同语言的高级拼写检查,每种语言都在特定字典中。17个词典中的每一个都包含100,000到200,000个条目。垂直字典可以改善医疗和法律行业的拼写检查和OCR准确性。
卓越的结果处理
ImageGear OCR引擎以Unicode格式处理所有数据。可以为具有多个输出选项的特定代码页格式化数据输出,如:
·  PDF上的图像
·  基于文本的PDF
·  Microsoft Office 2007
·  Microsoft Office 97(Word,Excel和Powerpoint)
·  RTF
·  HTML
·  XML
OCR版本:ImageGear的功能选项
ImageGear有三个不同的功能选项。三个选项之间的主要区别是OCR引擎创建的输出格式。你的开发选项如下:
1、标准版
标准版为西方语言(如英语)创建输出格式。标准版仅输出文本文件并生成PDF。它包括的文件格式是可搜索的文本PDF和文本文档。
2、标准版Plus
标准版本Plus为西方语言(如英语)创建格式化输出。使用识别技术创建格式化的输出,以识别字体细节、定位图像区域并识别表格结构以创建原始文档。它包括的文件格式有Word、Excel、HTML、可搜索的PDF和文本文档。
3、亚洲版
亚洲版为亚洲语言(如中文,日语和韩语)创建格式化的输出。这种格式化的输出是使用与标识字体相同的识别技术来创建的,它标识字体细节、定位图像区域,并识别表格结构。格式包括Word、Excel、HTML、可搜索的PDF和文本文档。
*目前该功能仅适用于ImageGear for .NET。
 

PDF/A——丰富的PDF/A,并具有PDF/A转换的合规性检查

55374f37758442cbb78dd8962f7c570dojpg将PDF文件转换成PDF/A文件
PDF/A是一种ISO标准类型的PDF文件,用于存档和长期保存文件,以便它们能够与原始文件完全一致。元素(如字体)必须是独立的或嵌入的,以保留原始文件的格式和属性。PDF/A已经在欧洲流行,在美国正成为更广泛使用的文件格式。
ImageGear PDF/A特点:
·  根据光栅图像文件和扫描的图像创建PDF/A文件
·  验证PDF/X(PDF/X-1a,PDF/X-3和PDF/X-4)和PDF/A(PDF/A-1a和PDF/A-1b)合规性的PDF文件
·  将不合格的PDF文件转换为符合PDF/A-1b的PDF文件
·  新的增强功能可以改善从PDF到PDF / A的合规检查和转换过程
*目前PDF到PDF/A转换仅在ImageGear .NET中可用。
 
 

未发布 MailBee.NET Objects发送电子邮件(SMTP)教程四:发送包含文本和html的电子邮件
by Harriet666 keys 分享 1493805065916
MailBee.NET Objects介绍和试用点击查看>>>
 
在单行代码中快速发送电子邮件的最简单的方法是使用SMTP对象的QuickSend方法。在这种情况下,开发人员甚至不需要创建一个新的SMTP对象实例。只需要指定其基本属性(如From、To、Subject、Body等):
C#:
MailBee.SmtpMail.Smtp.QuickSend("from@me.com", "to@you.com", "Subject", "Message Body");         
VB.NET:
MailBee.SmtpMail.Smtp.QuickSend("from@me.com", "to@you.com", "Subject", "Message Body")
开发人员还可以使用QuickSend方法发送带有附件的电子邮件,如下所示:
C#:
MailBee.SmtpMail.Smtp.QuickSend("From Me (Company Info)",
                                "To you ",
                                "Subject", "Plain text body",
                                "HTML-formatted body",
                                null, @"C:\My Documents\report.doc");      
VB.NET:
MailBee.SmtpMail.Smtp.QuickSend("From Me (Company Info)", _
                                "To you ", _
                                "Subject", "Plain text body", _
                                "«html»HTML-formatted body«/html»", _
                                Nothing, "C:\My Documents\report.doc")
开发人员可以直接使用一个SMTP对象的实例,该实例提供了广泛的方法和属性来调整消息发送的过程。C#应用程序中的SMTP对象的新实例可以创建如下:
C#:
Smtp oMailer = new Smtp();      
VB.NET:
Dim oMailer As New Smtp()
如果SMTP服务器不需要任何身份验证,那么指定的主机名或相同的IP地址就可以连接到此SMTP服务器,如下所示:
C#:
oMailer.SmtpServers.Add("smtp.domain.com");   
VB.NET:
oMailer.SmtpServers.Add("smtp.domain.com")
或者
C#:
oMailer.SmtpServers.Add("127.0.0.1");     
VB.NET:
oMailer.SmtpServers.Add("127.0.0.1")
另一方面,如果SMTP服务器需要身份验证,开发人员应该确定该服务器上的帐户名称和相应的密码:
C#:
oMailer.SmtpServers.Add("smtp.domain.com","login","password");      
VB.NET:
oMailer.SmtpServers.Add("smtp.domain.com","login","password")
或者
C#:
oMailer.SmtpServers.Add("127.0.0.1","login","password");        
VB.NET:
oMailer.SmtpServers.Add("127.0.0.1","login","password")
然后,开发人员应确定邮件发件人的电子邮件地址,如下所示:
C#:
oMailer.From.AsString = "Dan Brown (Company Info)";         
VB.NET:
oMailer.From.AsString = "Dan Brown (Company Info)"
或者
C#:
oMailer.From.AsString = "Dan Brown ";        
VB.NET:
oMailer.From.AsString = "Dan Brown "
或者
C#:
oMailer.From.AsString = "dan@domain.com";       
VB.NET:
oMailer.From.AsString = "dan@domain.com"
添加To、Cc、Bcc或Reply-To,开发人员应使用SMTP对象的相应属性,如下所示:
C#:
oMailer.To.AsString = "Bill Smith (Remarks), Kathy@mail.com ";
oMailer.Cc.AsString = "Joe Black , Joseph ";
oMailer.Bcc.AsString = "t.jay@domain.com, s.connor@domain.com";
oMailer.ReplyTo.AsString = "john@domain.com, Barbara Jones ";      
VB.NET:
oMailer.To.AsString = "Bill Smith (Remarks), Kathy@mail.com "
oMailer.Cc.AsString = "Joe Black , Joseph "
oMailer.Bcc.AsString = "t.jay@domain.com, s.connor@domain.com"
oMailer.ReplyTo.AsString = "john@domain.com, Barbara Jones "
要指定邮件主题,开发人员应使用SMTP对象的Subject属性,如下所示:
C#:
oMailer.Subject = "Test message";         
VB.NET:
oMailer.Subject = "Test message"
此外,邮件可能没有主题。
开发人员还应该确定信息的正文。如果是纯文本,开发人员应该使用BodyPlainText属性:
C#:
oMailer.BodyPlainText = "This is a test e-mail message.";        
VB.NET:
oMailer.BodyPlainText = "This is a test e-mail message."
如果开发人员要使用HTML格式的正文,那么应该设置BodyHtmlText属性:
C#:
oMailer.BodyHtmlText = @"
Test HTML message.



        
        


        This is a test HTML mes-sage.
        


        

        www.afterlogic.com";​
VB.NET:
oMailer.BodyHtmlText = "
Test HTML message.


" & vbCrLf & _
        "" & vbCrLf & _
        "

" & vbCrLf & _
        "This is a test HTML mes-sage." & vbCrLf & _
        "

" & vbCrLf & _
        "
" & vbCrLf & _
        "www.afterlogic.com"
开发人员也可以将这两种类型同时使用。在这种情况下,邮件客户端的设置会影响显示哪个正文。
要将任何文件附加到电子邮件中,开发人员应使用AddAttachment方法,该方法只需要开发人员指定此文件的完整路径。要添加多个附件,开发人员应重复调用AddAttachment方法,如下所示:
C#:
oMailer.AddAttachment(@"C:\annual_reoprt.xls");
oMailer.AddAttachment(@"C:\deposits.doc");       
VB.NET:
oMailer.AddAttachment("C:\annual_reoprt.xls")
oMailer.AddAttachment("C:\deposits.doc")
要发送信息,开发人员应调用SMTP对象的Send方法。由于此方法可能会引发异常,开发人员可以按如下方式处理这些异常:
C#:
try
{
    oMailer.Send();
    Console.WriteLine("The message has been successfully sent.");
}
catch (MailBeeSmtpRefusedRecipientException e)
{
    Console.WriteLine("The following recipient was refused by SMTP server: " + e.RefusedRecipientEmail);
}        
VB.NET:
Try
    oMailer.Send()
    Console.WriteLine("The message has been successfully sent.")
Catch e As MailBeeSmtpRefusedRecipientException
    Console.WriteLine("The following recipient was refused by SMTP server: " + e.RefusedRecipientEmail)
End Try
示例代码:
摘要:以下示例创建一个包含纯文本和HTML格式主体的邮件,并添加.xls文档附加。然后将邮件发送给两个指定的收件人。
在使用MailBee.NET Objects之前,请确保它已解锁。
C#:
using System;
using MailBee;
using MailBee.SmtpMail;
namespace EmailApp
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            Smtp oMailer = new Smtp();
            oMailer.From.AsString = "John Doe (Company Info)";
            oMailer.To.AsString = "Bill Smith , Kathy Ritchie (Company Info)";
            oMailer.Subject = "Test e-mail";
            oMailer.BodyPlainText = "This is a test e-mail message.";
            oMailer.BodyHtmlText = @"
Test HTML message.



            
           


            This is a test HTML mes-sage.
           


           

            www.afterlogic.com";
            oMailer.AddAttachment(@"C:\annual_reoprt.xls");
            oMailer.SmtpServers.Add("127.0.0.1", "login", "password");
            oMailer.SmtpServers[0].AllowRefusedRecipients = false;
            try
            {
                oMailer.Send();
                Console.WriteLine("The message has been successfully sent.");
            }
            catch (MailBeeSmtpRefusedRecipientException e)
            {
                Console.WriteLine("The following recipient was refused by SMTP server: "+
                e.RefusedRecipientEmail);
            }
        }
    }
}
    
VB.NET:
Imports System
Imports MailBee
Imports MailBee.SmtpMail
 
Namespace EmailApp
    Class Class1
         _ 
        Shared  Sub Main(ByVal args() As String)
            Dim oMailer As New Smtp() 
 
            oMailer.From.AsString = "John Doe (Company Info)"
 
            oMailer.To.AsString = "Bill Smith , Kathy Ritchie (Company Info)"
 
            oMailer.Subject = "Test e-mail"
 
            oMailer.BodyPlainText = "This is a test e-mail message."
 
            oMailer.BodyHtmlText = "
Test HTML message.


" & vbCrLf & _
            "" & vbCrLf & _
            "

" & vbCrLf & _
            "This is a test HTML mes-sage." & vbCrLf & _
            "

" & vbCrLf & _
            "
" & vbCrLf & _
            "www.afterlogic.com"
 
            oMailer.AddAttachment("C:\annual_reoprt.xls")
 
            oMailer.SmtpServers.Add("127.0.0.1", "login", "password")
 
            oMailer.SmtpServers(0).AllowRefusedRecipients = False
 
            Try
                oMailer.Send()
                Console.WriteLine("The message has been successfully sent.")
            Catch e As MailBeeSmtpRefusedRecipientException
                Console.WriteLine("The following recipient was refused by SMTP server: "+
                e.RefusedRecipientEmail)
            End Try
        End Sub
    End Class
End Namespace
未发布 Essential Studio for JavaScript发布2017 v4版本,添加Essential JS 2工具包
by Harriet666 keys 分享 1516351007437
Essential Studio for JavaScript是首款专门用于LOB应用开发的JavaScript框架。包含40多种独特的、全新设计的控件,包括网格、图表、计量器、编辑器、树形视图、菜单、OLAP网格等等。
 

ESSENTIAL JS 2:企业级JAVASCRIPT UI工具包

Essential JS 2是一个现代的JavaScript UI工具包,具有轻量级、响应式和模块化的特点。它是用TypeScript编写的,完全支持Angular和React框架的完整支持。目前有以下组件可供使用:
  • Grid
  • Chart
  • Drop-Down List
  • Tree View
  • Date Picker
  • Dialog
  • Numeric Text Box
  • Tab
  • Toolbar
  • Circular Gauge
  • Linear Gauge
  • Form Validator
  • Combo Box
  • Autocomplete
  • Multiselect Drop-Down
  • Calendar
  • Date Range Picker
  • Button
  • Radio Button
  • Check Box
  • Text Box
  • Time Picker
  • Masked Text Box
  • List View
  • Tooltip
  • Context Menu
  • Accordion
完整的包可以从npmGitHub中获得。
查看演示
2d0ee79c3c0b40b781b46b85c269d443ojpg
 

支持ANGULAR 5

用于Angular组件的基本JavaScript已经升级到无缝支持Angular 5。
 

组合框

新的控件
组合框组件允许用户输入一个值或从预定义选项列表中选择一个选项。单击此组件的箭头图标时,下拉列表将显示用户可以从中选择的值列表。
 
主要特征
  • 数据绑定:允许绑定和访问本地或服务器端数据源的项目列表。
  • 分组:支持将单个或特定类别下的逻辑相关项目进行分组。
  • 排序:支持按字母顺序(升序或降序)排序列表项。
  • 过滤:允许根据组件中输入的字符过滤列表项目。
  • 模板:允许自定义列表项目、选定的值、页眉、页脚、类别组页眉。
  • 可访问性:内置的可访问性支持有助于通过键盘、屏幕阅读器或其他辅助技术设备访问所有组件的功能。
 

媒体播放器

新的控件
JavaScript的媒体播放器提供了一个简单而强大的视频和音频播放器,内置控制选项。它支持HTML5标准音频和视频格式,如MP4、MP3、WebM和Ogg。
 
主要特征
  • 支持HTML5标准视频。
  • 支持YouTube视频。
  • 内置控制栏,用于桌面和移动设备的所有基本操作,包括播放/暂停、下一首、上一首、音量控制和全屏。
  • 时间轴滑块,便于导航。
  • 标题栏。
c9b384463e464f0b9e59dfe642f91166ojpg
 

CHART

轴标签
支持显示多行轴标签。

 
显示外部数据标签
现在可以在图表区域内显示部分可见的数据标签。
 

数据管理器

防伪
防伪令牌可用于帮助保护应用程序免受跨站请求伪造。它生成一个隐藏的表单字段(防伪造标记),在提交表单时进行验证。
 
额外的数据操作
提供了IN和NotIN过滤器操作用于在WHERE过滤器中指定多个值。
 

DIAGRAM

对齐
支持定制用户手柄的位置。

 
端口增强
现在可以拖动端口来重新定位端口。

 
对称布局
对称布局是用于以圆形和对称方式排列图的自动布局。

 
标签交互
已经为标签提供了交互支持。他们可以被选中、拖动、调整大小和旋转。
 

AUTOCOMPLETE

搜索索引多栏弹出
现在可以区分多列AUTOCOMPLETE控件中的显示格式和搜索字段,允许用户在列表中搜索任意数量的字段,而无需修改所选的文本格式。
 

条码

EAN
条形码控制器现在支持EAN-8和EAN-13条形码。
 

计算

27个新的Excel公式
支持以下Excel公式:
ASINH,ATANH,AVERAGEIF,AVERAGEIFS,BASE,BESSELI,BESSELJ,BESSELK,BESSELY,COUNTIF,MMULT,MOD,NORMSDIST,NORMDIST,ODD,POWER,PV,RADIANS,RAND,ROUND,ROUNDUP,ROUNDDOWN,SECH,SUMPRODUCT,TEXT, VLOOKUP和STDEV。
 

下拉列表

服务器过滤
在搜索框中输入文本时,此功能将过滤数据源。过滤是基于包含来自整个数据源的匹配项。
 
服务器过滤:远程数据
 
服务器过滤:本地数据
 

文件管理器

支持鼠标选择
支持在文件资源管理器控件中使用鼠标管理文件/文件夹。
 

KANBAN

外部拖放
KANBAN控件现在支持与其他控件之间的拖放操作。
 
没有数据源的KANBAN列
KANBAN列可以在不绑定数据源的情况下显示。
 

滑块

添加按钮
添加了一个可以隐藏的按钮,允许增加和减少滑块的值。
 

甘特图

 
资源分配视图
甘特图控件支持资源分配视图。使用该视图,用户可以解释在同一日期发生的任务以及项目中资源的过度分配。
2820158d42a74615b57182485b50c1eaojpg
 
排序
现在可以根据行顺序显示具有序列号的任务。
9735e84a7c5d43b5bb25c29d3b1b1f89ojpg
 
多行选择
现在可以选择多行并执行缩进和负缩进操作。
6a44aceda37444c7b23b6d97d3180658ojpg
 
列过滤
现在可以过滤甘特图控件中的特定字段或列。
 
展开/折叠记录
甘特图控制现在支持扩展和折叠特定的记录。
未发布 ReactOS:基于Windows的开源操作系统
by Harriet666 keys 分享 1505209149271
ReactOS是一个免费开源的全新操作系统,其设计基于Windows,就像Linux基于Unix一样。ReactOS的外观和Windows类似,可以运行Windows软件和驱动,不过,该项目正在进行当中,可能尚无法完美兼容,最好的方法是在虚拟机上安装ReactOS,检查兼容性。

ReactOS使用X.Y.Z版本命名方案:X表示项目是否达到预期目标,Y表示大版本(关键特性和增强),Z表示小版本(Bug修复和一般开发)。第一个有文档记录的版本是0.0.7,发布于1998年7月。

作为开源项目,由于社区开发人员的数量不固定,所以ReactOS没有一个固定的路线图。不过,他们会尽量在二到六个月发布一个版本。0.4.0、0.5.0和1.0.0是当前设置的里程碑版本。0.4系列版本是最后的Alpha版本,从0.5系列版本开始,项目将进入Beta测试阶段,1.0及以上版本表明该项目已经可供日常使用了。

ReactOS 0.4.6已于近日发布。该版本向真正的硬件支持迈出了重要的一步。若干双启动问题得到了解决,分区管理的安全性得到了提高,可以避免分区列表结构的冲突。ReactOS Loader现在可以加载自定义内核和HAL了。

在0.4.6中,打印子系统尚不成熟,但Colin Finck已经实现了大量新的API,并修复了一些自动化测试中暴露出的Bug。

在驱动方面,Pierre Schweitzer为其增加了NFS驱动程序,并开始实现RDBSS和RXCE,将来还会支持SMB。Sylvain Petreolle为其引入了数字电视调谐器驱动。UDFS、CDFS、SCSI和HDAUDBUS中的若干Bug也得到了修复。

在兼容性方面,0.4.6引入了一个shim引擎,作为新应用程序兼容框架的一部分。在这个版本中,该引擎默认关闭,可以通过ReactOS注册表启用。该版本还包含一个专门的NTDLL库,可以为比较新的软件提供一些它们需要的NTDLL Vista+函数。

ReactOS 0.4.6还改进了用户体验,并修复了多个内存管理、ntoskrnl和文件系统的Bug,变得更加稳定。
未发布 Windows 10用于Fluent Design的UWP社区工具包蓄势待发
by Harriet666 keys 分享 1504861717599
Microsoft继续为即将推出Windows 10 FCU(Fall Creators Update)在做着准备工作其中部分工作是目前正在开展的开发者工具和资源的升级。已完成的工作包括:Visual Studio 2017 15.4版已支持UWP应用使用.NET Standard 2.0;UWP社区工具包(UCT,UWP Community Toolkit)的升级已完成,可以使用Microsoft新提供的“流畅设计语言”(Fluent Design Language)。“流畅”体系最终将成为新的Windows 10用户界面。

UCT使得Windows 10开发人员及对该平台感兴趣的人可以查看UWP应用的构建方式,并试用UWP平台提供多种可用控件。UCT 2.0推出了四个新添加的控件,分别是InAppNotification、TextToolbar、Expander和Menu。其中Menu控件已完成升级,支持下划线特性和非字符串内容, 同时改进了处于非缺省位置菜单的动画和行为。

InAppNotification控件为UWP应用提供了一种通知窗口生成动作,类似于IE在下载文件时所给出的通知窗口。Textbar空间提供了富文本或Markdown格式文本的编辑功能。该控件还支持用户使用定制的Formatter对象添加对更多格式的处理功能。

Microsoft将在转向UCT第二版后不再提供对VS2015的支持,开发人员应使用VS2017。Microsoft已经给出了UCT的入门文档,并在Windows Store上提供了一些可构建UCT演示的例子应用。工具包的源代码以MIT许可提供于GitHub上,其中包括了完整的发行说明。(例子应用是使用C#编写的。)
有用(0)

未发布 GLG工具包Visualization and HMI Toolkit更新至v3.6,支持Java Script
by Harriet666 keys 分享 1490344507662

Visualization and HMI Toolkit的为开发高级图形的动态界面而设计的艺术化的框架:它不仅仅是简单的按键与菜单,它是全动态的能显示动态数据以及能反映用户互动的图片对象。它不仅仅是能制作“漂亮图片”绘制工具(它还具有很多其他功能),而是能使开发人员定义图片对象以及与程序中的对象互动的图形引擎。它的使用对象主要针对应用程序开发人员,能将乏味的低级别图片代码编译工作转化成高级的互动设计行为。

GLG工具包Visualization and HMI Toolkit更新至v3.6,点击下载>>>

支持Java Script:

对Java Script的增加的支持使得用户可以定义自定义函数,将多个输入值转换为驱动动画的输出值。通过可以添加到对象属性的新Java Script转换来使用Java Script。例如,一个新的“LED Value Display”部件可以通过使用Java Script转换来实现部件的逻辑。

转换的Java Script属性包含用于生成输出值的Java Script代码。转换的Arg List属性通过$ N符号提供脚本中使用的可变的参数,其中N是基于1的参数索引(即 $ 1是第一个参数)。参数可以是双(D)、字符串(S)或XYZ(G)类型。Java Script转换的输出值也可以是D、S或G类型,与其所附属性的类型相匹配。

例如,可以使用以下Java Script将D属性的值设置成以度为单位的第一个参数的sin函数:Math.sin ($ 1 / 180. * Math.PI)

下面的Java Script可用于根据第一个参数的值和由第二个、第三个参数定义的阈值来在“NORMAL” 和“ALARM”之间切换的文本字符串:$ 1 <$ 2 || $ 1> $ 3?“ALARM”:“NORMAL”

对于复杂的Java Script来说,可以通过Java Script文件提供Java Script函数和方法库。加载此文件时,可以在图形中使用该文件中定义的Java Script函数。

应用程序可以使用包含Java Script方法集合的全局Java脚本文件并在应用程序的图纸中使用。该文件将被预加载并用作Java Script库。Viewport的JavaScriptFile属性也可定义为该viewport预加载的Java Script文件。所有加载的Java脚本都是全局的,可以在应用程序的任何位置访问。从Java Script文件加载的函数将覆盖任何以前具有相同名称的Java Script函数。

GLGeditors和所有GLG API都支持Java Script:C / C ++、Java、C#和Windows上的ActiveX。C / C ++和ActiveX中的Java Script支持由Duktape JavaScript Engine提供,对于C#来说可以使用Jurassic JavaScript引擎(由Jurassic.dll提供)。在Java中可以使用Java的JavaScript引擎。

所有Java Scripts都在绘图设置时先行编译,以实现更快的运行。这些脚本也可以进行缓存。

GlgJavaScriptFile全局配置资源或GLG_JAVA_SCRIPT_FILE环境变量可用于指定全局Java Script文件。 对于GLG Builder和GLG HMI配置器,还可以通过-glg-java-script-file命令行选项或GLG配置文件中的GlgJavaScriptFile资源(即glg_config或glg_hmi_config)提供全局Java Script文件。

本文作者慧都Elyn,转载注明出处

未发布 【教程】Edraw Max(亿图图示):怎么用图片创建自己的符号库?
by Harriet666 keys 分享 1500972809000
Edraw Max(亿图图示)除了自带丰富的模板和例子,还有一个非常庞大的符号库,内置符号已经超过20000个。如果这些符号还是不能满足你的需求,那么你还可以通过软件“从图片创建库”的功能,创建一个属于你自己的符号库。本文就详细介绍一下具体是如何操作的!
 
目前Edraw Max(亿图图示)在线订购享75折优惠活动正在进行中,欢迎您下载、购买进行运用!
 
Edraw Max(亿图图示)v8.7最新版下载地址>>>
 
第一步:新建一个绘图页面,选择“符号”菜单下的“从图片创建库”。
 
第二步:在弹出的窗口中,选择你要作为库元素图片的文件夹,然后点击“选择文件夹”按钮即可。
 
第三步:左侧符号库就会显示出新添加的“图片”库。鼠标右键点击如下图所示位置,可对符号库重新命名。
 
第四步:选中具体的某一个图形、符号,然后右键选择“编辑符号”,即可对该符号进行再次编辑。

温馨提示:
1、建议“名称“和”提示”命名保持一致,否则符号显示的名称,和鼠标放在符号上显示的名称会不一样。
2、若“选择图元文件”的文件修改变动较大,“请选择形状图标”的文件也应做出相应的修改,否则,该符号在符号库中的显示,会和实际使用时的图会有出入。
 
第五步:导入新的图形到该符号库,从该符号库中导出图形,或者删除不需要用的图形符号,都可以通过点击鼠标右键进行设置。


 近期热门 - 点击最多
  1. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  2. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  3. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  4. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  5. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  6. Springboot+Gradle+Mysql+Jpa最简单实例教程
  7. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  8. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  9. node.js用activex/com+自动化读写excel时查询接口、参数的调试方法
  10. TypeScript定义数字范围类型即仅包含【小时:分钟】的时间类型,每天指定时间点执行任务

  全端社区 - 最新回复
  1. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  2. Windows与Mac通过git ssh和rsync实现文件共享互传
  3. Windows与Mac通过git ssh和scp实现文件共享互传
  4. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  5. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件
  6. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  7. ReactNative获取Android/iOS的MAC/IP地址: react-native-device-info模块的安装与使用
  8. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  9. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  10. Springboot+Gradle+Mysql+Jpa最简单实例教程

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA