Исходники.Ру - Программирование
Исходники
Статьи
Книги и учебники
Скрипты
Новости RSS
Магазин программиста

Главная » Статьи по программированию » .NET - Все статьи »

Обсудить на форуме Обсудить на форуме

Вызов компонент бизнес логики из ASP.NET приложений
Включение бизнес логики в компоненты неотъемлемая часть реальных приложений для вэб. В ASP.NET бизнес объекты это строительные блоки для много-звенных Web приложений, такие как с уровнем доступа к данным или с правилами для приложения...
Включение бизнес логики в компоненты неотъемлемая часть реальных приложений для  вэб.  В ASP.NET бизнес объекты это строительные блоки для много-звенных Web приложений, такие как с уровнем доступа к данным или с правилами для приложения. При использовании Com объектов возникало много проблем во первых их нужно было зарегистрировать(используя regsvr32), но основная проблема была в том, что приложение однажды загрузившее его "лочило" компонент и чтобы его удалить или заменить нужно было останавливать целый вэб сервер.

ASP.NET предлагает следующее решение этой проблемы, размещать объекты в какой-то известной директории которые затем будут подгружаться во время выполнения. Эта директория всегда называется /bin, она всегда располагается в к корневом каталоге для приложения(или в корневом для виртуальной директории). Преимущество заключается в том, что не нужно регистрировать компоненты для того, чтобы они стали доступны из ASP.NET  - компоненты будут установлены простым копированием в директорию.

В дополнение в вышесказанному ASP.NET не требует чтобы эти компоненты лочились на диске во время выполнения. Дело в следующем, ASP.NET дублирует сборки найденные в /bin и загружает копии вместо настоящих. Настоящие компоненты могут без проблем заменены даже когда Web server работает, изменения в /bin автоматически будут замечены во время выполнения после чего ASP.NET позволяет текущим работающим запросам закончиться и сразу же все новые входящие запросы к приложению будут использовать новый или новые компоненты.

Бизнес компоненты это только класс экземпляр которого вы можете создавать на странице, которая импортирует его.

пример

using System;
using System.Text;
namespace HelloWorld {
  public class HelloObj {
    private String _name;
    public HelloObj() {
        _name = null;
    }
    public String FirstName {
      get {
        return _name;
      }
      set {
        _name = value;
      }
    }
    public String SayHello() {
      StringBuilder sb = new StringBuilder("Hello ");
      if (_name != null)
         sb.Append(_name);
      else
         sb.Append("World");
      sb.Append("!");
      return sb.ToString();
    }
  }
}
Imports System
Imports System.Text
Namespace HelloWorld
  Public Class HelloObj
    Private _name As String
    Public Sub New
      MyBase.New()
      _name = Nothing
    End Sub
    Public Property FirstName As String
      Get
        Return(_name)
      End get
      Set
        _name = value
       End Set
    End Property
    Public Function SayHello() As String
      Dim sb As New StringBuilder("Hello ")
      If (_name <> Nothing) Then
         sb.Append(_name)
      Else
         sb.Append("World")
      End If
      sb.Append("!")
      Return(sb.ToString())
    End Function
  End Class
End Namespace
import System;
import System.Text;
package HelloWorld {
  public class HelloObj {
    private var _name:String;
    public function HelloObj() {
        _name = null;
    }
    public function get FirstName() : String
    {
        return _name;
    }
    public function set FirstName(value:String) : void
    {
        _name = value;
    }
    public function SayHello() : String {
      sb:StringBuilder = new StringBuilder("Hello ");
      if (_name != null)
         sb.Append(_name);
      else
         sb.Append("World");
      sb.Append("!");
      return sb.ToString();
    }
  }
}

  Откомпилируйте файл с этим классом используя csc.exe из командной строки. используйте /t опцию для того чтобы получить библиотеку.

csc /t:library HelloObj.cs

И скопируйте библиотеку потом в /bin. Теперь этот компонент доступен из любой страницы, где нужно использовать его

A Simple Managed Component

Заметьте Import директива указывает какой namespace нужно подключить.  Как только namespace включён, класс может быть использован на странице. Поскольку сборка подгружается ASP.NET во время выполнения, то нам нужен только импорт namespace, чтобы компонент был доступен.

По умолчанию ASP.NET загружает сборки из /bin каталога когда приложение стартует. Сборки могут также подгружаться через файл конфигурации.

Примечание: сборка загруженная из /bin каталога доступна только для того приложения где она была запущена. Это подразумевает, что приложения могут использовать разные сборки с одинаковыми именами классов и namespace без конфликтов. По сути бизнес объекты это локальные сборки


Может пригодится:


Автор: Леонид Молочный
Прочитано: 2245
Рейтинг:
Оценить: 1 2 3 4 5

Комментарии: (0)

Добавить комментарий
Ваше имя*:
Ваш email:
URL Вашего сайта:
Ваш комментарий*:
Код безопастности*:

Рассылка новостей
Рейтинги
© 2007, Программирование Исходники.Ру