2

是否可以使用带有 LINQ to SQL 而不是 openAccess 的 Sitefinity 4 自定义模块?对此有何指导?

4

3 回答 3

2

我相信你现在已经解决了这个问题,但我目前正在使用基于 Linq-to-Sql 的模块。

如果您想创建一个与 SF 数据模型紧密链接的控件(即使用那里的表),我可能会尝试坚持使用 OpenAccess,正如我在论坛上回答我使用 Linq-to 的一个问题时所说的那样-sql 为此可能会出现问题。

因为我不想使用内置表并使用我自己的,所以我不得不调整 SDK 中的解决方案。因此,例如,如果您下载 SDK 并查看中间作业模块,您基本上必须复制它,但有一些区别:

  1. 我的数据提供者基类实现了 DataProviderBase而不是ContentDataProviderBase
  2. 我的 Manager 类实现了 ManagerBase而不是ContentManagerBase
  3. 我的 Module 类实现了 ModuleBase而不是ContentModuleBase
  4. 我认为配置部分与我的配置步骤相同

我的模块相对简单,所以我使用 Linq-to-sql 作为模型并创建了一个 Linq2SqlDataProvider,它实现了我的数据提供程序基类。

需要注意的一些事情是,如果您正在使用视图状态,请确保在您的控件将驻留的页面上切换它。当我使用列表视图时,数据绑定对我来说很有趣,这意味着我必须重写 SimpleView 类的预渲染并在那里绑定,因为它在其他任何地方都不起作用。

希望有帮助,

于 2011-04-22T18:28:21.413 回答
2

如果您根本没有使用 Content 模型,而是您的意思是您已经开发了自己的后端并希望将其集成到 Sitefinity 中,我刚刚制作了一个关于在 Sitefinity 4 中开发 Intra-Site 模块的视频和播客: http://bit.ly/lHcOX7

与 3.x 中的 Intra-Site 模块一样,这些模块对管理员和前端使用标准的 asp.net 用户控件。该视频向您展示了如何为此类模块创建简单的安装程序和卸载程序。

我希望这是有帮助的!

于 2011-05-26T15:26:29.393 回答
1

Sitefinity 基于提供者模型模式 (http://www.sitefinity.com/40/help/developers-guide/deep-dive-provider-model.html)。Sitefinity 只是碰巧默认使用 OpenAccess,但您实际上可以以任何您希望的方式实现提供程序。例如,您可以编写一个将所有“新闻模块”数据存储在文本文件中的提供程序。

这显然适用于自定义模块,就像它适用于内置模块一样。

希望这会有所帮助

于 2011-04-13T02:32:57.070 回答