我是新來的dotnetnuke和asp.net。我需要創建一個易於在不同的DNN站點上安裝的模塊包。問題是需要手動添加SQL表和其他數據庫對象。我希望在部署包時自動添加它們。正如我所說,我對這一切都是陌生的,一步一步的解釋將是非常有幫助的。創建一個易於安裝sql數據庫的dotnetnuke包
感謝,
伊蓮娜
我是新來的dotnetnuke和asp.net。我需要創建一個易於在不同的DNN站點上安裝的模塊包。問題是需要手動添加SQL表和其他數據庫對象。我希望在部署包時自動添加它們。正如我所說,我對這一切都是陌生的,一步一步的解釋將是非常有幫助的。創建一個易於安裝sql數據庫的dotnetnuke包
感謝,
伊蓮娜
O.K.我已經瞭解了這一點,並希望與那些可能還在掙扎的人分享。一旦你創建了一個包,你需要解壓縮並編輯一些文件。查看包中的.dnn文件。正如Hamlin指出的那樣,您需要添加將執行SQL腳本並創建表,存儲過程和其他數據庫對象的SCRIPTS(而不是文件)。以下是我添加到dnn文件的代碼部分。它被添加到組件標籤。
<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">
在那裏你需要放入路徑,文件類型,文件名和版本。然後您需要創建您在清單中指明的數據提供者文件。我使用{databaseOwner}和{objectQualifier}來確保新的數據庫對象符合它們將要安裝的服務器。這些區分大小寫,所以要小心,否則你會得到錯誤。這裏是我的數據提供程序文件看起來像:
05.02.05.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 [email protected]
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 [email protected]
end
go
uninstall.sqldataprovider
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文件)。我使用此代碼從web.config文件中提取信息,並使連接適合於任何站點。
VB文件:
Dim cn As New SqlConnection(ConfigurationManager.ConnectionStrings("sitesqlserver").ConnectionString)
ASCX文件:
ConnectionString="<%$ ConnectionStrings:SiteSqlServer %>"
然後打包所有包括新的數據提供程序文件到一個zip文件中的文件,你應該是好去。
這是通過的SqlDataProvider文件處理。
注意,當你創建VS2010(或VS2008)一個DotNetNuke的編譯的模塊項目,你結束了三個這樣的文件,其中兩個是在這裏關注的(我認爲)
注意執行的,有指向這些SqqDataProvider文件中的條目:
<file>
<name>01.00.00.SqlDataProvider</name>
</file>
<file>
<name>Uninstall.SqlDataProvider</name>
</file>
還要注意,在清單文件,版本號對應前綴上安裝SQL文件:
<version>01.00.00</version>
最後,您將打包DNN模塊爲.zip文件。確切的結構迴避我,但DNNCreative和下面引用的書有很多的信息。
一旦您擁有了可部署的.zip文件,就可以像安裝SnowCovered的任何其他模塊一樣安裝它。
我的建議是做自定義模塊開發以下
我用這兩個資源,發現他們非常有用
以上是我在搞清楚DNN開發過程中所獲得的並行知識,但我認爲這是對過程的很好總結。我們的模塊是特定於客戶端的,所以我們不使用sql安裝程序文件;但是,當我們開發待售模塊時,我肯定會使用它們。 – 2011-04-30 15:32:09
謝謝哈姆林。我會試試這個。正如我所說的,我對這一切都很陌生,我的第一個項目是弄清楚這一點。它可能不像看起來那麼難。我會讓你知道我得到了多少。 – Jelena 2011-04-30 22:08:28
沒問題 - Mitchel賣家的書很好的一步一步地經歷着這一切。他在Stackoverflow也是一個很大的貢獻者。 – 2011-05-01 01:30:31