未找到

未发布 Edraw Office Viewer component教程(三):将MS Word、Excel、PowerPoint嵌入到WPF应用程序中
by Harriet666 keys 分享 1494580929229
如何将Word、Excel、PowerPoint嵌入WPF应用程序?大部分人应该都记得可以将Excel图表嵌入到Word文档中的OLE技术,但该技术并不支持所有的Microsoft Office文档。它不支持表单中的多个MS Word实例。而Edraw office viewer component对于开发人员可以说是最简单的可以将Word文档、Excel工作表、PowerPoint演示文稿嵌入到WPF应用程序中的解决方案。
 
本文将演示如何逐步嵌入MS Word到wpf应用程序中。如果你没有officeviewer.ocx文件,请先安装。在组件安装文件夹中,你还可以找到wpf示例项目。
打开Visual Studio并创建一个新的WPF应用程序。
右键单击WpfApplication1解决方案。然后单击“Add”菜单并选择“User Control...”。

wpf项目中将会增加一个新的窗体。
选择“User Control”项。不是“User Control(WPF)”项。
双击解决方案面板中的UserControl1.CS。
打开“工具箱”面板,然后单击菜单中的“ Choose Items...”。
在弹出的“Choose Toolbox Items”对话框中,选择“Edraw Office Viewer Component”,然后单击“确定”。
现在,Edraw Office Viewer Component已添加到工具箱的“常规”选项卡中。在UserControl窗体中拖动它。
通过Visual Studio将AxEDofficeLib和EDOfficeLib添加到该解决方案中。
输入打开word文档的C#代码,并保护word文档的修改如下所示:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WpfApplication1
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
public void Open()
{
axEDOffice1.OpenFileDialog();
}
public void Protect()
{
if (axEDOffice1.GetCurrentProgID() == "Word.Application")
{
axEDOffice1.ProtectDoc(2);
}
}
public void Print()
{
axEDOffice1.PrintPreview();
}
public void Close()
{
axEDOffice1.ExitOfficeApp();
}
}
}

最后,你需要为UserControl编写主机窗口。切换到Windows1.xaml文件,然后添加打开、保护、打印和关闭的按钮,如图所示。

添加以下c#代码来关联office component。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication1
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void Open_Click(object sender, RoutedEventArgs e)
{
_host.Open();
}
private void Protect_Click(object sender, RoutedEventArgs e)
{
_host.Protect();
}
private void Print_Click(object sender, RoutedEventArgs e)
{
_host.Print();
}
private void Close_Click(object sender, RoutedEventArgs e)
{
_host.Close();
}
}
}

打开配置管理器。将Active Solution平台更改为x86选项。然后建立并运行。
Office Viewer component支持所有版本的MS Word。要将MS Excel或PowerPoint Visio、Project嵌入到WPF应用程序中,你只需要调用Open方法,如下所示:
public void Open()
{
//axEDOffice1.OpenFileDialog();
axEDOffice1.Open(sPath, "Word.Application");
axEDOffice1.Open(sPath, "Excel.Application");
axEDOffice1.Open(sPath, "PowerPoint.Application");
axEDOffice1.Open(sPath, "Visio.Application");
axEDOffice1.Open(sPath, "MSProject.Application");
}
 
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。

未发布 CAD绘图控件VectorDraw web library (javascript) v7.7010.1.0发布丨附下载
by Harriet666 keys 分享 1489478455256

VectorDraw web library (javascript)是一个矢量图形库,它不仅能打开CAD图纸,而且能显示任何支持HTML5标准平台上的通用矢量对象,如Windows,安卓,iOS和Linux。无需任何安装,VectorDraw web library (javascript)就可以运行在任何支持canvas标签和Javascript的主流浏览器(Chrome, Firefox, Safari, Opera, Dolphin, Boat等等)中。这意味着可以用DXF,DWG,DGN,VDML等多种格式在任何台式、平板电脑,智能手机和便携式笔记本上展现出你的业务。

VectorDraw web组件是一个革新性项目,其功能和性能得到了快速的提升。这意味着 VectorDraw web library 一直在加入新的功能和发展潜力。

【最新VectorDraw web library (javascript) v7.7010.1.0点击下载】

未发布 Edraw Office Viewer component教程(一):将Microsoft Word嵌入VB.NET并使之自动化
by Harriet666 keys 分享 1494316589819
Edraw office viewer component对于开发人员来说是一个将Microsoft Word文档嵌入到vb.net应用程序中的简单可靠的解决方案。
 
在VB.Net应用程序中嵌入word文档的最佳方法是什么?相信大多数人都记得OLE技术,它可以将Excel图表嵌入到Word文档中。使用Office XP Primary Interpol Assemblies或嵌入WebBrowser控件并导航到相应的Office文档等。但是所有这些技术都不支持完整的Microsoft Word功能。也有很多已知的错误。
 
本文将逐步介绍如何使用Edraw office viewer component在VB.NET应用程序中嵌入MS Word文件。如果你没有officeviewer.ocx文件,请先安装。
点击下载Edraw office viewer component>>>

打开Visual Studio并创建一个新的VB.NET应用程序。
右键单击HostOffice解决方案。然后单击“Add Reference...”的选项。
 
在弹出的对话框中,从浏览选项卡中选择officeviewer.ocx文件。
 
或从COM选项卡中选择Edraw Office  Viewer Component。
单击确定。Edraw Office  Viewer Component引用此时已添加到新的vb.net项目中。
 
切换到Form1的Form设计窗口。
 
将Edraw Office Viewer Component从“工具箱”面板拖到form1中。

添加以下VB.NET代码来新建、打开、保存、关闭并打印一个word文档,如下所示:
Public Class Form1
Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click
If Dialog1.ShowDialog() Then
If Dialog1.GetChooseType() = 1 Then
AxEDOffice1.CreateNew("Word.Application")
ElseIf Dialog1.GetChooseType() = 2 Then
AxEDOffice1.CreateNew("Excel.Application")
ElseIf Dialog1.GetChooseType() = 3 Then
AxEDOffice1.CreateNew("PowerPoint.Application")
ElseIf Dialog1.GetChooseType() = 4 Then
AxEDOffice1.CreateNew("Visio.Application")
ElseIf Dialog1.GetChooseType() = 5 Then
AxEDOffice1.CreateNew("MSProject.Application")
End If
End If
End Sub
Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click
AxEDOffice1.OpenFileDialog()
End Sub
Private Sub btnSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveAs.Click
AxEDOffice1.SaveFileDialog()
End Sub
Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
AxEDOffice1.CloseDoc()
End Sub
Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click
AxEDOffice1.PrintDialog()
End Sub
Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click
AxEDOffice1.PrintPreview()
End Sub
Private Sub btnToolbars_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToolbars.Click
If AxEDOffice1.Toolbars = True Then
AxEDOffice1.Toolbars = False
Else
AxEDOffice1.Toolbars = True
End If
End Sub
Private Sub btnAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAbout.Click
AxEDOffice1.AboutBox()
End Sub
End Class
 
打开配置管理器。将Active解决方案平台更改为x86选项。
 
然后创建VB.NET项目并开始运行。

The office viewer component支持MS Word 97、Word 2000、Word 2003、Word 2007、Word 2010。它可以在Windows 2000/Xp/Vista/2008/7的32位或64位操作系统上运行。将MS Excel或PowerPoint、Visio、Project嵌入到VB.NET应用程序中,只需要改变Open方法的第二个参数。如下所示:
public void Open()

axEDOffice1.Open(sPath,“Excel.Application”); 
axEDOffice1.Open(sPath,“PowerPoint.Application”); 
axEDOffice1.Open(sPath,“Visio.Application”); 
axEDOffice1.Open(sPath,“MSProject.Application”); 
}
 
有了word组件,在Visual Basic应用程序中使用COM实现Word自动化就会变得十分简单。从解决方案资源管理器引用中为Word Object Library 11.0添加引用。在这里我所用Word 2003,所以对象库的版本是11.0。
下面的示例代码显示了如何构建一个最小的文档,插入一个书签,并且在随后用文本更换空书签。
Imports Microsoft.Office.Interop.Word
Private Sub Automating_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handle Automating.Click 
Dim word = AxEDOffice1.GetApplication()
word.Visible = True 
Dim doc As Document = AxEDOffice1.ActiveDocument()
Dim range As Range = doc.Range 
range.InsertAfter(“Range1”+ vbCrLf)
range.Collapse(WdCollapseDirection.wdCollapseEnd)
doc.Bookmarks.Add(“MijnBookmark”,range)
range.InsertAfter(“Range2”+ vbCrLf)
Dim bookmark As Bookmark = doc。书签(1)
range = bookmark.Range 
range.Text =“Bookmark”+ vbCrLf 
range.Font.Color = WdColor.wdColorBlue 
End Sub
 
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。
未发布 GIS软件开发工具包TatukGIS Developer Kernel v11.6发布丨附下载
by Harriet666 keys 分享 1499072156533
GIS定制开发首选控件,帮您轻松搞定高效、优质、实惠的GIS解决方案

TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。众所周知,构建一个庞大的地理信息系统需要花费大量的金钱和人力,而TatukGIS却是同类产品中性价比最高的控件,TatukGIS Developer Kernel DK因其功能强大,价格适中,已被超过 50个国家的个人、公司、以及政府等客户用来实现其地理信息系统解决方案。根据不同地首选开发环境,本产品分别以五个独立产品的形式提供(即VCL、.NET/WPF、ActiveX、Compact Framework和ASP.NET),各个产品使用相同的框架、应用程序编程接口(API)技术。
 
TatukGIS Developer Kernel v11.6最新版点击下载>>>
 
TatukGIS Developer Kernel v11.6更新内容
此版本为移动平台和FMX带来了很多改进和GUI修复以及一些新功能。
  • 等时线分析。[DK-9208]
  • 添加Concave Hull。[DK-9217]
  • Convex Hull速度提升。[DK-9324]
  • DK.FMX对话框以匹配VCL和Winforms。[DK-9075]。
  • 引入属性TGIS_ViewerWndHelper.DelayedUpdate延迟更新的细粒度控制。[DK-9301]
  • 图例未打印。[DK-9360] 
  • 问题是特定于DirectX渲染。临时解决方法是将渲染器设置为GDI32(仅限VCL)或GDI +(VCL和WinForms)。请参阅使用除默认值之外的渲染器。
  • 改进了Legend属性表单及其子表单在速度,外观和稳定性方面。
  • 一些程序名称更改,如TGIS_ContourGenerator.Import→Generate[DK-6369]
  • PrintClipboard现在支持DK.FMX。[DK-9418]
  • 提供独立SVG符号库编译器。
  • 其他问题修复。

试用、下载、了解更多产品信息请点击"咨询在线客服"   
未发布 【教程】网络安全工具FileAudit中配置你的第一个Audit路径
by Harriet666 keys 分享 1511773072972
FileAudit可用于对Windows服务器上文件和文件夹的所有访问进行主动跟踪、审核、报告和警告。本文为大家介绍如何配置你的第一个Audit路径。
 
FileAudit免费下载>>>
 
1、启动FileAudit。

你会发现3个主要分组:
  • Audit:允许您配置审计和警报。
  • Access:显示“文件访问查看器”和“统计”视图。
  • Tools:自定义FileAudit设置,安排自动报告、清理数据库和访问帮助文件。
右上角的“连接”按钮允许您远程连接到“FileAudit服务”的另一个系统。
 
2、要设置您的第一个审计路径,请单击FileAudit集线器中的“添加文件夹”。点击“+”按钮,浏览您的目标文件夹:
 
3、验证了您的选择后,将弹出“FileAudit路径向导”,以指导您完成配置文件夹审计的过程。

该向导将显示所选文件夹的配置状态,并突出显示缺少的任何需求或设置。对于每个必要的操作,您可以选择自动完成(通过向导)或手动完成。我们强烈建议您将FileAudit自动配置用于所有设置。
 
4、需要操作的列表。
 
5、选择自动或手动处理。
 
6、FileAudit将优化NTFS审计设置。
 
7、当NTFS Audit设置被禁用时,FileAudit检查并可以启用它。
 
8、文件夹主机将被添加到“许可服务器”列表中。
 
9、启用实时事件监控。
 
10、您选择的文件夹现在由FileAudit进行监控。所有访问事件将被存储在FileAudit数据库中。
 
注意:
有几个不同的方法来选择要审核的文件/文件夹路径。除了以上方法外,您还可以:
  • 通过右键单击Windows资源管理器中的文件或文件夹启动控制台,然后在“上下文菜单”中选择FileAudit。在这种情况下,前面的步骤将被跳过,因为文件/文件夹路径被直接导入FileAudit控制台。
  • 显示“文件访问查看器”并直接在“路径”字段中输入目标路径。您也可以在“文件访问查看器”中找到两个按钮来添加文件夹或文件。
  • 只需使用“Audit配置”部分中的两个贴图“添加文件夹”或“添加文件”即可。
另外,FileAudit总是检查在不同视图和设置中输入的每个路径的配置状态,例如:
  • “文件访问查看器”
  • 预定的报告配置
  • 定义警报规则
未发布 MailBee.NET ObjectsL显示HTML/纯文本邮件教程(三):显示带嵌入图片的邮件
by Harriet666 keys 分享 1502445497256
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
 
本文主要介绍了显示带嵌入图片的邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
包含嵌入图片(以及嵌入式脚本、CSS表和其他对象)的HTML邮件无法在不修改邮件正文的情况下呈现。这是因为嵌入对象的URL被表示为CID(Content-ID值)而不是真实的URL。HTML邮件正文中的CID参考如下所示:(IMG SRC =“cid:picture1”)。这是图像源是Content-ID值等于“picture1”的邮件附件的示例。在呈现HTML正文时,必须显示该图像代替(IMG SRC =“cid:picture1”)标签。因此,在呈现邮件的HTML主体之前,开发人员必须用相应图像的真实URL替换所有这些伪URL。例如,你可以将所有嵌入对象的附件保存到磁盘,并将相应的CID引用替换为保存的附件URL。但是,手动执行此操作非常复杂。
 
幸运的是,MailBee具有显示带有嵌入对象的HTML体的特殊功能。GetHtmlAndSaveRelatedFiles方法将所有嵌入的对象保存到临时位置,用其虚拟路
径替换所有CID,并返回准备好的HTML主体字符串。Web应用程序开发人员可以使用此方法在浏览器中显示带有嵌入图片的HTML格式的邮件。
 
使用此方法时,还应将WorkFolder物理位置设置为保存嵌入对象的附件。此物理位置必须与传递给GetHtmlAndSaveRelatedFiles方法的virtualPath值
相匹配。
C#
// We assume "C:\Inetpub\wwwroot" is a physical path to the location
// visible from Internet as "http://www.domain.com" (virtual path). 
msg.Parser.WorkingFolder = @"C:\Inetpub\wwwroot";
Response.Write(oMsg.GetHtmlAndSaveRelatedFiles("http://www.domain.com", VirtualMappingType.Static, 

MessageFolderBehavior.DoNotCreate));

VB.NET
' We assume "C:\Inetpub\wwwroot" is a physical path to the location
' visible from Internet as "http://www.domain.com" (virtual path). 
msg.Parser.WorkingFolder = "C:\Inetpub\wwwroot"
Response.Write(oMsg.GetHtmlAndSaveRelatedFiles("http://www.domain.com", VirtualMappingType.Static, 

MessageFolderBehavior.DoNotCreate))
 
因此,如果HTML格式的邮件体包含(IMG SRC =“cid:pic1”),并且该消息还具有ContentID(CID)“pic1”的嵌入式附件“picture.gif”,则调
用GetHtmlAndSaveRelatedFiles方法将替换“cid: pic1“与http://www.domain.com/picture.gif值。
 
如果你正在开发不使用虚拟路径的桌面应用程序,则可以将virtualPath设置为NonWeb值。在这种情况下,保存文件的物理路径将被用作URL。
C#
msg.Parser.WorkingFolder = @"C:\Temp";
Response.Write(msg.GetHtmlAndSaveRelatedFiles(null, VirtualMappingType.NonWeb, MessageFolderBehavior.CreateOnly));
VB.NET
msg.Parser.WorkingFolder = "C:\Temp"
Response.Write(msg.GetHtmlAndSaveRelatedFiles(Nothing, VirtualMappingType.NonWeb, MessageFolderBehavior.CreateOnly))

换句话说,嵌入式图片将由文件系统上的物理路径表示,这些路径将被放置在相应HTML标签的SRC元素中。例如(IMG SRC =“cid:pic1”)将被替换为(IMG SRC =“file:/// C:\ Temp \ picture.gif”>)。
未发布 慧都璀璨14年 周年狂欢送iPhone X!
by Harriet666 keys 分享 1509515785998
2017慧都十四周年狂欢搞事情,全场产品折扣风暴来袭!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

2003年11月,慧都破茧而出;

2017年11月,慧都已崛世而立。

14岁了,搞件大事情——创造折扣奇迹!

这个狂欢月,就要躁!起!来!

七大玩法,花样玩赚周年趴!

狂欢时间:2017.11.1-2017.11.30

下单即送砸金蛋机会 100%抽微信现金红包

188元、88元、18元等你领取!

 

点击参与

 

 

全场满额豪送iPhone X!

---------------------

购买慧都任意产品

满额即送8级好礼

iPhone X、iPhone8速速领走!

 

点击查看

 
 

DevExpress庆周年

---------------------

DevExpress汉化资源免费送

DEV团队培训套包

最高立省10

 

点击查看

 
 

慧都学院培训“拼拼团”

---------------------

不要998!不要888!

只要1分钱

立抢DevExpress/Kendo UI研修班团购优惠名额!

 

立即抢购

 

 

全场热销产品7折起

---------------------

Kendo UI、Aspose、BCGSoft、Dynamsoft等产品

超低折扣等你来!

葡萄城GrapeCity更享专属折扣

 

查看更多

 
 

在线商城 聚惠再续

---------------------

MyEclipse个人授权低至6.9

在线订购商城全场优惠促销

下单还送砸金蛋机会

 

立即查看

 
 

周年送祝福 好礼齐掉落

---------------------

您送祝福,我送好礼

提交周年祝福、评价等

随机获取定制台历、保温杯或雨伞!

 

立即留言

 

关注的产品没在促销活动中?不用担心,点击咨询在线客服有意想不到的惊喜哦!

点击咨询获取惊喜优惠

咨询热线: 400-700-1020(免费)
本次活动最终解释权归重庆慧都科技有限公司所有
未发布 【示例教程】LEADTOOLS中如何使PACS服务器管理器支持H264
by Harriet666 keys 分享 1510818869321
LEADTOOLS可帮您开发出功能强大的文档图像应用程序。其主要功能包括综合图像注释,专业的黑白图像显示(例如灰度级和偏黑),以及专业的黑白图像处理。其它功能包括对黑白图像的性能和内存进行优化,文档图像清理(包括倒置文本,去边界,去打孔机和去线)以及使用LEADTOOLS Fast TWAIN和WIA进行扫描。
 
上一篇文章讲述了如何使用H.264压缩数据创建DICOM文件(参见:如何使用H.264压缩视频创建DICOM文件)。创建文件是一个比较困难的点,但是如何利用并使这些文件存储在PACS服务器中也是很重要的。默认情况下,H.264压缩不能由LEADTOOLS PACS服务器管理器支持,但它很容易可以通过添加几行代码来实现。本篇文章将讲解如何将H.264支持添加到PACS服务器管理器。
 
为支持IODs我们需要更新开发包。这个项目可以在这里的SDK安装中找到:
\Examples\DotNet\PACSFramework\CS\Sample AddIns\Leadtools.AddIn.Store
 
我们需要更新StoreAddin.cs中的StoreAddin类。在前面的示例中,我使用的SOP类是视频摄影图像存储。所以需要寻找这样的代码,并添加DICOM UID类型MPEG-4 AVC/H.264 Blu Ray兼容和MPEG-4 AVC/H.264 High Profile Level 4.1.。最终变成这样:
[PresentationContext(DicomUidType.VideoPhotographicImageStorage, DicomUidType.ImplicitVRLittleEndian,
                                                         DicomUidType.JPEG2000,
                                                         DicomUidType.JPEG2000LosslessOnly,
                                                         DicomUidType.JPEGBaseline1,
                                                         DicomUidType.JPEGExtended2_4,
                                                         DicomUidType.ExplicitVRBigEndian,
                                                         DicomUidType.ExplicitVRLittleEndian,
                                                         DicomUidType.JPEGLosslessNonhier14,
                                                         DicomUidType.JPEGLosslessNonhier14B,
                                                         DicomUidType.Mpeg4AvcH264BdCompatibleHighProfileLevel_4_1,
                                                         DicomUidType.Mpeg4AvcH264HighProfileLevel4_1)]
如果你还想支持MPEG-2压缩,这也可以这样做:
[PresentationContext(DicomUidType.VideoPhotographicImageStorage, DicomUidType.ImplicitVRLittleEndian,
                                                         DicomUidType.JPEG2000,
                                                         DicomUidType.JPEG2000LosslessOnly,
                                                         DicomUidType.JPEGBaseline1,
                                                         DicomUidType.JPEGExtended2_4,
                                                         DicomUidType.ExplicitVRBigEndian,
                                                         DicomUidType.ExplicitVRLittleEndian,
                                                         DicomUidType.JPEGLosslessNonhier14,
                                                         DicomUidType.JPEGLosslessNonhier14B,
                                                         DicomUidType.Mpeg4AvcH264BdCompatibleHighProfileLevel_4_1,
                                                         DicomUidType.Mpeg4AvcH264HighProfileLevel4_1,
                                                         DicomUidType.MPEG2MainProfileHighLevel,
                                                         DicomUidType.MPEG2MainProfileMainLevel)]
代码修改完成后,进行编译。DLL将输出到PACSAddins目录:
\Bin\DotNet4\x64\PACSAddIns\
 
dll文件需要复制到插件目录的PACS服务器管理器。我的配置和运行的是64位服务器,文件夹位置:
C:\LEADTOOLS 19\Bin\Dotnet4\x64\L19_SERVER64\AddIns
 
您需要停止并重新启动服务器以便生效。
 
注:一定要停止所有已经运行的x64 PACS服务,然后重新启动。这是为了确保leadtools.dicom.server.exe完全删除,然后重新加载。

试用、下载、了解更多产品信息请点击"咨询在线客服"  

未发布 Linux/UNIX管理工具Xmanager发布v6 Beta版,新增主密码加密功能
by Harriet666 keys 分享 1510736305135
Xmanager是市场领先的PC X服务器,它能够带来Windows平台下强力的虚拟应用技术。使用Xmanager,能够使安装在远程的基于UNIX系统的X应用程序与一般的Windows应用程序完全一样。它提供了一个强大的会话管理控制台、易于使用的X应用程序启动器、X服务器概要文件管理工具、SSH模块和用于安全访问的远程高性能PC X服务器及虚拟化的UNIX/Linux环境。
 
Xmanager v6 Beta最新版下载>>>
 
Xmanager v6 Beta更新内容
会话管理器
在版本6中,我们对Xmanager的界面做了一些直观的改变。最大的变化是在Xmanager中直接引入了会话管理器面板,用户可以轻松地创建、编辑和删除会话文件。现在,会话管理的所有方面以及同时启动多个会话的功能都可以通过会话管理器在Xmanager中访问。此外,每个文件夹和会话类型现在都有自己的选项卡,功能一目了然。

 
使用主密码增强加密功能
用户可以将用户定义的字符串设置为主密码来加密会话文件密码。设置主密码后,会话文件密码将不可用,除非输入正确的主密码。这可以保护用户的密码,即使会话文件泄露给未经授权的用户。
另外,如果不同的PC使用相同的主密码,则可以使用相同的会话文件。这在使用云共享会话的环境中非常有用。
主密码以前在Xshell 5中可以找到,现已扩展到版本6中的全系列软件。主密码加密用于连接服务器的密码,用户密钥的密码和密码包含在会话文件中的字符串。
 
支持SSH PKCS#11
PKCS#11协议使用户能够使用硬件令牌(HSM)安全地存储私钥,以提高安全性。
 
主题选择
您现在可以根据需要选择Xmanager的颜色和整体主题。
未发布 百度正式开源其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技术细节的文档也都一并开源了,后续也会及时推送改动,请大家放心。这是一个活项目,不会拉个开源分支就不管了。
查看更多资讯>>>


 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  3. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  4. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  5. Node.js 打印vite react+go项目目录树
  6. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  7. Windows与Mac通过git ssh和rsync实现文件共享互传
  8. Windows与Mac通过git ssh和scp实现文件共享互传
  9. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  10. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件

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

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

OnceOA