Ahead of the WebDU conference next week, Mark Mandel just yesterday released version 1.0 of Transfer ORM. If you’re wondering what the hell Transfer ORM is and why you should care, I asked Mark to answer a few questions to explain it all to us.
在下周的WebDU会议之前,Mark Mandel昨天才发布了Transfer ORM的1.0版。 如果您想知道到底什么是Transfer ORM,以及为什么要关心我,我请Mark回答几个问题,向我们解释这一切。
This post is in the same series (and uses the same questions) as the Geoff Bowers on FarCry and John Farrar on COOP.
这篇帖子与FarCry上的Geoff Bowers和COOP 上的 John Farrar属于同一系列(并使用相同的问题)。
Hi Mark! Give us your elevator pitch: summarize the essence of Transfer in a sentence or two.
嗨,马克! 给我们您的电梯音调:用一两句话总结一下Transfer的本质。
Transfer is an Object Relational Mapper for ColdFusion.
传输是ColdFusion的对象关系映射器。
It generates and populates CFCs that are Objects that represent the data in your application based on an XML configuration file. From there, it is able to automatically insert, update, delete that data into, and out of your database, without you having to write any of the SQL or CFML to do it.
它基于XML配置文件生成并填充表示对象的CFC,这些对象代表应用程序中的数据。 从那里,它可以自动将数据插入数据库,从数据库中插入数据,从数据库中删除数据,而无需编写任何SQL或CFML来完成。
OK, that sounds pretty cool. Let’s dig a little deeper: tell us more about the main features.
好的,听起来很酷。 让我们更深入地了解一下:向我们详细介绍主要功能。
At the top level, Transfer generates what is commonly referred to as Business Objects for you, without you having to write any CFML or build a CFC. By Business Object, I mean an Object that represents an entity within your system, such as a User or a Product, or an Order.
在顶层,Transfer会为您生成通常称为业务对象的内容,而无需编写任何CFML或构建CFC。 所谓业务对象,是指代表系统中实体的对象,例如用户或产品或订单。
These generated Business Objects (often referred to as TransferObjects, after the framework), can also be extended and enhanced to allow you to write any extra custom functionality that you may need.
这些生成的业务对象(在框架后通常称为TransferObjects)也可以进行扩展和增强,以允许您编写所需的任何其他自定义功能。
Being an Object Relational Mapper, Transfer is then able to take these TransferObjects and automatically generate all the create, read, update and delete SQL for you.
作为对象关系映射器,Transfer然后可以获取这些TransferObject,并自动为您生成所有创建,读取,更新和删除SQL。
For example, if I want Transfer to retrieve a particular user from the database, and return to me a User object, all I would need to do is:
例如,如果我想让Transfer从数据库中检索特定用户,并向我返回一个User对象,那么我要做的就是:
user = transfer.get("User", 1);
user = transfer.get("User", 1);
And I would have a User object that had the all the relevant data for the User record, with a primary key of ‘1’, which can then be retrieved from the User object, e.g.
我将拥有一个User对象,该对象具有与User记录有关的所有相关数据,主键为“ 1”,然后可以从User对象中检索该主键,例如
The user name is #user.getFirstName()# #user.getLastName()#
The user name is #user.getFirstName()# #user.getLastName()#
It is then possible to edit the information on the User object, and pass it back to Transfer to save it back to the database, e.g.
然后可以编辑有关User对象的信息,并将其传递回Transfer以将其保存回数据库,例如
user.setFirstName("Mark"); user.setLastName("Mandel");
user.setFirstName("Mark"); user.setLastName("Mandel");
transfer.save(user);
transfer.save(用户);
And now, the user record in the database has had it’s ‘FirstName’ and ‘LastName’ columns set to ‘Mark’ and ‘Mandel’ respectively.
现在,数据库中的用户记录的“ FirstName”和“ LastName”列分别设置为“ Mark”和“ Mandel”。
If I then wanted to delete that particular User object from the database, it is a simple operation of,
然后,如果我想从数据库中删除该特定的User对象,这是一个简单的操作,
transfer.delete(user);
transfer.delete(user);
And the User record has been deleted from the database, without having to write a line of SQL.
并且用户记录已从数据库中删除,而无需编写SQL行。
Transfer does a lot more than just this, including handling Object composition, generating list queries, and providing a highly configurable caching layer.
传输不仅要做很多,还包括处理对象组成,生成列表查询以及提供高度可配置的缓存层。
If that is not enough information, here is a more complete overview of Transfer.
如果这还不够,那么这里是Transfer的完整概述 。
How did Transfer come about and what was the reason for creating it? How are you involved?
Transfer是如何产生的,创建它的原因是什么? 您如何参与?
Well over 3 years ago, when I wrote my first blog post about Transfer, I was actually looking at just creating an automated way to generate my CFCs on the fly. It really was just a response to not wanting to explicitly write getters and setters all day!
大约 3年前,当我写有关Transfer的第一篇博客文章时 ,我实际上只是在寻找一种自动生成CFC的自动方法。 这确实是对不想整天显式编写getter和setter的回应!
Once I started getting that happening, I started thinking about how I could use this in conjunction with being able to automate the process of persisting the data that I had in these objects into, and out of the database.
一旦开始发生这种情况,我就开始思考如何将其与将这些对象中的数据持久保存到数据库中以及从数据库中持久出来的过程一起使用。
At the time, there weren’t any other persistence frameworks in the ColdFusion space, so I started researching ORM techniques in other technologies, and started rebuilding my blog, Compound Theory, with the very first version of Transfer. In fact, Compound Theory was the very first site developed with Transfer!
当时,ColdFusion空间中没有其他任何持久性框架,所以我开始研究其他技术中的ORM技术,并开始使用Transfer的第一个版本重建我的博客Compound Theory 。 实际上,复合理论是由Transfer开发的第一个站点!
As to how I am involved, as mentioned, I’m the creator and lead developer of Transfer. I also tend to manage much of the community aspect as well, but as the Transfer community has gotten larger, I’ve not needed to be as involved as we have quite a few very active members, who do a great job of helping out where needed.
如上所述,关于我的参与方式,我是Transfer的创建者和主要开发者。 我也倾向于管理社区的许多方面,但是随着Transfer社区的发展,我并不需要像许多活跃的成员那样参与其中,他们在帮助解决问题方面做得很出色需要。
When should a developer seek out Transfer? What has it got going for it?
开发人员应何时寻求转让? 它有什么用呢?
A developer starts seeking out Transfer when they have had a taste of developing an Object Oriented, Database Driven application by hand.
当开发人员喜欢手工开发面向对象的,数据库驱动的应用程序时,他们便开始寻求Transfer。
They get sick of the monotony and the time it takes to write all the CFCs that represent their Business Objects, all the SQL to do all their create, read, update and delete statements, and the ColdFusion code to move the information to and from their Objects to and from their SQL statements.
他们厌倦了单调性以及编写代表其业务对象的所有CFC,花费所有时间来执行其所有创建,读取,更新和删除语句的所有SQL以及将信息往返于其的信息的ColdFusion代码所花费的时间。往返SQL语句的对象。
When they discover Transfer, they quickly realise they don’t have to worry about these mundane details, and can focus more closely on how to design and model their application data layer, as Transfer takes care of it all for you, while also providing a slew of tools and generated code that can immediately be taken advantage of.
当他们发现Transfer时,他们很快就意识到他们不必担心这些世俗的细节,并且可以更加专注于如何设计和建模其应用程序数据层,因为Transfer会为您解决所有这些问题,大量可以立即利用的工具和生成的代码。
What are the pre-requisites for using Transfer? Is there any prior knowledge that would help new users? Does it use any other frameworks that could simplify or complicate things?
使用传输的先决条件是什么? 是否有任何有助于新用户的先验知识? 它是否使用其他任何可以简化或复杂化的框架?
It is very useful to have a general understanding of Object Oriented Programming before starting with Transfer, as it does take a very OO perspective on development.
在开始使用Transfer之前,对面向对象的编程有一个总体的了解是非常有用的,因为它确实对开发具有面向对象的观点。
Transfer itself doesn’t use any other frameworks, but it integrates with many other frameworks, such as MVC frameworks like Model Glue, Mach II, Fusebox or ColdBox, and Inversion of Control frameworks like ColdSpring or Lightwire.
Transfer本身不使用任何其他框架,但是与许多其他框架集成,例如MVC框架(如模型胶水,Mach II,Fusebox或ColdBox)以及控制反转框架(如ColdSpring或Lightwire)。
This enables you to very easily build some very mature and sophisticated application foundations simply by combining several ColdFusion community projects together, which can cut down development time on projects considerably.
通过将多个ColdFusion社区项目组合在一起,您可以非常轻松地构建一些非常成熟和复杂的应用程序基础,这可以大大减少项目的开发时间。
What sets Transfer apart from other frameworks?
是什么使Transfer与其他框架不同?
While Transfer does do a lot of things for you, it also attempts to ‘get out of your way’ in a lot of ways as well. It doesn’t set a prescribed methodology to your development, so you have a lot of freedom in the way you want to build your applications.
尽管Transfer可以为您做很多事情,但它也尝试以很多方式“摆脱您的束缚”。 它没有为您的开发设置规定的方法,因此您在构建应用程序的方式上有很多自由。
There are several key extension mechanisms that Transfer has that gives you a very large amount of flexibility with your implementations and means that you aren’t tied into a single way of developing your applications. In fact, I can count on one hand the number of places I’ve actually said on the mailing list or within the documentation ‘This is the only way to do X with Transfer!’.
Transfer具有几种关键扩展机制,这些扩展机制为您的实现提供了极大的灵活性,这意味着您不必局限于开发应用程序的单一方式。 实际上,我一方面可以指望我在邮件列表或文档中实际所说的位数,“这是使用Transfer X的唯一方法!”。
Are there any great examples of Transfer “in the wild”?
有没有在“野外”转让的好例子?
The two largest commercial Transfer implementations that I am aware of are:
我知道的两个最大的商业转移实现是:
NGA.NET, Australia’s leading e-recruitment company. Since 2000 NGA.NET’s has been building its e-recruitment product and delivering solutions to Top 500 companies and federal government, where NGA.NET have 100% market share. Their application has gone through many evolutionary steps, with a brand new version built on Mach-ii, ColdSpring and Transfer architecture in beta for 2008.
NGA.NET ,澳大利亚领先的电子招聘公司。 自2000年以来,NGA.NET一直在构建其电子招聘产品,并向500强公司和联邦政府提供解决方案,在这些公司和联邦政府中NGA.NET拥有100%的市场份额。 他们的应用经历了许多演进步骤,并在2008年的Beta中建立了基于Mach-ii,ColdSpring和Transfer架构的全新版本。
Broadchoice is a provider of on-demand, integrated Web marketing solutions that uniquely combine social networking, content management, marketing campaigns, and analytics to deliver business intelligence based on actual customer, partner, and prospect behavior. Broadchoice eliminates waste and guesswork from marketing by enabling companies to engage their corporate community to increase marketing effectiveness.
Broadchoice是按需集成Web营销解决方案的提供商,该解决方案将社交网络,内容管理,营销活动和分析独特地结合在一起,可以根据实际客户,合作伙伴和潜在客户的行为提供商业智能。 Broadchoice使公司能够与其公司社区互动以提高营销效率,从而消除了营销浪费和猜测。
Luis Majano and I recently also announced an open source wiki called CodexWiki, based on Transfer, ColdBox and ColdSpring. It is currently in private beta, but keep an eye on www.codexwiki.org for more details.
我和Luis Majano最近还宣布了一个基于Transfer,ColdBox和ColdSpring的开源Wiki,称为CodexWiki。 它目前处于私人测试阶段,请关注www.codexwiki.org以获取更多详细信息。
What about licensing, community, support and documentation?
许可,社区,支持和文档呢?
Transfer is released under the Common Public Licence 1.0, which allows a great degree of freedom when utilising Transfer, both from a commercial, and open source perspective.
转让是根据通用公共许可证1.0发布的,无论从商业角度还是从开源角度来看,在使用转让时都具有很大的自由度。
The two major Transfer support and community avenues, are the Transfer mailing list which has approximately 340 members, and is very active, and the #transfer IRC chat room on the Dalnet IRC network.
Transfer的两个主要支持和社区途径是拥有大约340个成员并且非常活跃的Transfer邮件列表 ,以及Dalnet IRC网络上的#transfer IRC聊天室 。
Compound Theory also recently announced commercial support programs, so the full gamut of both community and commercial support is available for Transfer.
复合理论最近还宣布了商业支持计划 ,因此可以为Transfer提供社区和商业支持的全部范围。
Documentation can be found on the Transfer Wiki, which includes links to presentations, example applications and a variety of blog posts on Transfer.
可以在Transfer Wiki上找到文档,该文档包括演示文稿,示例应用程序的链接以及Transfer上的各种博客文章。
Bug and Enhancement Ticket Tracking can be found on the Transfer Tracker.
可在Transfer Tracker上找到错误和增强故障单跟踪。
All these details and more can be found at the Transfer website.
所有这些详细信息以及更多信息都可以在Transfer网站上找到。
What’s coming up in the future for Transfer?
转移将来会发生什么?
Transfer has just yesterday hit version 1.0, which is very exciting and has been a long time coming!
Transfer昨天才发布1.0版,这非常令人兴奋,而且已经有很长时间了!
A brand new website for Transfer is in the works, which will integrate the already implemented wiki and tracker, to give the community even more ways to learn and develop with Transfer.
正在开发一个全新的Transfer网站,它将整合已实施的wiki和Tracker,为社区提供更多使用Transfer学习和发展的方式。
I’ve also finished entering all the possible enhancements for Transfer into the Tracker, and there will be a process to allow the community to help decide which of those features will make it into Transfer 1.1
我还已经完成了将Transfer的所有可能的增强功能输入到Tracker中 ,并且将有一个流程允许社区帮助决定哪些功能将使其纳入Transfer 1.1中。
The professional side of Transfer is also being expanded, with training modules currently being written to provide both onsite and online training options, starting with a full day of training at webDU!
Transfer的专业方面也正在扩展,目前正在编写培训模块,以提供现场和在线培训选项, 从 webDU的 一整天培训 开始 !
It’s a very exciting time for Transfer!
这是转学非常激动人心的时刻!
Where can people find more information about Transfer?
人们在哪里可以找到有关转让的更多信息?
The Transfer mailing list and documentation are some of the best places to get more information about Transfer.
Transfer邮件列表和文档是获得有关Transfer的更多信息的最佳场所。
There is a full listing of Transfer Presentations also available on the Wiki, which cover both introductory and advanced Transfer concepts, and a series of example applications, which are a great way to get your feet wet.
Wiki上也提供了Transfer Presentations的完整列表,涵盖了入门和高级Transfer概念,以及一系列示例应用程序 ,这是让您精疲力尽的好方法。
Great, thanks for playing along Mark!
太好了,谢谢您与Mark一起玩!
翻译自: https://www.sitepoint.com/10-questions-for-mark-mandel-on-transfer-orm/
相关资源:jdk-8u281-windows-x64.exe