Архив рубрики «DotNet»
Особенности ООП Delphi for DotNet
Чтобы подстроится под DotNet, внесены изменения в ООП Delphi:
1. Производный класс не TObject, а System.Object.( TObject переименованный System.Object).
2. Запрещены нетипизированные указатели и другие типы данных, которые напрямую обращаются к памяти.
Прочитать остальную часть записи »
Применений функций Net в коде Win32
Неуправляемый экспорт
Среда CLR позволяет предоставить статические методы DotNet неуправлямому коду Win32.
Для среды DotNet всякий кода Win32 называется неуправляемым, хотя неочевидно, что там будут указатели. Иногда это называют неуправляемым экспортом Unmanaged Export. Неуправляемый экспорт реализован с помощью механизма Invert Pain Work. По сути приложение Win32 способно импортировать эти функции также как и другие функции из обычных dll. Тем не менее не все языки могут это делать. В Delphi всё ограничивается экспортом глобальных функций, которые реализованы фактически как статические методы.
Прочитать остальную часть записи »
Использования объектов DotNet в коде СОМ, проблемы производительности
Если вы купили диск с DotNet:
1. Регистрация сборки DotNet
Т.е. в реестр надо добавить соответствующие сведенья. Для этого можно воспользоваться или специальным методом System.Runtime.Interop.Service.RegistrationServices. Есть специальная утилита для регистрации RegamDotNetAssembly.dll.
Прочитать остальную часть записи »
Автоматизация позднего и раннего связывания в DotNet
Автоматизация позднего связывания
Для доступа клиента к серверному объекту используется переменная типа Variant. В DotNet для этих целей используется новый тип данных и новый статический метод.
Var wType:&Type;
TW,Document,Selection:TObject;
wType:=&Type.GetTypeFromId(‘Word.Application’,True);
TW:=Activator.CreateInstance(wType);
wType.InvokeMember(‘Visible’,BindingFlagsSetProperty,Nil,Nil,True);
Document:=wType.InvokeMember
Совместимость DotNet и COM
Среда DotNet обеспечивает взаимную поддержку для смешенного кода DotNet и обычного кода Win32, включая COM.
Способы обеспечения совместимости:
1. При разработки приложений Net можно использовать объекты COM за счет включения в специальную оболочку RCW (Runtime Callable Wrapper).
Прочитать остальную часть записи »
Освобождение памяти в DotNet, Рефлексия и недостатки DotNet
Освобождение памяти
Среда CLR имеет дело с управляемыми ресурсами, а так же в ней могут использоваться и неуправляемые ресурсы. С управлением управляемым кодом среда CLR справляется сама: сама освобождает и выделяет память и т.п. с помощью сборщика мусора. (идея с WinNT сборщик мусора по времени опрашивал.) Фактически если, создан класс, то не надо его уничтожать. Когда сборщик мусора приступает к работе, он обращается к внутренним таблицам, созданным джит-компилятором. В этих таблицах хранятся ссылки на объекты, называемые корнями Roots. Они говорят о том что есть ещё объекты, на которые указывают эти ссылки и удалять их пока не надо. При этом сборщик мусора строит свою собственную структуру и контролирует корни объектов. Как только связь нарушается, т.к. нет ссылки на другой объект, «работает» сборщик мусора. Используется алгоритм поколений Generational Algorithm.
Прочитать остальную часть записи »
Типы пространства имён в DotNet
Сборка может содержать любое количество типов данных. Чтобы создать приложение, которое будет работать в DotNet, нужно организовать взаимодействие между различными типами данных. Для задания определенного типа необходимо использовать уникальное имя, которое не совпадает с предоставленным пространством имён. По мути, пространство имен – это некая логическая структура, организующая имена приложений DotNet и необходимая для исключения имен(т.к. в любом языке все имена должны быть уникальными).
Прочитать остальную часть записи »
Среда исполнения общего языка CLR
CLR – важнейший элемент в организации вычислительного процесса среды ДН. Все исполняемые модули с расширение exe или dll реализуются не в виде машинного кода, а в формате промежуточного языка Microsoft Intermediate Language MCIL или просто IL, что аналогично коду Java. Утверждается, что формат языка MCIL похож на ассемблерный код, поэтому их сборки называются Assembly, но не зависит от платформы.
Прочитать остальную часть записи »
Управляемые модули DotNet
Управляемые модули Managed Module создаются компилятором языка DotNet. Фактически это состоящий из 4 частей файл в формате обычных файлов Windows Portable Execute Table. Он включает:
1. Стандартный заголовок этого файла;
2. Заголовок CLR, фактически там содержаться сведенья о среде;
Прочитать остальную часть записи »
Среда DotNet
В упрощенном смысле разработка приложения DotNet состоит из следующих этапов:
1. Создание программ на любом поддерживающим DotNet языке. Сейчас их около 30.
2. Компиляция кода в модуле на промежуточном языке IL.
3. Объединения модулей и создание сборок Assembly.
4. Развертывание Deploy и установки сборки в среде.
5. Обращения к среде CLR, которая загружает, компилирует, исполняет код и управляет его работой.
Управляемый средой DotNet код называют управляемым кодом Managed Code. Он опирается на проверку типов, управление памятью и сборку мусора.
Прочитать остальную часть записи »
Компоненты DotNet Framework
DotNet – разработка технологий, предназначенных для реализации распределенных приложений. Среда DotNet Framework – базовая технология для создания исполнения программ. Состоит из следующих компонентов:
• Среды исполнения общего языка CLR (Common Language Runtime). Эта среда предоставляет набор служб, необходимых всем приложения DotNet. Часть из них используется при компиляции, часть управляет памятью, сборкой мусора. По сути, CLR имеет дело с кодом, скомпилирован в единый промежуточный язык.
Прочитать остальную часть записи »