整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

农业银行申请WPF用户界面框架生成HTML界面的方法及装置专利,提高代码迁移效率

融界2024年2月27日消息,据国家知识产权局公告,中国农业银行股份有限公司申请一项名为“一种WPF用户界面框架生成HTML界面的方法及装置“,公开号CN117608657A,申请日期为2023年11月。

专利摘要显示,本申请提供了一种WPF用户界面框架生成HTML界面的方法及装置,在执行所述方法时,获取目标XAML文件的目标控件参数,所述目标控件参数包括:控件属性信息以及控件坐标信息;基于预先配置的WPF控件与HTML标签的映射关系,将所述控件属性信息转换为标签属性信息;基于所述控件坐标信息以及所述标签属性信息生成HTML界面。本申请实施例基于预先配置的WPF的控件和HTML标签属性的对应关系实现将WPF控件转换为HTML标签属性,并通过控件的坐标信息来生成对应的HTML界面,减少代码重构工作量,提高代码迁移效率。

本文源自金融界

么多年用了很多各式各样的工具,现在留在电脑里的、现在还在用的、在写WPF时用的也就那么几个。这篇文章总结了这些工具,希望这些工具可以让WPF开发者事半功倍。

1. Visual Studio#

Visual Studio应该无需介绍,它是“面向任何开发者的同类最佳工具”。对WPF来说Visual Studio既是鸡又是蛋,WPF开发者甚至有时会反编译它的代码参考参考,最近HandyControl也参考Visual Studio代码增加了一个GlowWindow控件,这是个很有趣又实用的控件。虽然有那么几年WPF没什么大的改进,但Visual Stuido依然为XAML添加了很多使用的功能,我印象最深刻的是以下几个。

应用程序时间线 探测器:
使用 “应用程序时间线” 探查器查找并修正 XAML 应用程序中应用程序交互的相关性能问题。 此工具通过显示应用程序资源使用情况的详细视图来帮助提高 XAML 应用程序的性能。 可以分析应用程序准备 UI 框架(布局和呈现)以及为网络和磁盘请求提供服务所花费的时间,以及在应用程序启动、页面加载以及调整窗口大小等应用场景中花费的时间。

热重载

XAML热重载允许您在应用程序运行时更改XAML代码,从而帮助开发者构建WPF或UWP应用程序用户界面。Visual Studio和Blend For Visual Studio都提供了热重载。此功能使开发者能够通过运行应用程序的数据上下文、身份验证状态和其他在设计时难以模拟的实际复杂性,以增量方式构建和测试XAML代码。

实时可视化树和实时属性资源管理器

开发者可以使用“实时可视化树”和“实时属性资源管理器”实时地查看正在运行的XAML代码。这些工具为开发者提供正在运行的XAML应用程序的UI元素的树视图,并向开发者显示所选择的任何UI元素的运行时属性。

另外,除了最新版的2019,我还保留着Visual Studio 2013,因为我常常需要抄10年前的Silverlight Toolkit的代码。

2. Blend for Visual Studio#

Blend是专门针对XAML程序的设计软件,经典版的Blend是独立软件,代码编辑和调试功能比Visual Studio差很远,现在它则是成为了Visual Studio的另一个模式,名字也变成Blend for Visual Studio。虽然微软对Blend不怎么上心,但随着Visual Studio越来越强大,Blend For Visual Studio也跟着得益。就算我可以手写XAML,有很多事情还是需要在Blend里做,例如设计VisualState、创建动画、将文字和形状转换为路径、获取控件的ControlTemplate等。

安装Visual Studio时默认不会安装Blend for Visual Studio,需要选中它的CheckBox:

顺便一提,Visual Studio 2019不再提供BlendSDK,而这东西又基本是开发WPF必须的,所以需要自己安装Microsoft.Xaml.Behaviors.Wpf nuget包。

3. ILSpy#

现在很多WPF项目都开源了,不过反编译工具还是少不了的。比起dnSpy和JustDecompile,我更喜欢ILSpy,因为有很多BAML只有ILSpy能反编译出来,例如System.Windows.Controls.Ribbon.dll(见下面截图)。不过我也很喜欢JustDecompile的“创建项目”功能,它可以直接反编译一个Dll并创建一个项目(如果不出错的话)。顺便一提我也很喜欢JetBrains的dotPeek,它也可以正常反编译BAML,只是它每次启动都很慢。

4. Snoop#

Snoop是一个开源的WPF UI探索工具,它可以浏览正在运行的WPF程序的可视树、改变它的属性、查看Triggers、设置断点等。虽然现在Visual Studio也可以做到差不多的功能,但Snoop依然是我最喜欢使用的WPF工具之一。

在以前我还喜欢用XAML Spy,可惜那个软件停止更新了。

下面是一张正在被Visual Studio调试的正在Spying Visual Studio 的Snoop的截图(套娃使我快乐):

5. DebugView#

DebugView是一个很古老但依然实用的工具,它可以查看应用程序或驱动程序输出的调试信息,而且不仅能查看本地机器,还可以查看远程机器的调试信息。总而言之有了它可以方便查看程序的调试信息,对调试应用很有帮助。

6. ReSharper#

大名鼎鼎的ReSharper相信不用多介绍,不过要用上实在太花钱(授权和电脑配置)。除了可以强化C#代码体验,ReSharper对XAML也有很多增强功能,包括:

  • XAML的错误提示
  • 增强的XAML智能感知
  • 导航和查找XAML元素
  • XAML代码重构

更详尽的功能请看 XAML Editing Tools - Features ReSharper

7. Visual UI Automation Verify#

从UISpy到Inspect到Visual UI Automation Verify,微软提供了很多自动化测试的协助工具,现在对我来说最常用的应该是UI Automation Verify了吧,它就位于Windows SDK的安装目录里:X:\Windows Kits\bin.0.18362.0\x86\UIAVerify\VisualUIAVerifyNative.exe,它上一级目录里还有inspect.exe(前提是需要先获取Windows SDK)。如果自己开发的WPF程序使用了Microsoft UI Automation,这将是一个十分重要的工具。就算没有,Visual UI Automation Verify也可以查看到几乎所有Windows UI的信息。虽然它有点古老,但胜在又快又实用。

8. ResXManager#

ResXManager是用于管理resx资源文件的Visual Studio扩展,它提供了在Visual Studio中统一管理所有资源文件的用户界面。小规模的程序用不上,但一旦资源和资源文件达到一定数量管理这些资源将十分痛苦,这时候ResXManager就必不可少。

9.结语#

这篇文章主要介绍我开发WPF时常用的工具,其它还有些VB.NET To C#的代码转换器、SVG TO XAML、和PNG TO ICO等在线工具,都是用到时再网上搜的。还有很多.NET的工具我没有列出来,可以参考下面这篇文章:

10个用于C#.NET开发的基本调试工具

作者:Dino.C

出处:https://www.cnblogs.com/dino623/p/tools_for_wpf.html

.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API。在.net平台下,你有很多的选择来构建一个HTTP Services。我分享一下我对Web Service、WCF以及Web API的看法。

  Web Service

  1、它是基于SOAP协议的,数据格式是XML

  2、只支持HTTP协议

  3、它不是开源的,但可以被任意一个了解XML的人使用

  4、它只能部署在IIS上

  WCF

  1、这个也是基于SOAP的,数据格式是XML

  2、这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.

  3、WCF的主要问题是,它配置起来特别的繁琐

  4、它不是开源的,但可以被任意一个了解XML的人使用

  5、它可以部署应用程序中或者IIS上或者Windows服务中

  WCF Rest

  1、想使用WCF Rest service,你必须在WCF中使用webHttpBindings

  2、它分别用[WebGet]和[WebInvoke]属性,实现了HTTP的GET和POST动词

  3、要想使用其他的HTTP动词,你需要在IIS中做一些配置,使.svc文件可以接受这些动词的请求

  4、使用WebGet通过参数传输数据,也需要配置。而且必须指定UriTemplate

  5、它支持XML、JSON以及ATOM这些数据格式

  Web API

  1、这是一个简单的构建HTTP服务的新框架

  2、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术

  3、不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)

  4、它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮

  5、它可以部署在应用程序和IIS上

  6、这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好

  7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。

  WCF和WEB API我该选择哪个?

  1、当你想创建一个支持消息、消息队列、双工通信的服务时,你应该选择WCF

  2、当你想创建一个服务,可以用更快速的传输通道时,像TCP、Named Pipes或者甚至是UDP(在WCF4.5中),在其他传输通道不可用的时候也可以支持HTTP。

  3、当你想创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择Web API

  4、当你想让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API

一、定义

1.WebService:严格来说是行业标准,不是技术,使用XML扩展标记语言来表示数据(这个是夸语言和平台的关键)。微软的Web服务实现称为ASP.NET Web Service.它使用Soap简单对象访问协议来实现分布式环境里应用程序之间的数据交互。WSDL来实现服务接口相关的描述。此外Web services 可以注册到UDDI中心.供其客户查找使用。 后来微软做了ASP.NET Web Service的安全,性能,数据加密、解密,托管宿主等多方面的扩展,称为WSE系列,这个是过度产品,最高到WSE3.0.后来就是WCF时代。

2.WCF:其实一定程度上就是ASP.NET Web Service,因为它支持Web Service的行业标准和核心协议,因此ASP.NET Web Service和WSE能做的事情,它几乎都能胜任,跨平台和语言更不是问题(数据也支持XML格式化,而且提供了自己的格式化器)。

但是WCF作为微软主推一个通讯组件或者平台,它的目标不仅仅是在支持和集成Web Service,因为它还兼容和具备了微软早期很多技术的特性。

根据微软官方的解释WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,如Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息队列。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相关的技术要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙。

二、WCF的优势  
1、统一性   前面已经叙述,WCF是对于ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技术的整合。由于WCF完全是由托管代码编写,因此开发WCF的应用程序与开发其它的.Net应用程序没有太大的区别,我们仍然可以像创建面向对象的应用程序那样,利用WCF来创建面向服务的应用程序。

2、互操作性   由于WCF最基本的通信机制是SOAP(Simple Object Access Protocol 简易对象访问协议),这就保证了系统之间的互操作性,即使是运行不同的上下文中。这种通信可以是基于.Net到.Net间的通信,如下图所示:   可以跨进程、跨机器甚至于跨平台的通信,只要支持标准的Web Service,例如J2EE应用服务器(如WebSphere,WebLogic)。应用程序可以运行在Windows操作系统下,也可以运行在其他的操作系统,如Sun Solaris,HP Unix,Linux等等。如下图所示:  

3、安全与可信赖   WS-Security,WS-Trust和WS-SecureConversation均被添加到SOAP消息中,以用于用户认证,数据完整性验证,数据隐私等多种安全因素。   在SOAP 的header中增加了WS-ReliableMessaging允许可信赖的端对端通信。而建立在WS-Coordination和WS- AtomicTransaction之上的基于SOAP格式交换的信息,则支持两阶段的事务提交(two-phase commit transactions)。

上述的多种WS-Policy在WCF中都给与了支持。对于Messaging而言,SOAP是Web Service的基本协议,它包含了消息头(header)和消息体(body)。在消息头中,定义了WS-Addressing用于定位SOAP消息的地址信息,同时还包含了MTOM(消息传输优化机制,Message Transmission Optimization Mechanism)。

4、兼容性   WCF充分的考虑到了与旧有系统的兼容性。安装WCF并不会影响原有的技术如ASMX和.Net Remoting。即使对于WCF和ASMX而言,虽然两者都使用了SOAP,但基于WCF开发的应用程序,仍然可以直接与ASMX进行交互。

三、更本区别

WCF 支持多种通信协议 Http/Https 、TCP/UDP、MSMQ、命名管道、对等网、消息可达性、事务流等。

WCF 可以与ASP.NET 集成、共享一个上下文(HttpContext)。

WCF 支持多种消息传输格式 :text,binary,mtom,Json 等。

WCF 安全性要强:支持对称安全、非对称安全、消息安全、传输安全、SSL 流安全、Windows 流安全等。

WCF 支持多种会话模式:单向、双向、请求/响应。

WCF 支持REST 。

WCF 支持多种格式化方式。DataContractSerializer、XmlSerializer、 DataContractJsonSerializer 等。

WCF 支持 WAS hosting、Windows 服务 hosting、Self-Hosting、IIS hosting 等。

WCF 支持多种并发模式:单例、单调、会话 。

WCF与WPF

1.

WCF(Windows Communication Foundation )是一个统一的,可用于建立安全,可靠的面向服务的应用高效的开发平台。WCF是构建安全可靠的事务性服务的统一框架。它是一种构建分布式面向服务系统的非常丰富的技术基础,它统一了消息风格和RPC[Remote Procedure Call]风格,并且通过二进制和基于开放标准的通信达到了平台最优化。


它整合了.Net平台下所有的和分布式系统有关的技术,例如ASP.NET Web服务(ASMX)、增强Web服务扩展(WSE)、.Net Remoting、企业服务(Enterprise Service)和微软消息队列(MSMQ)。



WPF与Silverlight有何不同?

WPF(Windows Presentation Foundation),主要是提供统一的展现层模组,来建立诸如Windows Vista智慧型使用者体验,包含了使用者介面、3D模组、多媒体、文件等;而Silverlight是跨浏览器上的外挂,传达下一代网页多媒体互相性功能,隶属于WPF功能上的子集,并可与Ajax来做高弹性的程式化互动。二者都是互补,也是基于XAML的展示层基础,若与Adobe技术比, Silverlight犹如Flash,WPF犹如AIR(前身为Apollo),XAML犹如MXML

2.

WCF为 Windows Communication Foundation,是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。从功能的角度来看,WCF完全可以看作是ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技术的并集。
WPF是Windows Presentation Foundation,微软新发布的Vista操作系统的三大核心开发库之一,其主要负责的是图形显示,所以叫Presentation(呈现)。 WPF相对于WinForm,将美工(控件样式设置)与实现(代码的业务实现)分开,是一种新的架构方式。
VS2008新特性是.Net Framework 3.5。

3.WPF就是所谓下一代Windows界面层技术,我觉得还有满有前途的。不过Vista发布以来,用户认可度目前确实不高。
WCF,你就先把它想成Web Service的下一代也没什么问题。

WPF用过,就算是winform的下一代吧,绘图的话可以实现GDI+一些达不到的效果,国内的书籍资料很少,也就三四本。

wpf 图形有关,取代winform
wcf 通讯有关,取代webservices
wwf 工作流

原文地址:https://www.cnblogs.com/weihengblogs/p/8670276.html