如何在我们的数据库中使用SenseNet框架

时间:2016-10-11 09:53:33

标签: sensenet

我成功安装了SenseNet Framework并且它正在我的计算机上运行,​​但是我不知道如何使用这个框架来我们的数据库来开发我的私人网站项目以及如何开始开发?你能帮助我吗 ?

非常感谢!

1 个答案:

答案 0 :(得分:3)

我将尝试概述目前的可能性(从SenseNet版本 6.5.4 开始,因为新选项即将推出)。

将SenseNet用作独立的Web应用程序

这就是您所做的:安装软件包并获得完整的Web应用程序:门户UI和内容存储库(db)。您可以creating a new skin自定义GUI,也可以在页面上创建页面并移动portlets around。以下是一些入门链接:

关于维护项目(例如备份等),请查看维基上的运算符和开发文章 - 或者在此处提出具体问题:)。

使用SenseNet作为后端服务

开发人员可以基于我们提供的OData REST API:您可以通过 http请求(或使用 client SDK 管理内容存储库中的内容来自C#)。这需要与第一个选项相同的SenseNet安装,但您可以保留现有的ASP.NET应用程序,只从后端向SenseNet rest api发出请求(也可以通过JavaScript进行跨站点ajax调用,但是你如果是敏感内容,则必须处理跨站点身份验证。

在SenseNet内容存储库

之上构建ASP.NET webforms或mvc应用程序

目前这有点棘手,因为没有'如何'这个场景的维基文章。基本上,您可以使用现有(或新的)ASP.NET Webforms或MVC应用程序,并将Content Repository构建为存储。通过这种方式,您可以松开内置UI以及对repo进行REST API调用的可能性(在之前的选项中可能),但您仍然可以直接连接到repo usig SenseNet C#api (这称为进程内行为)。

要实现这一点,您必须将内置SenseNet web.config中的所有内容复制到应用程序的Web配置文件中,并且如果您想在启动时执行一些初始化操作(MVC或web api)路由等),你必须从内置的全局类(称为 SenseNetGlobal )继承,实现常用方法(app start,app end等)并在全局中注册。 web根目录中的asax文件。如果你有正确的连接字符串和web.config中设置的所有其他值,你应该能够使用SenseNet api(例如,加载和操作内容项,查询repo)。

修改:有关自定义表格的详细信息

自定义数据库表

无论您采用哪种方式,您当然可以将自己的自定义表格添加到SenseNet数据库。在您这样做之前,请考虑将您的对象存储为内容存储库中的常规Content项目,这样您就可以从平台的内置功能中受益,例如:索引和权限。

但是,如果您已经拥有要重用或集成的表结构,或者更容易独立于SN实现它,则可以将自定义数据存储在同一数据库中。我们提供了一个用于访问数据库的API,您不必担心连接字符串和其他内容,您只需使用 SqlProcedure SenseNet帮助程序类来执行直接SQL查询。

using (var cmd = new SqlProcedure { CommandText = "SELECT * FROM MyTable WHERE RefId = @MyId", CommandType = CommandType.Text })
{
    cmd.Parameters.Add("@MyId", SqlDbType.Int).Value = myId;

    var result = new List<int>();
    using (var reader = cmd.ExecuteReader())
    {
        while (reader.Read())
            result.Add(reader.GetSafeInt32(0));
        return result;
    }
}

还可以使用内置的ASP.NET Webforms用户界面来呈现甚至edit external items(例如,自定义表中的记录)。该平台(具有少量开发)能够显示具有内置字段控件的外部对象(例如短文本,下拉列表等),并允许用户操作它们,而无需从头开始创建CRUD用户界面。

当然,您也可以使用现有的开发技能和首选控件构建自定义UI。

相关问题