使用易于安装的sql数据库创建dotnetnuke包

使用易于安装的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

我对dotnetnuke和asp.net都是新手。我需要创建一个模块包,很容易安装在不同的DNN网站。问题是需要手动添加SQL表和其他数据库对象。我希望在部署包时自动添加它们。正如我所说,我对所有这些都是新手,一步一步的解释将非常有帮助

谢谢


Jelena

这由SqlDataProvider文件处理

请注意,当您在VS2010(或VS2008)中创建DotNetNuke编译模块项目时,您最终会得到三个这样的文件,其中两个在这里是值得关注的(我想)

  • 01.00.00.SqlDataProvider在模块安装时执行
  • 卸载时运行Uninstall.SqlDataProvider
注意:在DNN清单文件中,有一些条目指向这些SqqDataProvider文件:

    <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的一个重要贡献者。学习打包模块的最简单方法是查看一个简单的现有模块,如链接模块。我同意这一点,只要它是一个现代模块——一些旧模块有点奇怪!