Разработка компонента карточки

Исходный код компонента карточки расположен в подкаталоге NetstatSolutionCard приложенного архива.

Поскольку пример разработки компонента карточки приведён в разделе Разработка компонента карточки, здесь отмечены только ключевые моменты его реализации для Модуля учета сетевых устройств.

Реализация интерфейса карточки в компоненте не планируется, вместо этого в Конструкторе разметок будет настроена её разметка, с последующей выгрузкой этих настроек (рассмотрено в разделе Формирование "CardPackage" и "SqlPackage") для размещения в пакете установки. Чтобы разметка карточки могла быть настроена в конструктора, класс компонента карточки отмечен специальным атрибутом Customizable.

В конструктор класса компонента карточки добавим простой алгоритм проверки лицензионного ключа, значение которого считывается из реестра Windows. Для ввода лицензионного ключа предполагается использовать SnapIn, который будет разработан позднее.

Проверку лицензии при необходимости можно реализовать несколькими методами (см. Лицензирование).

Класс компонента должен быть отмечен атрибутом Guid, значение которого соответствует Идентификатору COM-компонента карточки (см. Создание схемы метаданных карточки).

using DocsVision.BackOffice.WinForms;
using DocsVision.Platform.CardHost;
using System;
using System.Runtime.InteropServices;

namespace NetstatSolutionCard
{
 [ComVisible(true)]
 [Customizable(true)]
 [Guid("053B0CA1-95FD-4DDA-95FA-6043AFACCC1F")]
 [ClassInterface(ClassInterfaceType.None)]
 public partial class MainControl : DocsVision.BackOffice.WinForms.BaseCardControl
 {
  public MainControl()
  {
   if (!CheckLicense())
   {
    throw new Exception("Отсутствует лицензия для Модуля учета сетевых устройств"); (1)
   }

   InitializeComponent();
  }

  private bool CheckLicense() (2)
  {
   bool result = false;

   return result; (3)
  }
 }
}
1 В случае отсутствия лицензии, при открытии карточки будет выдано сообщение об ошибке.
2 Алгоритм проверки лицензии.
3 Логику проверки смотрите в исходном коде проекта.

Если вы работаете с исходными кодами проекта, то компонент карточки собирается первым.