未发布 Dynamic Web TWAIN新版预告:v13.0版本中的全新设计 v13.0版本中的新设计
在v13.0版本中,SDK的结构有了新的设计。在设计新版本时,Dynamsoft主要考虑到以下目标:
应该有一个核心服务作为所有模块的中心。
该服务应该设计成:
a、它很长一段时间内只需升级一次
b、采用自动升级的方式
独立模块应能够通过核心服务相互通信
独立模块应能够通过核心服务共享数据
使用哪些模块应由应用程序中使用的JavaScript文件决定
所有模块都应自动升级,用户无需额外的操作
每个模块都能够处理自身的JavaScript请求
下图显示了在v13.0版本中Dynamic Web TWAIN的新设计:
为什么会出现这个新设计?
在过去我们收到过很多投诉,例如:
- 只允许拥有一个版本,换句话说,你不能同时安装两个版本。
- 随着每次新版本的发布,客户会发现从旧版本升级到新版本的过程很困难。尽管Dynamsoft员工一直努力让这一过程尽可能的简单,但许多客户仍然觉得升级困难。关键的原因是在使用该产品时每个桌面上都需要重新安装该服务。
- SDK已经非常丰富了,包括不同的模块如条形码读取器、OCR模块,网络摄像头模块等。然而,SDK的旧结构使得这些模块只能以TWAIN模块为中心,导致结果是:
a、难以独立使用模块。
b、由于依赖TWAIN模块,因此无法单独升级一个或两个模块。
新设计的出现可以解决三个问题:
- 新版本可以与旧版本一起安装、实现共存。
- 从这个版本开始,Dynamsoft Service将成为中心。它只处理最基本和最核心的功能,并保持稳定。因此,安装之后就可以很少或无需再升级。
- 所有模块的安装和未来的升级将变得“安静”。换句话说,它们不再需要执行任何安装程序。相反,一旦文件在服务器上更新(新模块以及新的JavaScript文件),Service将以静默的方式下载并安装新模块。
- 所有模块都可以独立使用和升级了。
未发布 Android Oreo 8.1终于发布正式版 在推出开发者预览版一个月后,Android Oreo 8.1终于发布了正式版。除了之前InfoQ已经报道过的内容,Oreo 8.1还推出了Gero Go版,可运行在低内存配置的设备上。
在谷歌I/O 2017大会上发布的Android Go定位入门级机型,这些入门级设备的内存一般不会超过1GB。谷歌通过多种手段来达到该目的:
- 全平台内存优化。
- 优化谷歌官方应用,使用更少的内存、存储空间和网络带宽。
- 推出新的Google Play特性,如FEATURE_RAM_LOW,以便更好地在入门级设备上运行。另外,Google Play为入门级设备推出了Go版本的应用,当然也可以安装其他任意一种应用。
Android Oreo 8.1最重要的一个特性是神经网络API(NNAPI),支持硬件加速,以便更好地执行机器学习任务,如创建、编译和执行模型。机器学习框架(如TensorFlow Lite等)可以使用NNAPI。
Android Oreo 8.1在下周就可以支持Pixel和Nexus,其他设备厂商则要等到下个月。Android 8.1的源代码已经发布出来了。
未发布 矢量图形引擎库VectorDraw Developer Framework发布v7.7014.0.5
VectorDraw Developer Framework(VDF)v7.7014.0.5更新内容:
WebJS
新增需求(7.7014.0.1)
新增需求(7.7014.0.5)
漏洞(7.7014.0.1)
70001204 线路对象捕捉无法运作
70001206 导出到vds脚本时出现异常
70001210 WebGl渲染中的实体影线问题
漏洞(7.7014.0.5)
Converter
新增需求(7.7014.0.1)
漏洞(7.7014.0.1)
漏洞(7.7014.0.5)
Engine
新增需求(7.7014.0.3)
- 70001231 改进触摸控制
- 70001234 使用Wrapper检查鼠标是否位于ViewCube内部
- 70001239 是否可以在OnFilterOsnap事件中获取交集对象
- 70001241 用webGl 3d模式绘制线条和文本
漏洞(7.7014.0.3)
- 70001235 版本2000中的DXF导出问题
- 70001236 在Wire2D模式下,线路抗锯齿功能无法正常工作
- 70001237 鼠标没有正确渲染
- 70001238 vdLayout调整大小将引发异常
- 70001240 AlignToView对象在PDF输出中缩放
- 70001242 导出多边形为dwg dxf文件格式时出错
漏洞(7.7014.0.4)
- 70001243 不完整的纸张模型刷新
- 70001245 当VectorDrawBaseControl WndProc被调用时,出现间歇性崩溃
未发布 如何选择你的移动APP KPIs(关键绩效指标) 移动APP市场正以惊人的速度发展。越来越多的人在户外时会选择移动端来访问网络。为了取得更大的竞争力和获得更多用户的注意力,移动端APP开发者还有许多应该做的。近年来应用商店非常受欢迎,它可以为每个使用手机的人提供适合他们的应用。面对这种情况,移动端APP开发者如何衡量自己的应用是否成功呢?在移动应用发展过程中,下载量已经不是衡量成功的唯一标准了。
你需要更精准的关键绩效指标(KPIs)来评判你的APP在市场中的表现是好是坏。需要特别注意的是每个APP是不同的,因此你应该根据自身APP所属的类别来选择KPIS。同样的,所选的指标也必须符合你的商业目标。下面就教大家如何选择你的移动APP KPIs。
查看完整方法>>>>> 未发布 屏幕记录机BB FlashBack v5.26.0发布丨附下载 BB FlashBack是一种屏幕记录器,能快速容易地创建视频。有详尽的软件阐述、屏幕演示、介绍、指南以及练习。目前BB FlashBack在线订购享75折优惠活动正在进行中,欢迎您下载、购买进行运用!
v5.26.0更新内容:
修复:首次显示网络摄像机预览窗口时,可能会错误地显示某些网络摄像头。
修复:WMV导入时可能会显示“division by zero”的错误。
修复:当视频包含暂停时导出到Quicktime的问题。
修复:快速批量导出器应该只导出最大的WMV格式。
修复:如果选择了未显示的帧,则无法隐藏摄像头。
简化MP4导出的缩放选项。
修复:批处理导出一些FBR文件时崩溃的问题。
将最大摄像头FPS增加到30。
修复:相同命名的声源造成的问题。
针对8Gb及以上的电脑,当录音停止时,现在默认打开。
修复:使用文件大小限制时,记录器可能会尝试保存为临时文件夹。
修复:使用“打开”功能时,播放器不会默认使用以前的文件夹。
试用、下载、了解更多产品信息请点击"咨询在线客服"

未发布 Microsoft将持续交付功能添加到Visual Studio、Azure Microsoft正在向Visual Studio 2017 IDE中添加持续交付功能。
Visual Studio扩展的持续交付工具允许开发人员在Visual Studio团队服务ALM平台上设置自动构建、测试和发布管道。它适用于面向Azure应用服务和Azure容器服务的ASP.Net 4和ASP.Net Core应用程序。开发人员可以通过IDE中的通知来监视管道,提醒他们连续集成运行中发生的生成失败信息。
未发布 MailBee.NET Objects发送电子邮件(SMTP)教程八:使用多个SMTP服务器发送邮件 MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
本文主要介绍了如何使用使用多个SMTP服务器发送邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
当开发人员不确定他将用于发送电子邮件的SMTP服务器是否可靠(例如,有时服务器崩溃)时,使用多个SMTP服务器则非常有用。例如,当使用单个SMTP服务器发送消息时,如果此SMTP服务器崩溃,则MailBee无法发送消息。但是,在使用多个SMTP服务器时,如果一个SMTP服务器崩溃,MailBee会根据这些服务器的优先级别尝试使用其他SMTP服务器。
因此,使用多个SMTP服务器增加了邮件发送成功的可靠性。MailBee.NET Objects允许开发人员管理SMTPSERVER对象的集合,存储在SMTP.SmtpServers的SMTP对象的属性。开发人员应调用SMTP.SmtpServers.Add方法向集合添加一个新的SmtpServer对象实例。这个方法有五个重载。第一个重载允许添加直接SmtpServer对象,如下所示:
| C#: SmtpServer smtp_srv = new SmtpServer(); smtp_srv.Name = "mail.domain.com"; smtp_srv.AccountName = "john_doe"; smtp_srv.Password = "secret"; oMailer.SmtpServers.Add(smtp_srv); |
VB.NET: Dim smtp_srv As SmtpServer = New SmtpServer() smtp_srv.Name = "mail.domain.com" smtp_srv.AccountName = "john_doe" smtp_srv.Password = "secret" oMailer.SmtpServers.Add(smtp_srv) |
SMTP.SmtpServers.Add方法的下一次重载允许通过指定的服务器名称或相应的IP地址添加新的SMTP服务器,如下所示:
| C#: oMailer.SmtpServers.Add("127.0.0.1"); oMailer.SmtpServers.Add("smtp.company.com"); |
VB.NET: oMailer.SmtpServers.Add("127.0.0.1") oMailer.SmtpServers.Add("smtp.company.com") |
此外,开发人员可以指定SMTP服务器的端口号和优先级。默认优先级为0(即最高),默认端口号为25。以下代码将两个具有不同优先级的SMTP服务器添加到集合中:
| C#: oMailer.SmtpServers.Add("127.0.0.1", 33, 1); oMailer.SmtpServers.Add("smtp.company.com", 37, 2); |
VB.NET: oMailer.SmtpServers.Add("127.0.0.1", 33, 1) oMailer.SmtpServers.Add("smtp.company.com", 37, 2) |
此外,SMTP.SmtpServers.Add方法的以下重载允许通过指定的服务器名称(或相应的IP地址)、登录名和密码将SMTP服务器添加到集合中,如下所示:
| C#: oMailer.SmtpServers.Add("127.0.0.1", "dan_brown", "password"); oMailer.SmtpServers.Add("smtp.company.com ", "john_doe", "secret"); |
VB.NET: oMailer.SmtpServers.Add("127.0.0.1", "dan_brown", "password") oMailer.SmtpServers.Add("smtp.company.com ", "john_doe", "secret") |
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。