C# SenseNet 7.0 MVC应用程序能否使用SenseNet 6.5存储库作为其数据源?

C# SenseNet 7.0 MVC应用程序能否使用SenseNet 6.5存储库作为其数据源?,c#,asp.net,asp.net-mvc,sensenet,C#,Asp.net,Asp.net Mvc,Sensenet,我有一个从SenseNet 6.5.4创建的SenseNet存储库,它有40多个自定义内容类型(CTD),每个类型都有自己的内容处理程序。此存储库已为客户运行了一年多,其中包含大量数据 我想为这个客户端创建一个ASP.NET MVC应用程序,现在使用新的SenseNet 7.0(beta)框架看起来非常简单。但是,我的内容存储库来自早期版本的SenseNet,这意味着我的处理程序依赖于以前的SenseNet库,这些库可能与新库不兼容 这可能吗?如果可能的话,考虑到该客户端将在某个时候升级到SN

我有一个从SenseNet 6.5.4创建的SenseNet存储库,它有40多个自定义内容类型(CTD),每个类型都有自己的内容处理程序。此存储库已为客户运行了一年多,其中包含大量数据

我想为这个客户端创建一个ASP.NET MVC应用程序,现在使用新的SenseNet 7.0(beta)框架看起来非常简单。但是,我的内容存储库来自早期版本的SenseNet,这意味着我的处理程序依赖于以前的SenseNet库,这些库可能与新库不兼容


这可能吗?如果可能的话,考虑到该客户端将在某个时候升级到SN 7.0,这是一个好主意吗?

是的,这是可能的,但需要做很多工作,因为您必须创建链接到新SN 7.0库的内容处理程序。对于现有的自定义内容处理程序,这是一个简单的复制/粘贴过程,只需在此处或那里进行一些编辑。只需将处理程序的C#代码添加到新的MVC项目中,并确保它已编译且没有错误

这是最简单的部分!现在,您必须为存储库中引用6.5库的所有数据创建处理程序。对于我的项目,我必须移植11个内容处理程序(来自SN安装),再加上另外30多个支持类

在启动端口之前,最好从存储库中删除所有未使用的内容,因为MVC应用程序在尝试从存储库中提取内容但找不到SN 7.0处理程序时会引发异常。像
博客
维基
杂志
等,如果不使用,可以删除

编辑:为了回应Miklos的评论,应该指出,这个问题来自一个评估SN 7.0升级路径的实验项目,不是推荐的升级方法。啊,开源软件之美

我打算通过将数据从6.5存储库导出为XML,然后将其导入7.0存储库来尝试升级自定义内容。只要这些内容都不是从6.5中发现的、而不是从7.0中发现的任何外来内容类型(CTD)派生出来的,那么这应该是可行和直接的


最后,我不同意这样的评论,即最好是在MVC应用程序的6.5框架中使用RESTAPI。我已经这样做过好几次了,SN6.5不容易支持MVC。所有调用都是客户端OData Ajax,调试是一件痛苦的事情,没有服务器端的C#API,每次需要查询存储库时编写Ajax调用都是荒谬的。是的,我知道你可以从服务器上创建OData调用,但这与一个干净、简单、具有良好intellisense的服务器端API相去甚远。这根本不值得奋斗。使用SN7.0,您可以使用NuGet软件包,在大约10分钟内运行一个MVC站点,并提供支持。只是没有比较。

是的,这是可能的,但需要做很多工作,因为您必须创建链接到新SN 7.0库的内容处理程序。对于现有的自定义内容处理程序,这是一个简单的复制/粘贴过程,只需在此处或那里进行一些编辑。只需将处理程序的C#代码添加到新的MVC项目中,并确保它已编译且没有错误

这是最简单的部分!现在,您必须为存储库中引用6.5库的所有数据创建处理程序。对于我的项目,我必须移植11个内容处理程序(来自SN安装),再加上另外30多个支持类

在启动端口之前,最好从存储库中删除所有未使用的内容,因为MVC应用程序在尝试从存储库中提取内容但找不到SN 7.0处理程序时会引发异常。像
博客
维基
杂志
等,如果不使用,可以删除

编辑:为了回应Miklos的评论,应该指出,这个问题来自一个评估SN 7.0升级路径的实验项目,不是推荐的升级方法。啊,开源软件之美

我打算通过将数据从6.5存储库导出为XML,然后将其导入7.0存储库来尝试升级自定义内容。只要这些内容都不是从6.5中发现的、而不是从7.0中发现的任何外来内容类型(CTD)派生出来的,那么这应该是可行和直接的


最后,我不同意这样的评论,即最好是在MVC应用程序的6.5框架中使用RESTAPI。我已经这样做过好几次了,SN6.5不容易支持MVC。所有调用都是客户端OData Ajax,调试是一件痛苦的事情,没有服务器端的C#API,每次需要查询存储库时编写Ajax调用都是荒谬的。是的,我知道你可以从服务器上创建OData调用,但这与一个干净、简单、具有良好intellisense的服务器端API相去甚远。这根本不值得奋斗。使用SN7.0,您可以使用NuGet软件包,在大约10分钟内运行一个MVC站点,并提供支持。这是不可比较的。

很抱歉投了反对票,但我认为这不是一个明智的做法:)。请考虑通过REST API来访问6.5,因为上面的解决方案实际上是部分手动升级,这不是一个支持的场景,因为您提到的原因:丢失/更改的内容类型和处理程序,还有其他许多原因…嘿,米克洛斯,我同意,对于大多数SN用户来说,这不是最好的方法。话虽如此,主要问题是“是否可能”,答案是“是”。我将编辑我的答案以解决您的担忧。我真的只是想指出,要尝试这个方法,您必须知道自己在做什么,我知道您在做:)很抱歉,Thane投了反对票,但我认为这不是一个可取的方法:)。请考虑通过其他AP访问6.5