REST easy with kbmMW #1】的更多相关文章

我在前两篇文章中展示了“REST easy with kbmMW”文章,如何使用kbmMW制作REST服务器,以及如何使用该REST服务器轻松地从数据库返回和存储数据,所有这些都在不到30行的真实数据库中码. 此文章将围绕如何确保使用SSL(安全套接字层)保持与服务器的通信受到保护.换句话说,如何使REST服务器与HTTPS而不是HTTP进行通信. 有多种方法可以使用SSL保护基于kbmMW的应用程序服务器,但我将重点介绍使用OpenSSL执行此操作的一种简单方法. 首先,我们应该创建一个可以使…
介绍 关于如何使用授权和登录管理来构建应用服务器还存在一些问题,其中之一就是用户及其角色如何在在数据库中定义.该文将解释使用TkbmMWAuthorizationManager解决此问题的一种方法.有关其他的信息,可以参考前文REST easy with kbmMW #4 – Access management 首先,我们应该有一些需要登录支持的服务器.对于此示例,我选择了FishFact REST服务器.该服务器的实现可参考kbmMW #12 – Fishfact demo using HTT…
我被问到有关如何通过基于kbmMW智能服务(Smart Service)的REST处理POST的问题. 这篇博客文章解释了典型的POST各种形式的访问,以及如何在kbmMW中处理它们. POST变种Web/REST客户端可以通过多种方式POST数据: 1.作为URL的路径部分中的值数据    例如:POST http://localhost/myservice/myfunction/10/202.作为URL的查询部分中的键/值数据    例如:POST http://localhost/myse…
你想过没有,把一个给定的xml或json生成一个Delphi类,并通过这个类完成对xml或json的读写操作吗? 不管有没有,现在kbmMW为我们实现了,看下面这行代码: var s:string; ... s:=TkbmMWJSONMarshal.GenerateDelphiClassFromUTF8File('auctions.json','Unit2','JSONData'); ... { "realm":{"name":"Aegwynn"…
在之前的博文中,我提到新的存根生成器框架具有生成Delphi客户端存根所需的功能,使得开发Delphi智能客户端非常容易,完全支持编译时的类型检查和IDE类/属性帮助. 我没想到会把它包含在即将发布的kbmMW版本中,但我无法自控.... 必须添加它才能生成相当完整的初始存根生成器. 存根生成器将生成普通的Delphi代码,需要kbmMW智能客户端功能进行编译.但代码已完成,并包含所需的所有单元引用.如果您使用的是包含对象的自定义单元,则必须将这些单元与生成的存根代码一起提供给Delphi客户端…
即将推出的kbmMW更新不仅是一些bug修正,同时将包含一个新的主要功能:客户端存根生成器框架. 那什么是客户端存根生成器框架呢? 他是一个基于kbmMW smart services,可以生成由各种类型的客户端直接使用的代码,以访问基于kbmMW应用服务器的HTTP smart services.(什么是HTTP Smart Service呢?可参考洞主写的文章:kbmmw 的HTTP Smart Service入门) 当前,kbmMW已经实现智能客户端(smart client)功能,通过这…
kbmMW已经包含了非常精细的功能来确定和解释数据库中表的元数据. 在下一版本中,这个功能将得到进一步加强,可以导入现有数据库中的表,自动创建与表相匹配的ORM实体类. 这意味着你能够使用kbmMW的ORM智能来查询表,将数据保存回表并操纵表元数据,例如添加,更改或删除字段.索引以及需要能够升级数据库用于匹配已更改的ORM表实体类的更高版本的表. 当你意识到需要更改数据库表以允许其他或不同的字段时,ORM的设计目标之一始终是抽象掉所需的所有枯燥工作.在kbmMW中,它就像更改ORM类一样简单,并…
前文写过使用HTTP.sys转输层(TkbmMWHTTPSysServerTransport),实现一个kbmMW应用服务器. 如果在一台服务器上,同时运行多个,基于TkbmMWHTTPSysServerTransport实现的kbmMW应用服务器,该怎么配置呢? 通常会遇到这样的错误信息,如:“Unable to bind to the underlying transport for … The IP Listen-Only list may contain a reference to a…
在前面有关如何使用kbmMW创建REST服务器的基础上,现在已经到了考虑该如何控制用户的访问.什么是访问管理?就是“允许谁做什么"的问题. 显然,这个世界中存在数据,应该保护他而不被未授权的人/进程来读取,创建或更改.反过来说,这些数据应该得到保护,只有信任的人/进程才可以访问.另外,有的数据可以被人或进程来访问,但不允许被修改等等. 幸运的是,kbmMW内置了一些功能来解决上面的问题,核心是TkbmMWAuthorizationManager类. 首先在main form中添加一个TkbmMW…
kbmMW 5.0支持REST服务器的开发,并且非常简单,下面看看如何实作一个REST服务器. 首先我们制作一个服务器应用程序,增加一个简单的Form,并放置kbmMW组件. 在Delphi中单击File - New - VCL Forms Application 然后将以下kbmMW组件添加到Form中: TkbmMWServer TkbmMWTCPIPIndyServerTransport 将kbmMWTCPIPIndyServerTransport1的Server属性设置为kbmMWSer…
1.kbmMWConfiguration自动备份配置文件的问题还没有修正. 下面是以前写过的内容,再一次在新闻组中提出这个问题: kbmMW提供一个强大的配置信息管理对象,前期译过这个对象的介绍,在使用过程中,发现一个问题, 就是TkbmMWCustomConfigurationStorage.BackupMaxCount属性,当设置为0时,也会生成配置信息的备份文件,在最新的kbmMW 5.05.11版本中,每运行一次就生成一个配置文件,对此,修正了代码. 打开单元文件 kbmMWGlobal…
使用新版kbmMW开发的 smart service,也可以轻松的发布为通过REST来调用的功能.   一个 kbmMW smart service象下面这样实现,就可以使用REST来访问:   type     // This service is known to smart clients as SMARTDEMO   // Methods registered for REST access will, if they   // provide a relative path, be s…
即将发布的kbmMW,实现了SmartBinding,SmartBinding的设计目标是: 必须易于使用 必须最小化或完全删除锅炉板代码.(你看到这里的趋势了吗?... kbmMW从那时开始就是为了让事情变得简单!) 必须有良好的表现 必须具有较低的CPU,内存和大小 绝不能导致无休止的圆形赛事列车 应该使用各种数据和控件 应该是灵活和可扩展的 必须接近实时 必须易于重构 应该与kbmMW的其他功能很好地配合 即使不使用kbmMW的其他功能也应该可用 看一个简单的属性绑定: Binding.B…
欢迎大家围观. Important notes (changes that may break existing code)         ======================================================           * Updated transport stream version to 508 to support transporting other TValue            based data than interfac…
来了来了 5.07.00 Dec 9 2018           Important notes (changes that may break existing code)         ======================================================           * Renamed misspelled TkbmMWInfTNRG64 to TkbmMWInfTRNG64 and ditto for 32 bit.           …
新年前最后几天,kbmmw 发布了新版本,增加一大波功能.we are happy to announce v5.05.50 of our popular middleware for Delphi and C++Builder. If you like kbmMW, please let others know! Share the word! We strive hard to ensure kbmMW continues to set the bar for what an n-tier…
5.02.00 May 27 2017 Important notes (changes that may break existing code) ====================================================== * Changed Use class in kbmMWSmartUtils.pas. Now it will use TkbmMWAutoValue internally to store data. Since data stored…
Important notes (changes that may break existing code) ====================================================== * Officially now only supporting XE2 and forward. Support for pre XE2 may not be complete. New stuff ========= - Added support for RAD Studi…
经过大半年的等待,kbmmw 的新版终于来了.经过近5年的打磨, kbmmw 的版本号升级到5了. kbmMW is a portable, highly scalable, high end application server and enterprise architecture integration (EAI) development framework for Win32, ..Net and Linux with clients residing on Win32, .Net, L…
We are happy to announce the release of kbmMW v. 4.50.00 Professional, Enterprise and CodeGear Edition with XE6 and XE7 support. kbmMW continues to set the bar for what an n-tier product must be capable of in the real world! Keywords for this release…
New stuff        =========        - Added kbmMWSmartBind.pas unit with optional kbmMWSmartBindVCL.pas and kbmMWSmartBindFMX.pas          Provides new easy to use multiway databinding between data, controls and objects.        - Added support for XML-…
We are happy to announce v5.10.00 of the most complete development add on for Delphi and C++Builder for building native modular and fast multi-tier solutions. The release includes: NEW! SmartBind now fully supports VCL, FMX, including image/graphics…
libsvm中有进行参数调优的工具grid.py和easy.py可以使用,这些工具可以帮助我们选择更好的参数,减少自己参数选优带来的烦扰. 所需工具:libsvm.gnuplot 本机环境:Windows7(64 bit) ,Python3.5 1.相关程序的下载和安装: 1.1.下载libsvm,我用的是libsvm-3.18.zip,下载后直接解压到任意位置,我解压到C:\libsvm-3.18下. 1.2.下载python,我下的是python-3.5.msi,双击该文件安装到默认位置,我…
一.easy UI是类似于jQuery UI的插件库,它提供了丰富的各种常用插件:tree.datagrid... tree插件: 语法:$(selector).tree([settings]); 常用属性: 常用方法.事件: 使用tree插件实现树形菜单: 客户端页面关键代码: ① 引入easy UI插件及样式文件 ② 定义用来配置树形菜单的区域 ③ 使用tree方法加载远程树形菜单数据 <script type="text/javascript"> $(function…
一.easy UI是类似于jQuery UI的插件库,它提供了丰富的各种常用插件:tree.datagrid... tree插件: 语法:$(selector).tree([settings]); 常用属性: 常用方法.事件: 使用tree插件实现树形菜单: 客户端页面关键代码: ① 引入easy UI插件及样式文件 ② 定义用来配置树形菜单的区域 ③ 使用tree方法加载远程树形菜单数据 <script type="text/javascript"> $(function…
Problem E Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi'an 2006, Beijing 2007 and Wuhan 2009, or UVa OJ contests like Rujia Liu's Presents 1 and 2), he occasionally sets…
A. Appleman and Easy Task time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Toastman came up with a very easy task. He gives it to Appleman, but Appleman doesn't know how to solve it. Can you…
简介: easy UI是类似于jQuery UI的插件库 注意:多脚本同时使用时,注意脚本冲突问题. 常用插件: 1.tree插件(tree插件实现动态树形菜单) 2.datagrid插件(datagrid插件构建列表展示远程数据) 1.tree插件 常用语法:$(selector).tree([settings]); 常用属性: 常用方法及事件: 案例:(实现效果) 步骤如下: (1).引入需要脚本配置 <script type="text/javascript" src=&q…
Test-Drived Development 测试驱动开发三步曲:写一个失败的测试用例->编写生产代码通过这个测试用例(transformation)->重构(refactor).重构是指不改变程序的外在行为的前提下消除代码坏味道,目前已有不少的指导书籍.而第二步变形(Transformation) 编写生产代码通过测试用例,这是TDD三个环节中最困难的,有时甚至会陷入僵局. Transformation Priority Premise 变形(Transformation)的困难在于:如果…
Easy Sysprep更新日志: Skyfree 发表于 2016-1-22 13:55:55 https://www.itsk.com/forum.php?mod=viewthread&tid=362766&highlight=Easy%2BSysprep[2016.01.13] v4.3.29.60201.[更新]IAR核心至2.1.2015.1220(与SkyIAR 2.73一致)02.[修正]在特定环境下,系统优化部分个别代码执行时间过长的问题03.[修正]当取消系统优化总选项时…