未找到

未发布 Oracle宣称Java将每半年发布一个版本
by Harriet666 keys 分享 1505123495989
Oracle近日宣布,他们将Java的发布频率改为每六个月一次。

JCP执行委员会在八月份的会议上提到了这一说法,随后,Oracle发言人Donald Smith在他的博客中确认了这一消息。该决定将在Java 9正式发布之后开始实行,也就是说,Java的下一个发布日期是2018年初。

除了发布周期,Oracle还宣布了在Java的构建和发布方式方面所发生的主要变化。Oracle将把OpenJDK的二进制包作为面向开发者的主要版本,取代之前的Oracle JDK。

OpenJDK将采用GPLv2许可(包括“类路径例外”)免费发行,移除了之前在Oracle JDK上存在的一些限制。Oracle JDK仍然会继续存在,但需要与Oracle签订协议才能获得Oracle提供的长期支持。

Java首席架构师Mark Reinhold说,为了避免出现像Java 8和Java 9那样的延期情况,所有决定实行新的发布周期。

Java当前的发布周期为两年一次,Java 9因为模块化系统(Jigsaw)问题一再延期,已经比预期晚了18个月。之前,Java 8也因为安全问题延期了8个月左右。Java 9的GA版本将在9月21号发布。

新的发布周期严格遵循时间点,将在每年的3月份和9月份发布,相应的版本号为18.3、18.9、19.3等。与现在的发布周期不同,新的发布计划不会为了等待某个主要特性完成而延期。如果一个特性还没有完成,它就不会被合并到发布用的代码仓库里。如果错过了一个版本,就要等待下一次发布。

新的发布周期旨在避免未完成的里程碑特性(比如Java 8的Lambda或Java 9的模块化系统)造成发布延期,让其他一些有用的特性也无法与开发者见面。

除了新的发布周期,Oracle将会继续每个季度发布更新版本,时间分别为1月份、4月份、7月份和10月份。也就是说,在下一个大版本发布之前,当前版本都会有两个更新版本。更新版本只包含安全问题修复或回归错误的修复。

Reinhold说:开发者希望加快速度,这样他们就能够尽快地在生产环境中使用新的特性。

对于没有必要快速升级Java版本的企业和组织来说,Oracle建议他们签订每三年一次的长期支持(Long Term Support,LTS)协议。他们因此可以获得由Oracle提供的至少三年的支持,还有可能更长时间,这要取决于市场的反应。

Oracle建议第一个LTS版本为“18.9”,不过这需要与其他的OpenJDK贡献者讨论过后才能最终确定。Java 8被作为一个特别的LTS版本,支持日期截止到2025年。

Smith说:OpenJDK是开发者了解和使用Java SE平台最主要的渠道,而Oracle JDK继续作为Oracle收费用户的LTS版本。

伦敦Java社区的负责人Martijn Verburg也发表了他对新发布周期的看法:新的Java发布周期对于Java生态系统来说是一件好事情。Java 9的Jigsaw和孵化模块问题促成了这一局面的发生。Oracle确实面临着发布方面的巨大挑战,不过OpenJDK社区拥有足够的知识来帮助一起解决挑战。我希望看到中间会有所突破,不过对常规的发布周期仍然很期待。其他实现者可以更早地访问到规范的草案,这样他们就可以更早、更经常地发布版本。

Oracle的Java发布速度经常受到诟病,Java被广大的企业组织所采用,并已成为大量开源平台和语言的基础,而这样的发布速度让Java处于很尴尬的境地。新的Java发布周期恰好满足了广大用户的期望,不过这仍然需要等待Java开发者和Oracle用户的反馈。
未发布 MailBee.NET Objects退回邮件教程(二):POP3部分
by Harriet666 keys 分享 1503567760428
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,
简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。

MailBee.NET Objects介绍和试用点击查看>>>
 
 
本文主要介绍了SMTP服务器退回邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
 
在上期的SMTP部分中,我们将退回的电子邮件发送到指定的单个电子邮件地址。
 
每封退回的电子邮件都包含失败的电子邮件地址(以及其他信息)。这个失败的地址是我们想知道的。这个任务看起来很简单 - 你需要做的是扫描退回的
邮件以确定地址的典型字段。但是有一个隐藏的危险:每个邮件服务器都有自己的邮件退回格式。虽然它们几乎具有相同的“From”和“主题”字段,但是退回地址可以在邮件的任何位置。MailEnable服务器的典型退回邮件如下所示:
From: POSTMASTER@domain.com
To: jdoe@domain.com
Subject: Message Delivery Failure

MailEnable: Message Delivery Failure.

The following recipient(s) could not be reached: 

Recipient: [SMTP: bill@domain.com] Reason: The message could not be delivered because the domain name (domain.com) does not appear 

to be registered.

函数GetInvalidEmailAddressME()检查邮件是否被退回,并从退回的邮件中提取失败的地址。由于退回邮件格式不同,此功能仅对MailEnable服务器有效。例如,如果你正在使用Communigate Pro服务器,则退回消息如下所示:
From: MAILER-DAEMON@domain.local
To: jdoe@localhost Subject:
Undeliverable mail:

Failed to deliver to ''
 
正如你所看到的,这个退回的邮件与前一个几乎相同。使用哪个服务器并不重要,退回信息总是有From,To和Subject字段,退回信息在其正文中有失败的地址。函数GetInvalidEmailAddressCP()与前一个函数几乎相同; 区别仅在于检查邮件字段并搜索失败的地址。支持尽可能多的退回电子邮件格式至关重要。这就是为什么你需要修改GetInvalidEmailAddress()函数,以适应服务器使用的退回电子邮件格式。
 
注意:在某些情况下,你可能需要扫描退回的电子邮件以获取其他信息。如果由于暂时的问题,退回的邮件到达,则不要删除电子邮件地址:邮箱超过配
额,邮件服务器关闭等。退回邮件可以分为两种类型:硬邮件和软邮件。如果是不存在的帐户或域,则会发生硬性退回。其他故障,如完整的邮箱或暂时
不可用的域,则是软性退回。你可以为数据库中的每个地址进行计算。也许下一次尝试发送邮件到具有一些软性退回的地址时将成功。
 
代码示例:
在此示例中,我们从指定的帐户中检索退回的电子邮件,然后从每个退回的电子邮件中提取失败的电子邮件地址。失败的地址传递给RemoveEmailFromDatabase子程序,该子程序必须从数据库中删除失败的地址。应用程序还会从服务器中删除退回的电子邮件,以避免下次处理。
C#:
// Create POP3 object
Pop3 pop = new Pop3();

// Enable logging to file
pop.Log.Enabled = true;
pop.Log.Filename = @"C:\log.txt";
pop.Log.Clear();

// Connect to POP3 server
pop.Connect("mail.domain.com");
pop.Login("bounce", "secret");

// Download headers and bodies of all messages.
MailMessageCollection msgs = pop.DownloadMessageHeaders(1, -1, -1);
                        
// Loop through all messages in the mailbox
foreach (MailMessage msg in msgs)
{
        string strLine = msg.BodyPlainText;
        Console.WriteLine("From: " + msg.From.Email);
                                
        // Get failed email address
        string str_invalid_email =  GetInvalidEmailAddressME(msg);

        // If str_invalid_email is non-empty then failed email 
        // address was found
        if (str_invalid_email.Length > 0)
        {
                // Remove failed email from database
                RemoveEmailFromDatabase(str_invalid_email);

                // Display invalid adress
                Console.WriteLine("Invalid email: " + str_invalid_email);                

                // Delete bounced email from server to avoid
                // processing it next time
                pop.DeleteMessage(msg.IndexOnServer);
        }
}

// Disconnect from POP3 server
pop.Disconnect();

// The function checks whether the message is bounced and extracts 
// failed address 
// from bounced message. Valid only for MailEnable servers
static string  GetInvalidEmailAddressME(MailMessage msg)
{
        string str_invalid_email = msg.BodyPlainText;

        // Check if this is a bounced message report
        if (msg.Subject.IndexOf("Delivery Failure") == -1)
{ 
                return "";
        }
        if (msg.From.ToString().IndexOf("POSTMASTER") == -1)
        {
                return "";
        }

        // Now we're sure this is a bounced message report
        int i_start;
        i_start = str_invalid_email.IndexOf("SMTP:");

        // Check if bounced message report contains "Recipient:" field
        if (i_start == -1)
        {
                return "";
        }
                        
        // Get failed address
        i_start += 5;
        i_end = str_invalid_email.IndexOf("]",i_start);
        str_invalid_email.Substring(i_start, i_end);
                        
        return str_invalid_email;
}

// The function checks whether the message is bounced and extracts 
// failed address 
// from bounced message. Valid only for Communigate Pro servers
static string  GetInvalidEmailAddressCP(MailMessage msg)
{
string str_invalid_email = msg.BodyPlainText;

        // Check if this is a bounced message report
        if (msg.Subject.IndexOf("Undeliverable mail") == -1) 
        {
                return "";
        }
        if (msg.From.ToString().IndexOf("MAILER-DAEMON") == -1) 
        {
                return "";
        }

        // Now we're sure this is a bounced message report
        int i_start;
        i_start = str_invalid_email.IndexOf("to '<");

        // Check if bounced message report contains 
        // "Failed to deliver to " field
        if (i_start == -1)
        { 
                return "";
        }
                        
        // Get failed address
        i_start += 5;
        i_end = str_invalid_email.IndexOf("]",i_start);
        str_invalid_email.Substring(i_start, i_end);
                        
        return str_invalid_email;
}

// This function must remove (or disable) specified
// email address from mailing list
static void RemoveEmailFromDatabase(string str_invalid_email)
{
// TODO: Add your code here                        
}
 
VB.NET:
Dim pop As New Pop3

' Enable logging to file
pop.Log.Enabled = True
pop.Log.Filename = "C:\log.txt"
pop.Log.Clear()

' Connect to POP3 server
pop.Connect("mail.domain.com")
pop.Login("jdoe", "secret")

' Download headers and bodies for all messages.
Dim msgs As MailMessageCollection = pop.DownloadMessageHeaders(1, -1, -1)

' Loop through all messages in the mailbox
Dim msg As MailMessage
For Each msg In msgs
        Dim strLine As String = msg.BodyPlainText
        Console.WriteLine("From: " + msg.From.Email)

        ' Get failed email address
        Dim str_invalid_email As String = GetInvalidEmailAddressME(msg)

        ' If str_invalid_email is non-empty then failed email 
        ' address was found
        If str_invalid_email.Length > 0 Then
                'Remove failed email from database
                RemoveEmailFromDatabase(str_invalid_email)

                ' Display invalid address
                Console.WriteLine("Invalid email: " & str_invalid_email)

                ' Delete bounced email from server to avoid
                ' processing it next time
                pop.DeleteMessage(msg.IndexOnServer)
        End If
Next
Console.ReadLine()

' Disconnect from POP3 server
pop.Disconnect()

' The function checks whether the message is bounced and extracts 
' failed address 
' from bounced message. Valid only for MailEnable servers
Function GetInvalidEmailAddressME(ByVal msg As MailMessage) As String
        Dim str_invalid_email As String = msg.BodyPlainText

        ' Check if this is a bounced message report
        If msg.Subject.IndexOf("Delivery Failure") = -1 Then
                Return ""
        End If
        If msg.From.ToString().IndexOf("POSTMASTER") = -1 Then
                Return ""
        End If

        ' Now we're sure this is a bounced message report
        Dim i_start As Integer, i_end As Integer
        i_start = str_invalid_email.IndexOf("SMTP:")

        ' Check if bounced message report contains "Recipient:" field
        If i_start = -1 Then
                Return ""
        End If

        ' Get failed address
        i_start += 5
        i_end = str_invalid_email.IndexOf("]", i_start)
        str_invalid_email.Substring(i_start, i_end)

        Return str_invalid_email
End Function

' The function checks whether the message is bounced and extracts 
' failed address 
' from bounced message. Valid only for Communigate Pro servers
Function GetInvalidEmailAddressCP(ByVal msg As MailMessage) As String
        Dim str_invalid_email As String = msg.BodyPlainText

        ' Check if this is a bounced message report
        If msg.Subject.IndexOf("Undeliverable mail") = -1 Then
                Return ""
        End If
        If msg.From.ToString().IndexOf("MAILER-DAEMON") = -1 Then
                Return ""
        End If

        ' Now we're sure this is a bounced message report
        Dim i_start As Integer, i_end As Integer
        i_start = str_invalid_email.IndexOf("to '<")

        ' Check if bounced message report contains 
        ' "Failed to deliver to " field
        If i_start = -1 Then
                Return ""
        End If

        ' Get failed address
        i_start += 5
        i_end = str_invalid_email.IndexOf("]", i_start)
        str_invalid_email.Substring(i_start, i_end)

        Return str_invalid_email
End Function

' This function must remove (or disable) specified
' email address from mailing list
Sub RemoveEmailFromDatabase(ByVal str_invalid_email As String)
        ' TODO: Add your code here                        
End Sub
未发布 .Net文档图像处理工具包GdPicture.NET发布v14.0.30,改进PDF/OCR生成速度
by Harriet666 keys 分享 1515058010029
GdPicture.NET是一款功能全面且可无限分发的文档图像处理工具包,开发者可将其作为.NET组件运用在他们的C#, VB.NET和CodeGear应用程序中,从而实现文档生成,显示,获取,编辑和打印等功能。在您的程序中使用GdPicture.NET,可实现文档显示,获取TWAIN扫描图像,进行图像处理,执行光学字符识别操作,其涵盖了所有主流领域的其他文件成像技术。
 
GdPicture.NET v14最新版下载>>> 

GdPicture.NET v14.0.30更新内容

  • 改进了检测空白页的准确性。
  • 改进了页面方向检测精度。
  • 改进了autodeskew引擎的准确性。
  • 改进了PDF/OCR生成的准确性和速度。
  • 小的错误修复。
未发布 【推荐】2017年你应该了解的11款新型编程工具
by Harriet666 keys 分享 1503912408799
对于开发人员来说,工具是至关重要的。工具可以使开发人员的日常工作更加轻松、高效,因为只要关注最重要的事情即可。想要寻找到更好的替代工具往往比坚持使用熟悉的、过时的工具要困难得多。在这篇文章中,我们将列出你可以在日常工作中使用的一些新的编程工具。对在线流媒体感兴趣的许多开发人员也已经开始在其开发环境中使用这些新工具,因为这些工具与其陈旧的设施相比具有明显的优势。
 
你可能会想,如果旧的工具可以完成工作,那么是否还有必要去寻找新的替代工具呢?可以肯定的说,技术始终在变革,它正在不断地塑造、改变我们的工作方式,所以,它有必要保持更新。此外,新开发工具可以通过自动化在某些方面为你的工作增添更多价值,从而更好地帮助你控制你的工作流程。所以,如果你现在确信并准备好考虑使用市场上一些新的编程工具,请继续阅读本文,以找出其中最好的、最适合你的工具。
 

1. LiveEdu


LiveEdu 是开发人员和工程师经常光顾的好地方。它是一个基于项目的学习平台,服务于游戏开发、设计、数据科学、编程、增强现实、人工智能以及虚拟现实等方面的技能提升。学习的关键在于项目的真实性,而且 LiveEdu平台还提供了蕴含许多不同主题的项目教程,可以适用于任何人,包括初学者。
 

2.Standup


Standup 对于监控团队开发进度而言是一款非常好的工具。它可以很好地集成所有你已经在用的流行工具(例如Trello、BitBucket、GitHub等)。那么接下来,它是如何工作的呢?首先,它会根据开发团队成员的提交历史完全自动地生成工作报告。这有助于团队成员之间轻松地实现信息共享,也让团队成员之间形成了积极的竞争关系。这一想法是由Mesh Studio提出的,当时他们正在完成一个客户的严格的汇报需求的合同工作。
 

3. Cell 

Cell 自称是“自驱动的网页应用开发框架”。“框架”这一关键词应该会立刻让你想到,它应该包含APIs、方法、或其他框架应该具备的功能。但是,Cell却提供了一种全新的方式来查看如何编写HTML 代码。它适用于3个简单的规则,而且不运行任何函数就能够自主构建DOM。此外,Cell还提供了一种类似写小说的方式(a novel approach)来开发网页应用。
 

4. Osquery

Osquery 是 Facebook 通过 Query 语言揭示操作系统的方法。虽然乍看起来并不是很有趣,但它其实具有很多实际的用途。例如,它可以用于获取通过USB连接的硬件设备的列表。
 
对于那些想要保护自己的应用程序免受安全漏洞影响,或是能够更好地监视其应用程序在不同系统上的性能的Web开发人员来说,其中一个相对比较有效的方法就是不使用底层函数或API交互的能力。

 

5. React Native Firebase

React Native Firebase 可以帮助开发人员更加轻松地使用 React Native 和Firebase。利用RN Firebase,你可以 在Android和iOS系统上使用 JavaScript bridge轻松访问本地 eFirebase SDK。
 

6. Warp

Warp 是一款非常简单的工具。它可以让任何人分享他们的终端。共享终端就像输入一个 warp open 命令一样简单。这可以帮助开发人员或主机供应商轻松地分享彼此的终端。这款工具的关键特征在其“安全性”和“易于传输”。让分享变得前所未有地容易!你很快就会忘记SSH 的必要性,并使用该功能与远程团队和新成员进行互动。
 

7. Draft

Draft 是一款新工具,可以帮助开发人员轻松地在 Kubernet上构建应用程序。截至目前为止,在把应用移动到版本库之前,对应用程序进行测试仍然是一项耗时且艰巨的工作。但是,利用 Draft,开发人员就可以针对“内部循环”并在Kubernetes开发沙箱中对应用程序进行测试。沙箱可以通过公共URL轻松获得,并可以使用本地编辑器进行修改。
 

8. Docsify 

Docsify 是一个文档站点生成器工具。但是,它与其他的静态HTML文件生成器却是完全不同的。利用Docsify,你可以使用 Markdown 文件生成你的站点。这样一来,你就可以修改Markdown中的代码,并及时看到更新。这种差异性使它与其他流行工具(例如GitBook等)相比也能占据明显的竞争优势。


9. Prismic IO 

Prismic IO 是一个无头CMS系统的后台应用。多亏了API,让它可以与任何站点和应用程序一起使用,并可以轻松地与现有系统进行集成。此外,CMS 还为营销人员提供了一些现代化的发布和创作工具。


10. Javalin

Javalin 为Kotlin和Java提供了简单的REST API。该REST API非常易于使用,且API也是非常流畅的。它不是一个框架,因此不应该被混淆。其目的主要是提供一个非常简单易用的轻量级 REST API库。
 
以下是用Kotlin实现的 “Hello World”API的示例:
import io.javalin.Javalin
funmain(args: Array) {
    val app = Javalin.create().port(7000)
    app.get("/") { ctx -> ctx.result("Hello World") }
}


11. Bootsnap

我们都知道,速度对于一些应用程序而言有多重要。Ruby的性能可谓是臭名昭著。然而,Bootsnap尝试通过缓存很多Ruby方法并提高其整体性能来加快其速度。Bootsnap可以以gem的形式轻松地插入你的应用程序中,它目前可用于 MacOS 和 Linux 系统。
未发布 Microsoft为其Visual Studio和.Net Core添加了新的工具
by Harriet666 keys 分享 1489634333886
微软正在改进其Visual Studio IDE和.Net Core开源运行的工具。用于Visual Studio和.Net Core Tools的Power Productivity Tools添加了功能,包含突出错误显示和Docker功能。
Visual Studio 2017下载地址>>
未发布 Essential Studio for JavaScript发布2017 v2,扩展企业Web开发界限
by Harriet666 keys 分享 1495701834376
Essential Studio for JavaScript是首款专门用于LOB应用开发的JavaScript框架。包含40多种独特的、全新设计的控件,包括网格、图表、计量器、编辑器、树形视图、菜单、OLAP网格等等。
 
Essential Studio for JavaScript发布2017 v2版本,扩展了企业Web开发的界限。
 
【Essential Studio for JavaScript最新版下载>>>】

所有JavaScript控件通用

Aurelia

添加框架导航,以便轻松浏览Aurelia Syncfusion Bridge,其中包含TypeScript,ASP.NET Core和ECMAScript Next(esnext)的框架。

支持Angular

Essential Studio for Angular现在支持提前(AOT)编译。

Ionic 2

Essential Studio for JavaScript现在支持Ionic 2,允许创建高性能的企业移动应用程序。并支持以下功能:
  • 使用Syncfusion Angular 2组件创建的能力。
  • 支持TS和SASS。
  • 轻松与电子桌面应用程序集成。
  • 50多个企业控件。
  • 强大的主题。
  • 轻松访问Cordova或PhoneGap的本地功能。
  • 支持所有Ionic 2工具。

图表

饼状图系列

增加创建饼状图的新功能。

打印

支持打印图表。

改进轴元件配置

图表控件现在可以防止轴图元素(如标签和标题)放在图表区域内时,图表值越过轴的问题。

 

圆形表盘

图例

添加图例来表示圆形表盘中的范围。

 

图表

标签的模板选项

图表控件现在支持在HTML和SVG渲染模式中定义标签的模板内容。

 

PDF查看器

文本标记注释

文本标记注释(高亮、下划线和删除线)已添加到PDF查看器控件中。现在可以加载PDF文档,包括文本标记注释,并且可以编辑现有注释。

 

时间表

隐藏周末

周末可以隐藏在调度程序中,并在所有视图中只显示工作日。

 

拼写检查器

打字时检查拼写

当按下Enter键或空格键时,拼写检查器控件主动检查拼写错误。它还可以在选定的文本中检查错误。

使用“类”来检查多个目标

可以根据CSS类或ID来检查多个HTML元素(如div、span、textarea和input)。

检查内联框架中的拼写

拼写检查器控件允许检查内联框架(iframe)中的内容是否有拼写错误。

甘特图

导出PDF

甘特图内容现在可以导出为PDF。

自定义工具栏项目

甘特图控件现在支持自定义工具栏项目。

 

列表框

排序

现在可以按升序或降序自动排序列表项。

 

列表显示

虚拟滚动

添加正常模式和连续模式下的虚拟滚动支持,无需缓冲即可加载大量数据。

 

数据透视图表

分组标签

数据透视图表中的分组标签可以选择向上和向下拉取以提供详细的系列信息。

Pivot客户端

计算成员

Pivot客户端支持通过交互式对话框在运行时创建和显示维度和测度。

所有Pivot控件通用

Mondrian XML/A连接(客户端模式)

所有数据透视控件都可以通过不同版本的XML/A连接从Mondrian中检索多维数据,仅适用于客户端模式。

富文本编辑器

粘贴清理

从Word或网页(HTML)复制的内容将在粘贴到富文本编辑器时进行预处理,清理和格式化以获取正确的HTML。

树型网格

自适应渲染

树型网格控件的UI已经在移动环境中得到了改进。

对话框编辑

树型网格控件现在支持对话框编辑。

自定义工具栏

树型网格控件现在支持自定义工具栏。

列验证

记录在更新到数据库之前可以进行验证。

映射展开状态

初始加载时可以映射树形网格中记录的展开/折叠状态。

复选框列

树型网格支持通过Boolean数据显示复选框列。

未发布 超实用CAD控件CAD VCL发布v12,支持Embarcadero®RAD Studio 10.2 Tokyo丨附下载
by Harriet666 keys 分享 1497599034716
CAD VCL是一个高品质多功能且含源码的控件,它提供了几个强大的类用于为您的Delphi/C++Builder应用程序创建AutoCAD DXF, CGM, Hewlett-Packard PLT/HPGL, PDF和SVG文件。

【CAD VCL 12最新版下载>>>】


CAD VCL 12支持Embarcadero®RAD Studio 10.2 Tokyo,并支持最新的AutoCAD®DWG 2018。
 
我们发布了CAD VCL 12,它是一个Delphi和C ++ Builder的新版本CAD库。不久前Embarcadero®RAD Studio 10.2 Tokyo发布。我们很高兴地通知你,新版本的CAD VCL 12也与此开发环境兼容。
 
除了这项更新,CAD VCL还支持最新的DWG版本 - AutoCAD®DWG 2018。因此,使用CAD VCL 12创建的应用程序将能够阅读最新的图纸。
0709e112747c47a38c3156e0719e0e8aojpg
CAD VCL 12中包含的改进内容列表:
  • 支持Embarcadero®RAD Studio 10.2 Tokyo
  • 导入AutoCAD®DWG 2018
  • 改进了通过Windows图元文件导出功能
  • 导出G-code
 
你可以下载最新版本的CAD VCL来测试这些功能>>>
未发布 AutoVue现在支持本地2D Creo / ProE图纸
by Harriet666 keys 分享 1513241496432
随着最新的AutoVue 21.0.1 RUP3的发布,Oracle重新引入了对2D Creo / ProE图纸的本地支持。 
 
为了提供一些上下文,Creo / ProE工程图包含完整的“本地”数据以及图形的预处理“显示列表”版本。使用“显示列表”往往会呈现绘图的最高保真度,但是在某些情况下不会出现,或者不会保持最新。
 
因此,AutoVue将优先显示“显示列表”版本。但是,如果显示列表不存在,或者如果检测到它已过时,将显示原始数据,以确保用户看到最新的信息。
 
AutoVue产品

AutoVue 3D Professional Advanced

提供了对领先的中型 3D CAD 包和主流的 2D CAD 软件的查看和标注的功能。


AutoVue Electro-Mechanical Professional

一款连接EDA和MCAD的文档信息处理控件


AutoVue EDA Professional

一个多用途,多功能的图文浏览,标注,协同作业的应用软件


AutoVue Office

可以用来浏览、注释、链接以及打印各种文件格式的文件。


AutoVue 2D Professional

AutoVue 2D 可原生查看文档,这就避免了最终用户使用原始程序,或转换文档到中间格式的麻烦。

未发布 Microsoft将持续交付功能添加到Visual Studio、Azure
by Harriet666 keys 分享 1488247992794

Microsoft正在向Visual Studio 2017 IDE中添加持续交付功能。

Visual Studio扩展的持续交付工具允许开发人员在Visual Studio团队服务ALM平台上设置自动构建、测试和发布管道。它适用于面向Azure应用服务和Azure容器服务的ASP.Net 4和ASP.Net Core应用程序。开发人员可以通过IDE中的通知来监视管道,提醒他们连续集成运行中发生的生成失败信息。

具体更新功能点击查看>>>

未发布 【示例教程】LEADTOOLS中如何载入DICOM文件并压缩
by Harriet666 keys 分享 1510907723026
LEADTOOLS可帮您开发出功能强大的文档图像应用程序。其主要功能包括综合图像注释,专业的黑白图像显示(例如灰度级和偏黑),以及专业的黑白图像处理。其它功能包括对黑白图像的性能和内存进行优化,文档图像清理(包括倒置文本,去边界,去打孔机和去线)以及使用LEADTOOLS Fast TWAIN和WIA进行扫描。
 
本篇文章分享一个基本的LEADTOOLS C#代码示例,讲解如何载入DICOM文件,然后将它压缩保存以减少文件大小。
 
在压缩时,你将使用jpeg2000压缩类型。一旦初始化了DicomJpeg2000Options选项,就可以开始为新的DICOM文件设置选项了。
 
有两个枚举,将在这个过程中使用的:
  • CompressionControl-获取或设置指示如何确定所产生的压缩。
  • CompressionRatio -获取或设置指示压缩比使用整型值。
一旦你有了这些枚举集合的DicomJpeg2000Options选项,你需要给数据集本身的选项。
 
现在你可以使用ChangeTransferSyntax改变数据集的传输语法。
 
最后,你可以使用保存方法保存数据集。
 
通过这些设置,我们可以将DICOM文件从从854kb压缩到36kb。
 
DicomEngine.Startup();
using (DicomDataSet ds = new DicomDataSet())
{
   //Load DICOM File 
   ds.Load(input, DicomDataSetLoadFlags.None);

   //Initialize J2K Options
   DicomJpeg2000Options options = ds.DefaultJpeg2000Options;

   //Set Options
   options.CompressionControl = DicomJpeg2000CompressionControl.Ratio;
   options.CompressionRatio = 50;

   //Add options to the dataset
   ds.Jpeg2000Options = options;

   //Change the transfer syntax to J22K
   ds.ChangeTransferSyntax(DicomUidType.JPEG2000, 2, ChangeTransferSyntaxFlags.MinimizeJpegSize);

   //Save Dicom file
   ds.Save(dest, DicomDataSetSaveFlags.None);

   //Shut down the DICOM engine
   DicomEngine.Shutdown();
}

 近期热门 - 点击最多
  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