Instance, realizace komunikace   zodpovězená otázka

VB.NET, WinForms, .NET

Hezký večer, osměluji se začátečnickým dotazem na možnost realizace...

Jak řešit výstup spuštěné knihovny jako doplňku jedné či několika instancí aplikace do jediné instance formuláře na stejném pc?

Něco na způsob, že první dll instance zjistí je-li formulář vytvořen, neexistuje-li vytvoří ho, další dll instance, pak pracují a posílají do již vytvořeného jediného formuláře. Jak na to?

Co bude výhodnější? Formulář přidat přímo do knihovny? Formulář jako samostatný projekt (exe)?

Vlastní zjištění běžícího formuláře (běžící dll nebo exe)? Přes procesy? Procházet okna?

Jak na posíláni zpráv do formuláře? Jak v něm zavolat nějakou metodu resp. vyvolat event?

Jak vůbec začít? Od čeho se odrazit? Mutex? FindWindow? PostMessage? Nejjednodušší řešení?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jedna aplikace pro zobrazování dat v roli serveru, X aplikací pro posílání dat v roli klienta, komunikace pomocí WCF. Odesílání dat jednoduše zavoláním metody serveru.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

WCF

Díky za tip na WCF, na Vás je spolehnutí :), něco jsem si početl, ale nevím, co s tím...

Jaký je potřeba framework pro WCF ? Asi FW 3.0 , tudíž minimálně VS2008.

Lze to použít ve VS2005 FW 2.0? Nedaří se mi dostat potřebné reference.

NAMED PIPE

Další tip named pipe komunikace pomocí pojmenovaných kanálů pro VS2005 s pomocí API (jinak asi FW 4.0)

Chci se zeptat zda-li někdo nemá praktickou zkušenost?

API SendMessage a WM_COPYDATA

Nalezl jsem také tip na API SendMessage plus WM_COPYDATA a odchytit ve WndProc,

zkouším to rozchodit mezi dvěma formuláři rozdílných aplikací.

Za případné další tipy či rady zkušených předem děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

- Vyžaduje Framework 3.0 nebo novější.

- Nelze to použít ve VS2005.

- Named Pipes je jeden ze způsobů, jakým WCF může komunikovat.

- Používat na to Windows API je nesmysl.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Technologie WCF je od FW v. 3.0 hlavní technologii pro komunikace na platformě .NET. Jedna o dosti obsáhlou technologii, řešící problematiku komunikací velmi komplexně.

WCF služby se dají provozovat tj. hostovat buď na IIS nebo self host kódem pomoci ServiceHost nejčastěji například v NT service.

U WCF služby nastavujeme její endpoint (nebo více endpointů). Pro každý endpoint nastavujeme Address, Binding a Contract. Pokud neuvedeme adresu bude služba dostupná na své základní adrese baseAddress (ta je pro hostování na IIS odvozena sama). Pro binding pak nastavujeme typ (atributem binding) a konfiguraci bindingu (atributem bindingConfiguration, pokud nechceme použít výchozí nastavení). Jako contract pak uvádíme interface naší služby. Jak k celé službě, tak k jednotlivým endpoitns pak ještě můžeme konfigurovat tzv. chování behaviors – tedy serviceBehaviors a endpointBehaviors.

Veškěré toto nastavení můžeme provést buď pomoci konfiguračních souborů web.config / app.config nebo kódem (např. ServiceHostFactory třída apod.)

Nejdůležitějším nastavením je právě typ bindings, kterým s volí způsob komunikace.

Hlavní jsou:

BasicHttpBinding - výchozí binding, přenos přes http/s protokol. Používá ASMX styl SOAP 1.1, podporuje streaming. Podporuje zabezpečení pouze na transportní vrstvě. Nejvíce se využívá pro komunikaci mezi .NET WCF a něčím jiným než .NET WCF (nedotnetová Web service).

WsHttpBinding - je hlavní z bindingů WCF služeb, používá SOAP 1.2 protokol a využívá WS-* funkce. Podporuje transport i message zabezpečení a autentizaci. Není kompatibilní s klasickými webovými službami (ASMX), nepodporuje streaming. Nejvíce se používá pro internetové http/s komunikace NET WCF to .NET WCF.

netTcpBinding - používá TCP protokol a je tak úspornější na objem než SOAP. Nahrazuje starší technologii .NETu – .NET remoting. Nejčastěji se používá pro intranetové přenosy .NET to .NET, podporuje Transport i Message security.

webHttpBinding - služba pro klasické HTTP requesty ve formátu čistého XML (POX - plain old XML) nebo JSON (JavaScript Object Notation) pro Javascript klienty. Tento binding je již dnes ale nahrazován za plain/RESTful služby pomoci ASP.NET Web API.

pollingDuplexHttpBinding - duální komunikace

A teprve pak je jako poslední binding netNamedPipeBinding, ten se používá pro komunikaci mezi dvěma klienty (procesy) na stejném stroji.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Díky oběma za reakce a pěkné info o WCF. Bohužel to znamená FW3.0 a migraci alespoň na VS2008, jak jste mi oba potvrdili. Zatím prozkoumávám nalezené možnosti, ma WCF sbírám odvahu...

Pro případ NamedPipe komunikace se mi povedlo najít další universální příklad, který funguje jak pro FW2.0 (NativeNamedPipe) tak pro FW3.0 (SystemNamedPipe), pro případ zájmu link níže.

VB named-pipe server for IPC (VBNamedPipeServer)

The VB code sample demonstrates creating a basic named pipe server for inter-process communication

http://code.msdn.microsoft.com/windowsde...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback