Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Интерфейсы в dll / 23 сообщений из 23, страница 1 из 1
26.06.2015, 14:10
    #38993668
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
Есть программа, которая написала на C#. Необходимо реализовать к ней плагин. Дана платформа встраивания в виде DLL, а в ней определены интерфейсы. В .Net я новичок. В документации для разработки сказано, что реализовывать плагин следует исключительно на языке, поддерживающем .Net Framework 4.0. И еще сказано, что система подключения плагинов построена на технологии MAF. Кто знаком с нутром этой технологии, скажите пожалуйста, возможно ли написать плагин например на delphi, не поддерживающем .Net Framework? Как доказать руководству, что нужно осваивать шарп для этой задачи?
...
Рейтинг: 0 / 0
26.06.2015, 14:13
    #38993676
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
sevaselВ документации для разработки сказано, что реализовывать плагин следует исключительно на языке, поддерживающем .Net Framework 4.0.
....
возможно ли написать плагин например на delphi, не поддерживающем .Net Frameworkто есть ни для вас ни для руководства официальная документация не авторитет?
...
Рейтинг: 0 / 0
26.06.2015, 14:14
    #38993677
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
sevasel,

сюда
...
Рейтинг: 0 / 0
26.06.2015, 14:23
    #38993695
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
Antonariy,авторитет. я пытался разобраться с нутром, но я ничего не понимаю, вот честно. если вы знаете, подскажите, технические ограничения, которые не позволяют писать на чем-то другом?
...
Рейтинг: 0 / 0
26.06.2015, 14:41
    #38993736
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
sevaselесли вы знаете, подскажите, технические ограничения, которые не позволяют писать на чем-то другом?
1) формат PE файла, используемый в .net
2) вместо машинных команд в PE файле используются инструкции виртуальной машины (MSIL)
для начала достаточно?
...
Рейтинг: 0 / 0
26.06.2015, 15:09
    #38993793
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
Изопропил, это нутро самого Framework по идее. Так зачем тогда такие технологии, если они блокируют межязыковое взаимодействие!?
...
Рейтинг: 0 / 0
26.06.2015, 15:19
    #38993809
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
sevaselТак зачем тогда такие технологии, если они блокируют межязыковое взаимодействие!?
блокирует взаимодействие нежелание или неспособность учиться
...
Рейтинг: 0 / 0
26.06.2015, 16:11
    #38993905
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
вот нашел тут http://krez0n.org.ua/archives/248 информацию о том, как работать с интерфейсами из dll, написанной на C#. Оказывается нужно пометить сборку как COM-импортируемую. Если исходников конечно же нет этой библиотеки, то как это сделать?
...
Рейтинг: 0 / 0
26.06.2015, 16:15
    #38993914
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
нанять специалиста.
...
Рейтинг: 0 / 0
26.06.2015, 16:31
    #38993955
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
Antonariy, а что будет делать специалист? писать на C#?
...
Рейтинг: 0 / 0
26.06.2015, 16:35
    #38993966
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
да. у него этих проблем не будет:
sevasel но я ничего не понимаю,
...
Рейтинг: 0 / 0
26.06.2015, 16:50
    #38993996
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
sevasel,

это что, какое-то тестовое задание? Недавно аналогичный вопрос был. Где его дают?
...
Рейтинг: 0 / 0
26.06.2015, 16:59
    #38994015
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
petalvik, это мой топик
...
Рейтинг: 0 / 0
26.06.2015, 17:07
    #38994027
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
без Register for COM получается нельзя сделать доступным оболочку COM?
...
Рейтинг: 0 / 0
26.06.2015, 17:53
    #38994081
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
sevaselбез Register for COM получается нельзя сделать доступным оболочку COM?
COM то здесь при чём, если
sevaselВ документации для разработки сказано, что реализовывать плагин следует исключительно на языке, поддерживающем .Net Framework 4.0

Был бы интерфейс плагина COM - можно было бы писать и на дельфи без net
...
Рейтинг: 0 / 0
26.06.2015, 18:11
    #38994096
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
Изопропил,
Идея ТСа - сделать реверс инженеринг предоставленной dll и сделать его COM interoperable, чтобы .NET не нужно было использовать. Ну не ищет человек простых путей ;)
...
Рейтинг: 0 / 0
27.06.2015, 00:18
    #38994225
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
пусть враппер напишет
...
Рейтинг: 0 / 0
27.06.2015, 03:21
    #38994247
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
вроде ж дельфи уже может компилить в msil, не?
...
Рейтинг: 0 / 0
27.06.2015, 11:33
    #38994271
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
AxeleronИзопропил,
Идея ТСа - сделать реверс инженеринг предоставленной dll и сделать его COM interoperable, чтобы .NET не нужно было использовать. Ну не ищет человек простых путей ;)чо? автору дали прогу, в которую втыкаются maf-плагины и задание написать плагин.
...
Рейтинг: 0 / 0
27.06.2015, 17:02
    #38994311
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
Pallarisвроде ж дельфи уже может компилить в msil, не?
Кстати да.
В Вики пишут, что раньше могла, но новые версии уже не могут. Однако, учитывая, что делфисты любят сидеть на старом г-не, это вряд ли проблема. Ну и некий Prism предлагается.
...
Рейтинг: 0 / 0
03.07.2015, 11:52
    #38998757
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
отбросил идею с delphi. разбираюсь с азами C# и с тестовым примером.
приходится начинать знакомство как мне кажется не с самого тривиального.
интерфейсы и плагины. ну не ругайте!

в документации сказано: интерфейс, который предоставляет дополнение (плагин) для взаимодействия, должен наследоваться от базового интерфейса IBasePlugin<THost> и ,при необходимости, от одного или нескольких доступных интерфейсов платформы встраивания, помеченных атрибутом Plugin, а также быть пустым

в тестовом примере это выглядит так:
Код: c#
1.
2.
3.
    public interface IPayPlugin : IBasePlugin<IPayPluginHost>,  IPluginPayService
    {
    }


А описание IBasePlugin внутри библиотеки платформы встраивания
Код: c#
1.
2.
3.
4.
    public interface IBasePlugin<in TIHost>
    {
        TIHost Host { set; }
    }


IPayPlugin реализован:
Код: c#
1.
2.
3.
4.
5.
public sealed class PayPlugin : IPayPlugin
{
..
public IPayPluginHost Host { set; private get; }
}



поясните, пожалуйста, кому не сложно, этот момент с обобщенным интерфейсом(?)

p.s. тестовый пример написан на старой версии библиотеки платформы встраивания. в новой при просмотре в утилите ILDASM есть описание интерфейса
IBasePlugin с одним методом Initialize(!TIHost host)
что за отрицание в параметре метода?
...
Рейтинг: 0 / 0
03.07.2015, 11:59
    #38998762
sevasel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
как понимаю я. так сделано чтобы реальный интерфейс хоста был доступен через свойство Host?
...
Рейтинг: 0 / 0
02.06.2016, 11:39
    #39248849
subscribe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интерфейсы в dll
sevasel, TIHost объявлен в библиотеке как дженерик. Пример реализации интерфейса плагина:

public interface ITestPluginHost : IDBAccess
{
}

public interface ITestPlugin : IBasePlugin<ITestPluginHost>
{
}

public class TestPlugin : ITestPlugin
{
public void Initialize(ITestPluginHost host)
{

var cs = host.GetConnectionString();
MessageBox.Show("Method Initialize of TestPlugin called. TestPlugin - OK\n" +
"Calling GetConnectionString of host returns: " + cs);
}
}
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Интерфейсы в dll / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]