Thread View: alt.pl.comp.lang.csharp
8 messages
8 total messages
Started by Mariusz
Mon, 21 Dec 2009 19:11
Pluginy
Author: Mariusz
Date: Mon, 21 Dec 2009 19:11
Date: Mon, 21 Dec 2009 19:11
20 lines
2208 bytes
2208 bytes
Witam. Piszę aplikację Windows Forms w oparciu o pluginy. Wydzieliłem podstawowy kod do pliku ...Core.dll. Kod aplikacji do ...Application.Core.dll a kod interfejsów związanych z pluginami do ...Application.Plugins.Interfaces.dll. Założyłem, że wszystkie pluginy będą znajdowały się w podkatalogu aplikacji o nazwie Plugins. Wszystko działa tak jak założyłem, oprócz małego szkopułu. Każdy plugin np. korzysta z bibliotek ...Core.dll, ...Application.Core.dll i ...Application.Plugins.Interfaces.dll, które to muszę umieścić w katalogu Plugins. Powoduje to, że dubluje mi się kod, ponieważ te biblioteki również znajdują się w głównym katalogu aplikacji. Problem rozwiązało by przeniesienie pluginów do głównego katalogu aplikacji, ale nie podoba mi się takie rozwiązanie. Czy jest jakiś sposób, aby dzielić wspomniane biblioteki pomiędzy aplikacją a pluginami, ale bez umieszczania tych bibliotek w GAC? Chodzi o to, aby pluginy z katalogu Plugins mogły korzystać z kodu z bibliotek z katalogu głównego aplikacji, bez kopiowania tych bibliotek do katalogu Plugins. -- Pozdrawiam, Mariusz.
Re: Pluginy
Author: TM
Date: Tue, 22 Dec 2009 14:17
Date: Tue, 22 Dec 2009 14:17
28 lines
2190 bytes
2190 bytes
Mariusz wrote: > Witam. > > Piszę aplikację Windows Forms w oparciu o pluginy. Wydzieliłem podstawowy > kod do pliku ...Core.dll. Kod aplikacji do ...Application.Core.dll a kod > interfejsów związanych z pluginami do ...Application.Plugins.Interfaces.dll. > Założyłem, że wszystkie pluginy będą znajdowały się w podkatalogu aplikacji > o nazwie Plugins. Wszystko działa tak jak założyłem, oprócz małego szkopułu. > Każdy plugin np. korzysta z bibliotek ...Core.dll, ...Application.Core.dll i > ...Application.Plugins.Interfaces.dll, które to muszę umieścić w katalogu > Plugins. Powoduje to, że dubluje mi się kod, ponieważ te biblioteki również > znajdują się w głównym katalogu aplikacji. Problem rozwiązało by > przeniesienie pluginów do głównego katalogu aplikacji, ale nie podoba mi się > takie rozwiązanie. Czy jest jakiś sposób, aby dzielić wspomniane biblioteki > pomiędzy aplikacją a pluginami, ale bez umieszczania tych bibliotek w GAC? > Chodzi o to, aby pluginy z katalogu Plugins mogły korzystać z kodu z > bibliotek z katalogu głównego aplikacji, bez kopiowania tych bibliotek do > katalogu Plugins. > Nie musisz umieszczac tych plikow (*Core.dll) w katalogu plugins. Nawet powinno sie ich tam nie umieszczach, przynajmniej u mnie tak bylo, ze dla referencji frameworka, z ktorego korzystaly pluginy oraz moja aplikacja ustawialem copy output na False, bo inaczej byl blad. -- TM
Re: Pluginy
Author: Łukasz 'Maly' Ostrowski
Date: Tue, 22 Dec 2009 16:08
Date: Tue, 22 Dec 2009 16:08
15 lines
1502 bytes
1502 bytes
On Mon, 21 Dec 2009 20:11:59 +0100, Mariusz wrote: > Każdy plugin np. korzysta z bibliotek ...Core.dll, ...Application.Core.dll i > ...Application.Plugins.Interfaces.dll, które to muszę umieścić w katalogu > Plugins. Jeżeli dobrze rozumiem, pluginy maja referencje na implementację z Core i Application.Core? Z jakiego powodu? Imo, powinny referować tylko Interfaces, a implementacja powinna zostać ,,podana" przez hosta-pluginów po interfejsach. -- Pozdrawiam, Łukasz 'Maly' Ostrowski. http://l3v.pl/ ICQ: 148498663 GG: 2544385 AIM: malyzgora GTalk: l3vi4than@gmail.com ASTRA: L3viathan
Re: Pluginy
Author: Mariusz
Date: Tue, 22 Dec 2009 17:21
Date: Tue, 22 Dec 2009 17:21
34 lines
2753 bytes
2753 bytes
Użytkownik "Łukasz 'Maly' Ostrowski" <maly@USUNnemo.pl> napisał w wiadomości news:1v9jiop8fux2f$.h0qh7883ji2b$.dlg@40tude.net... > On Mon, 21 Dec 2009 20:11:59 +0100, Mariusz wrote: >> Każdy plugin np. korzysta z bibliotek ...Core.dll, >> ...Application.Core.dll i >> ...Application.Plugins.Interfaces.dll, które to muszę umieścić w katalogu >> Plugins. > > Jeżeli dobrze rozumiem, pluginy maja referencje na implementację > z Core i Application.Core? Z jakiego powodu? > Imo, powinny referować tylko Interfaces, a implementacja powinna > zostać ,,podana" przez hosta-pluginów po interfejsach. Pluginy mają referencję do ...Core.dll oraz do ...Application.Core (na razie nie mają, ale będą miały), ponieważ te biblioteki nie są związane z aplikacją którą piszę. Są to takie moje uniwersalne biblioteki i pluginy mogą z nich korzystać, aby np. dziedziczyć po formularzach zawartych w tych bibliotekach, aby ogólnie móc wykorzystać gotowy kod do wspomagania tworzenia aplikacji. Mam dodatkową bibliotekę o nazwie np. NazwaAplikacji.dll w której jest kod, który podłącza pluginy i w której jest inicjowanie głównej formy aplikacji itp. Ogólnie kod w tej bibliotece (niewielka część, bo reszta to pluginy) jest pisany pod konkretną aplikację, którą to rozszerzam za pomocą pluginów. Kod w ...Core.dll i ...Application.Core.dll jest niezmienny, to tylko taki mój framework. > -- > Pozdrawiam, > Łukasz 'Maly' Ostrowski. http://l3v.pl/ > ICQ: 148498663 GG: 2544385 AIM: malyzgora > GTalk: l3vi4than@gmail.com ASTRA: L3viathan -- Pozdrawiam, Mariusz
Re: Pluginy
Author: Mariusz
Date: Tue, 22 Dec 2009 17:31
Date: Tue, 22 Dec 2009 17:31
22 lines
1948 bytes
1948 bytes
Użytkownik "TM" <trele.molere@op.pl> napisał w wiadomości news:hgqke3$8o7$1@news.onet.pl... > > Nie musisz umieszczac tych plikow (*Core.dll) w katalogu plugins. Nawet > powinno sie ich tam nie umieszczach, przynajmniej u mnie tak bylo, ze > dla referencji frameworka, z ktorego korzystaly pluginy oraz moja > aplikacja ustawialem copy output na False, bo inaczej byl blad. Faktycznie! Nie sprawdziłem tego (lama ze mnie). Usunąłem biblioteki, które miałem w katalogu Plugins a pozostawiłem tylko w katalogu głównym aplikacji i wywołałem kod w pluginie, odnoszący się do bibliotek z katalogu głównego i wszystko jest ok. Wielkie dzięki za odpowiedź. Z drugiej strony, dlaczego to zadziałało? Pluginy wyszukały potrzebne biblioteki w swoim katalogu, jak nie znalazły to "poszły" szukać do katalogu głównego aplikacji? > > -- > TM -- Pozdrawiam, Mariusz
Re: Pluginy
Author: Łukasz 'Maly' Ostrowski
Date: Tue, 22 Dec 2009 18:20
Date: Tue, 22 Dec 2009 18:20
16 lines
1569 bytes
1569 bytes
On Tue, 22 Dec 2009 18:21:34 +0100, Mariusz wrote: > <snip> > Ogólnie kod w tej bibliotece > (niewielka część, bo reszta to pluginy) jest pisany pod konkretną aplikację, > którą to rozszerzam za pomocą pluginów. Kod w ...Core.dll i > ...Application.Core.dll jest niezmienny, to tylko taki mój framework. To w takim razie wystarczy że te Assembliesy będą w jednym miejscu, dosięgalne z samej aplikacji-hosta, czyli mogą leżeć obok, nie muszą być w plugins. CLR je znajdzie. ;-) -- Pozdrawiam, Łukasz 'Maly' Ostrowski. http://l3v.pl/ ICQ: 148498663 GG: 2544385 AIM: malyzgora GTalk: l3vi4than@gmail.com ASTRA: L3viathan
Re: Pluginy
Author: Mariusz
Date: Tue, 22 Dec 2009 19:25
Date: Tue, 22 Dec 2009 19:25
19 lines
1741 bytes
1741 bytes
Użytkownik "Łukasz 'Maly' Ostrowski" <maly@USUNnemo.pl> napisał w wiadomości news:lome6ipzecqz.mnfyq6bmvesb.dlg@40tude.net... > On Tue, 22 Dec 2009 18:21:34 +0100, Mariusz wrote: >> <snip> > To w takim razie wystarczy że te Assembliesy będą w jednym miejscu, > dosięgalne z samej aplikacji-hosta, czyli mogą leżeć obok, nie > muszą być w plugins. CLR je znajdzie. ;-) Dzięki. > -- > Pozdrawiam, > Łukasz 'Maly' Ostrowski. http://l3v.pl/ > ICQ: 148498663 GG: 2544385 AIM: malyzgora > GTalk: l3vi4than@gmail.com ASTRA: L3viathan -- Pozdrawiam, Mariusz
Re: Pluginy
Author: yamma
Date: Wed, 23 Dec 2009 00:00
Date: Wed, 23 Dec 2009 00:00
10 lines
1411 bytes
1411 bytes
Mariusz wrote: > odpowiedź. Z drugiej strony, dlaczego to zadziałało? Pluginy > wyszukały potrzebne biblioteki w swoim katalogu, jak nie znalazły to > "poszły" szukać do katalogu głównego aplikacji? Te pluginy nie działają samoczynnie tylko są ładowane z poziomu głównej aplikacji, prawda? A ponieważ aplikacja ładuje te biblioteki przy starcie więc niczego nie muszą szukać, bo mają je podane na tacy. yamma
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads