Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
Majkel
Člen
Avatar
Majkel:12. srpna 14:15

Ahoj,

potřebuji udělat WPF aplikaci, která poběží pod běžným účtem, a k ní windows službu, která poběží pod admin účtem. WPF aplikace bude volat službu, která pak provede požadované úkony.

Co řeším je způsob komunikace mezi těmito prvky. Většinou jsem narazil na zmínky o WCF. Nemám s ním moc velké zkušenosti a co vím, tak je to celkem náročné na konfiguraci.

Mám ale zkušenosti se self-hosting owin, na kterém bych si udělal web-api. To bych volal z WPF aplikace. Vše to poběží lokálně. Je takové řešení za použití Web API a HTTP správné. Nebo bych měl použít nějakou socket komunikaci? SignalR? Případně něco zcela jiného, co nabízí WCF?

Díky za případné rady :-)

Editováno 12. srpna 14:17
 
Odpovědět 12. srpna 14:15
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Majkel
Martin Dráb:12. srpna 15:05

Když jsem tohle dělal s aplikací a službou psanými v C/C++, používal jsem pojmenované roury (named pipes). Jejich objekty vytvořila služba a aplikace se na ně pak připojila a příjímala/posílala data. Trik spočíval v tom, že služba musela explicitně nastavit oprávnění na těch rourách tak, aby se tam i aplikace běžící pod účtem s omezenými právy dostala. Pak to fungovalo dobře.

S WCF osobní zkušenost nemám, ale kamarád to na snad používal právě na komunikaci mezi službou a aplikací. Já jen trochu pomáhal z konfigurací, ale už si z toho nic nepamatuju. Otázka samozřejmě je, zda by to pro tebe nebyl overkill, popř. zda by to nevytvářelo závislosti, které nechceš.

Nahoru Odpovědět 12. srpna 15:05
2 + 2 = 5 for extremely large values of 2
Avatar
zelvicek
Člen
Avatar
zelvicek:12. srpna 21:22

WCF, WCF, WCF...
WCF je moc pěkná věcička. Dá se říct, že to je wrapper všeho možného. Pomocí konfigurace se to dá nastavit 10000 způsoby. A právě to je jeho silná stránka, když ho poznáš. Je to jako MS Office - bambilion nastavení ve kterém se každý strati, ale jakmile to pochopíš, je to geniální. Jsem si jistý, že různí vývojáři ti poradí různé způsoby komunikace. HTTP, sockety, já bych použil MSMQ. WCF dokáže wrapnout všechny. A co je na něm kouzelné je to, že si ten protokol můžeš změnit každých 5 sekund (i častěji, pokud dokážeš klientovi i serveru měnit app.config dost rychle).

Takže za mě: nadechni se, řekni si "mám na to" a najdi si na netu nějaký WCF get started.

 
Nahoru Odpovědět  +1 12. srpna 21:22
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.