Skip to main content

Enginio: Qt后端作为一个服务推出了技术预览版

Comments

原文链接:Makkonen Sami - Enginio: Qt Backend as a Service Launches Tech Preview

您可能已经在2012年的Qt开发者大会上听说了Enginio,或者可能偶然发现了我们的网站,http://engin.io。现在我们已经准备好正式开启我们的Enginio技术预览版的大门,欢迎您来测试。我们已经有一些早期尝鲜者,他们提供的宝贵反馈意见,我们已经用于产品开发。

为什么用Enginio?

纵观现有的云解决方案,我们发现仍有改进的空间。它们有时很难上手,并且需要某些基础设施或平台的专业知识,大多数情况下,它们没有Qt/C++应用程序接口。使用这些经验,在我们尝试过为各种各样的程序构建后端之后,我们决定创建一个解决方案,它使用基于Qt的直观接口把应用程序和后端云存储连接起来。使用Enginio,开发人员能够专注于创建他们的应用使之视觉愉悦和运行良好,让Enginio来管理后端功能、扩展、安全和性能。

我们的目标是基于Qt的一句箴言--“使开发者的生活更简单”,所以我们要做的是为开发者提供一个不复杂的、无压力的后端开发体验。所以我们开始创建一个易用并且为Qt应用开发增值的解决方案,与此同时,把不费力的开发特质传递到其它平台。我们希望能够确保这个Qt后端能够为所有人提供增值。 Enginio也将会在商业运作之下,同时提供给Qt的开源和企业用户。对使用商业许可进行开发的Qt企业用户,稍候会为他们提供一些附加的增值特性和功能。

Enginio技术预览版支持:

  • 网页版控制面板(配置和管理您的后端的用户界面)
  • Schema-less数据存储(存储应用程序数据的地方)
  • 安全模型(控制哪些用户访问什么数据的机制)
  • 文件支持(在云端保存小的或者大的文件)
  • 全文搜索(通过内容搜索存储的数据)
  • Qt/QML客户端库(创建应用程序的简便方式)

怎样开始?

  1. 注册一个Enginio账户

  1. 设置您的新后端

  1. 开发您的应用

Qt库的最新发布版可以从Enginio控制面板找到。

共享库和QML扩展插件,像其它Qt项目一样,使用‘qmake && make && make install’构建和安装。

Qt实例

I. 在Qt Creator中选择:文件(File) > 新建文件或工程……(New File or Project…)创建新的“Qt Gui Application”。

II. 在新工程的pro文件中添加:

QT += network
win32:CONFIG(debug, debug|release): LIBS += -lenginioclientd
else: LIBS += -lenginioclient

III. 在MainWindow.cpp中:

// Include Enginio headers
#include

// Instantiate Enginio Client
// Copy your backend ID and secret from Enginio dashboard
const QString backendId("YOUR_OWN_BACKEND_ID");
const QString backendSecret("YOUR_OWN_BACKEND_SECRET");
EnginioClient *client = new EnginioClient(backendId, backendSecret);

// Create new object to backend
EnginioJsonObject banana("objects.fruits");
banana.insert("name", QStringLiteral("Banana"));
banana.insert("price", 1.59);
EnginioObjectOperation *createOp = new EnginioObjectOperation(client);
createOp->create(banana);
createOp->execute(); // Initiates asynchronous operation

// Fetch objects from backend to list model
EnginioObjectModel *objectModel = new EnginioObjectModel();
EnginioQueryOperation *queryOp = new EnginioQueryOperation(client);
queryOp->setObjectType("objects.fruits");
queryOp->setModel(objectModel);
queryOp->execute();

QML实例

I. 在Qt Creator中选择:文件(File) > 新建文件或工程……(New File or Project…)创建新的“Qt Quick 2 Application (Built-in Elements)”

II. 在main.qml中:

import io.engin 1.0 as Enginio

// Instantiate Enginio Client
// Copy your backend ID and secret from Enginio dashboard
Enginio.Client {
id: client
backendId: "YOUR_OWN_BACKEND_ID"
backendSecret: "YOUR_OWN_BACKEND_SECRET"
}

Enginio.ObjectModel {
id: objectModel
}

Enginio.QueryOperation {
id: queryOp
client: client
model: objectModel // Query results are added to model
objectTypes: ["objects.fruits"] // Get all fruit objects
}

Component.onCompleted: {
// Create new object to backend
var banana = {
objectType: "objects.fruits",
name: "Banana",
price: 1.59
};
var createOp = client.createObjectOperation();
createOp.create(banana);
createOp.execute();
createOp.finished.connect(function() {
// Fetch objects from backend to list model
queryOp.execute();
});
}

构建和您的互联程序就完成了。

我们想邀请更多的朋友来测试和提供反馈。然而请牢记这项服务仍在开发中并且您可能遇到一些漏洞、变更和崩溃。请到http://engin.io看一下吧。把您的想法告诉我们。

您可以通过mailus@engin.io联系到Enginio的开发团队。

Comments

Subscribe to our blog

Try Qt 6.11 Now!

Download the latest release here: www.qt.io/download

Qt 6.11 is now available, with new features and improvements for application developers and device creators.

We're Hiring

Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.