使用易于安装的sql数据库创建dotnetnuke包
我对dotnetnuke和asp.net都是新手。我需要创建一个模块包,很容易安装在不同的DNN网站。问题是需要手动添加SQL表和其他数据库对象。我希望在部署包时自动添加它们。正如我所说,我对所有这些都是新手,一步一步的解释将非常有帮助 谢谢使用易于安装的sql数据库创建dotnetnuke包,sql,database,dotnetnuke,package,dataprovider,Sql,Database,Dotnetnuke,Package,Dataprovider,我对dotnetnuke和asp.net都是新手。我需要创建一个模块包,很容易安装在不同的DNN网站。问题是需要手动添加SQL表和其他数据库对象。我希望在部署包时自动添加它们。正如我所说,我对所有这些都是新手,一步一步的解释将非常有帮助 谢谢 Jelena这由SqlDataProvider文件处理 请注意,当您在VS2010(或VS2008)中创建DotNetNuke编译模块项目时,您最终会得到三个这样的文件,其中两个在这里是值得关注的(我想) 01.00.00.SqlDataProvider
Jelena这由SqlDataProvider文件处理 请注意,当您在VS2010(或VS2008)中创建DotNetNuke编译模块项目时,您最终会得到三个这样的文件,其中两个在这里是值得关注的(我想)
- 01.00.00.SqlDataProvider在模块安装时执行
- 卸载时运行Uninstall.SqlDataProvider
<file>
<name>01.00.00.SqlDataProvider</name>
</file>
<file>
<name>Uninstall.SqlDataProvider</name>
</file>
01.00.00.SqlDataProvider
卸载.SqlDataProvider
还要注意,在清单文件中,版本号对应于安装程序SQL文件上的前缀:
<version>01.00.00</version>
01.00.00
最后,您将把DNN模块打包成一个.zip文件。确切的结构让我难以理解,但是DNcreative和下面引用的书有很多信息
一旦有了deployable.zip文件,就可以像购买其他模块一样安装它
我的建议是这样做
- 观看一些有关自定义模块开发的最近DNC培训视频。他们非常详细地解释了这个过程
- 阅读Mitchel Seller的书:--它解释了SQL脚本/清单的所有有趣的调整,以支持模块的多个版本
我使用了这两种资源,发现它们非常有用好的。我已经解决了这个问题,希望与那些可能仍在挣扎的人分享。一旦你创建了一个包,你需要解压它并编辑一些文件。请查看包中的.dnn文件。正如Hamlin指出的那样,您需要添加脚本(而不是文件),这些脚本将执行SQL脚本并创建表、存储过程和其他数据库对象。下面是我添加到dnn文件的代码部分。它将添加到components标记中
<components>
<component type="Script">
<scripts>
<basePath>DesktopModules\UserComments</basePath>
<script type="Install">
<name>05.02.05.SqlDataProvider</name>
<version>05.02.05</version>
</script>
<script type="uninstall">
<name>uninstall.sqldataprovider</name>
<version>05.02.05</version>
</script>
</scripts>
</component>
<component type="Module">
卸载.sqldataprovider
ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE {databaseOwner}{objectQualifier}usercomments(
[moduleid] [int] NULL,
[comment] [text] NULL,
[date] [datetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
create procedure {databaseOwner}sp_viewcomments
@moduleid int
AS
BEGIN
SET NOCOUNT ON
SELECT moduleid, comment, date from {objectQualifier}usercomments where moduleid=@moduleid
end
go
create PROCEDURE {databaseOwner}sp_usercommentsinsert
@moduleid int,
@comment text,
@commentdate datetime
AS
BEGIN
SET NOCOUNT ON;
insert into {databaseOwner}{objectQualifier}usercomments (moduleid, comment, date) values (@moduleid, @comment, @commentdate)
END
go
create PROCEDURE {databasOwner}sp_countcomments
@moduleid int
As
begin
SELECT count(*) from {databaseOwner}{objectQualifier}usercomments where moduleid=@moduleid
end
go
DROP TABLE {databaseOwner}{objectQualifier}usercomments
GO
drop procedure {databaseOwner}sp_usercommentsinsert
GO
drop procedure {databaseOwner}sp_viewcomments
GO
drop procedure {databaseOwner}sp_countcomments
go
确保sqlconnections适用于新站点,并在包含这些连接的文件中进行必要的更改(在我的例子中,我在vb ascx.vb和ascx fle中有它们)。我使用此代码从web.config文件中提取信息,并使连接适合任何站点
vb文件:
Dim cn As New SqlConnection(ConfigurationManager.ConnectionStrings("sitesqlserver").ConnectionString)
ascx文件:
ConnectionString="<%$ ConnectionStrings:SiteSqlServer %>"
ConnectionString=“”
然后将所有文件(包括新的dataprovider文件)打包到一个zip文件中,您就可以开始了。以上是我在研究DNN开发时获得的附带知识,但我认为这是一个相当好的过程总结。我们的模块是特定于客户端的,因此我们不使用sql安装程序文件;不过,当我们开发销售模块时,我肯定会使用它们。谢谢你,哈姆林。我试试这个。正如我所说的,我对这一切都是新手,我的第一个项目就是弄清楚这一点。这可能不像看上去那么难。我会让你知道我做了多少。没问题——米切尔·塞勒的书非常擅长一步一步地完成这一过程。他也是Stackoverflow的一个重要贡献者。学习打包模块的最简单方法是查看一个简单的现有模块,如链接模块。我同意这一点,只要它是一个现代模块——一些旧模块有点奇怪!