2010-04-26 47 views
0

我正在與之合作的團隊創建了一個CRM4插件,它封裝了「標準」CRM定製(例如修改現有實體,添加我們自己的自定義實體),報告,插件和我們自己的網頁(在IFrame中)和Web服務。所有非常典型的東西。CRM4(ISV)插件許可技術方法的建議

我正在編寫所有必需的安裝代碼,以簡化/自動化安裝過程,以便我們的ISV插件可以由任何人下載和試用,但已被要求考慮適當的方式限制功能 - 鼓勵人們購買許可證。

對於.net應用程序(特別是CRM4加載項)的「許可」,我不太瞭解這些概念/最佳實踐/陷阱,所以我問你是否有任何建議。我們正在尋找相當簡單的東西,並且應該是合理的'可破解的',因爲我們認爲必須輸入許可證代碼通常是PITA。

  • CRM API有什麼可以提供給ISV開發者的嗎? (我發現其中一個可以修改許可證實體,但我假設這是針對CRM許可證本身的)
  • 是否有任何現有的代碼示例/項目/框架適合使用或實現?
  • 我很想在安裝附加組件時創建一個註冊表項,如果一個月後沒有輸入正確的許可證密鑰,將限制功能。這是做這件事的最好方法嗎?你有沒有看到其他附加組件可以改變/改善它?
  • 在限制功能方面,我在考慮拋出InvalidPluginExecutionExceptions。當然,必須有更「優雅」的方式來做到這一點?

所有的想法和建議表示讚賞。

Regards, Peter。

回答

1

我的想法:

  • 是的,你可以查詢授權實體獲得許可的用戶數,這是我所看到的一個共同的許可證類型。許多第三方供應商按許可用戶的數量收費,而不管這些用戶中有多少實際使用該定製。我試圖遠離這些,因爲許可證成本往往不適合企業部署。
  • 不是我所知道的。
  • 我喜歡這個選項,並且至少見過一個第三方工具使用這種方法。它們允許您在.config文件中聲明許可證密鑰,並且如果它們的運行時未在其中找到它,它將檢查已知的註冊表項。該工具附帶一個應用程序,可以在註冊表中爲您註冊許可證密鑰。我會小心測試並確保您的自定義代碼可以在最低權限環境中讀取註冊表。
  • 絕對不是優雅地拋出異常,但它確實證明了你的觀點。 :)除此之外,直接跳過你的代碼是另一種可能,儘管這可能會產生數據影響。如果您必須拋出異常,我會建議嘗試在您的實體的表單加載上運行一些JavaScript,以警告用戶其許可證已過期,並且保存會導致錯誤。一些更邪惡的計劃可能包括Thread.Sleep,有點像舊的共享軟件nagscreens。 :)

另一個想法 - 您可以設置企業IFD部署,以便您可以讓客戶遠程訪問演示,包括他們自己的演示組織?這取決於您的受衆,但您的客戶可能沒有下載和安裝試用版的豪華(時間,開發環境)。他們可能只是希望看到它的行動 - 一旦你有資格出售,也許你提供免費的遠程安裝,而不是花太多時間在一個完美的安裝包?再次,取決於您的受衆和您期望銷售的許可證數量。從技術上講,您可以使用SDK動態調配組織,並使在線試用流程完全自動化。當然,這是一項巨大的投資,但可以讓您保持對演示/ IP的絕對控制權。

希望有幫助!