Como licenciar componentes e controles
.NET Framework fornece um modelo licenciamento que é idêntico para todos os componentes e controles, incluindo controles de formulários do windows e controles de servidor de ASP.NET , e é totalmente compatível com licenciamento para controles Microsoft ActiveX®.
Com licenciamento, você, como o autor do componente ou controle, pode ajudar a proteger a propriedade intelectual verificando que um desenvolvedor está autorizado usar o componente ou controle. Essa verificação é mais importante em tempo de design, quando um desenvolvedor inserir seu componente ou controle em um aplicativo, o que em tempo de execução. Quando um desenvolvedor usa legalmente o componente ou controle licenciado em tempo de design, o desenvolvedor do aplicativo obtém uma licença de tempo de execução que o desenvolvedor pode distribuir distribuído.
Você tem muitos outros níveis de licenciamento suporte ao modelo licenciamento. O modelo separar lógica de validação de componente ou controle. Um provedor de licença concede licenças e executa lógica de validação. O provedor é uma classe que deriva de LicenseProvider. As etapas que você deve executar para ativar licenciamento são simples.
Quando você usa a implementação padrão de LicenseProvider fornecida por LicFileLicenseProvider, o arquivo de licença é formatada da seguinte maneira:
O nome do arquivo deve ser o nome totalmente qualificado, incluindo o namespace, classe com a extensão de nome de arquivo .LIC. Por exemplo:
Namespace1.Class1.LIC
O conteúdo do arquivo de licença deve conter a seguinte cadeia de caracteres de texto:
“myClassName é um componente licenciado”.
myClassName é o nome totalmente qualificado da classe. Por exemplo:
“Namespace1.Class1 é um componente licenciado”.
Os exemplos de código mostram um controle de formulários do windows e um controle de servidor de ASP.NET que implementam os exemplos simples de licença.
Para ativar licenciamento para o componente ou controle
Aplicar LicenseProviderAttribute à classe.
Chame Dispose em qualquer licença concedida no finalizer da classe ou antes que o finalizer é chamado.
Os exemplos de código usam a classe interna LicFileLicenseProviderdo provedor de licença, que permite que você use a licença de texto arquivos e irá simular o comportamento de licenciamento de COM (ActiveX). Cenários mais complexos licenciamento, como chamar um serviço Web XML para limitar o número de instâncias de um componente, exigem tipos diferentes de provedores de licença.
Exemplo
Imports System
Imports System.ComponentModel
Imports System.Windows.Forms
' Adds the LicenseProviderAttribute to the control.
<LicenseProvider(GetType(LicFileLicenseProvider))> _
Public Class MyControl
Inherits Control
' Creates a new, null license.
Private license As License = Nothing
Public Sub New()
' Adds Validate to the control's constructor.
license = LicenseManager.Validate(GetType(MyControl), Me)
' Insert code to perform other instance creation tasks here.
End Sub
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If (license IsNot Nothing) Then
license.Dispose()
license = Nothing
End If
End If
End Sub
End Class
using System;
using System.ComponentModel;
using System.Windows.Forms;
// Adds the LicenseProviderAttribute to the control.
[LicenseProvider(typeof(LicFileLicenseProvider))]
public class MyControl : Control
{
// Creates a new, null license.
private License license = null;
public MyControl ()
{
// Adds Validate to the control's constructor.
license = LicenseManager.Validate(typeof(MyControl), this);
// Insert code to perform other instance creation tasks here.
}
protected override void Dispose(bool disposing)
{
if(disposing)
{
if (license != null)
{
license.Dispose();
license = null;
}
}
}
}
// Adds the LicenseProviderAttribute to the control.
[LicenseProvider(LicFileLicenseProvider::typeid)]
public ref class MyControl: public Control
{
// Creates a new, null license.
private:
License^ license;
public:
MyControl()
{
// Adds Validate to the control's constructor.
license = LicenseManager::Validate( MyControl::typeid, this );
// Insert code to perform other instance creation tasks here.
}
public:
~MyControl()
{
if ( license != nullptr )
{
delete license;
license = nullptr;
}
}
};
Imports System
Imports System.ComponentModel
Imports System.Web.UI
' Adds the LicenseProviderAttribute to the control.
<LicenseProvider(GetType(LicFileLicenseProvider))> Public Class MyControl
Inherits Control
' Creates a new, null license.
Private license As License
Public Sub New()
' Adds Validate to the control's constructor.
license = LicenseManager.Validate(GetType(MyControl), Me)
' Insert code to perform other instance creation tasks here.
End Sub
Public Overrides Sub Dispose()
If (license IsNot Nothing) Then
license.Dispose()
license = Nothing
End If
MyBase.Dispose()
End Sub
End Class
using System;
using System.ComponentModel;
using System.Web.UI;
// Adds the LicenseProviderAttribute to the control.
public class MyServerControl : Control
{
// Creates a new, null license.
private License license = null;
public MyServerControl()
{
// Adds Validate to the control's constructor.
license = LicenseManager.Validate(typeof(MyServerControl), this);
// Insert code to perform other instance creation tasks here.
}
public override void Dispose()
{
if (license != null)
{
license.Dispose();
license = null;
}
base.Dispose();
}
}