4
I Use This!
Inactive

News

Analyzed 2 days ago. based on code collected 4 days ago.
Posted over 7 years ago by hugoperez
Hello, if someone could help. My question is I need to create a remote method receives as variable parameters and a memory table the way the customer can return the variables changed by the server and on the table the result of a query to the ... [More] database. I hope you can help me with an example because I'm starting my first practice with remote methods. Thank you. An example would .net me. [Less]
Posted over 7 years ago by MarkSulkowski
Do you have a server-side event filtering example for download? I would like to experiment with one. For instance, one based on the first example you give in the documentation section "Server-side event filters".
Posted over 7 years ago by MarkSulkowski
It looks like Zyan has two way communication between server and client because the server is able to trigger events, and the client's proxy can subscribe to those events. Does that mean that the only server-to-client communication can happen through events? Or can the server call a method (on the interface) as well?
Posted over 7 years ago by yallie
Fixed, thanks for reporting that! The archive was actually in 7zip format instead of zip. Strange that nobody has reported yet. Regards, Alex
Posted over 7 years ago
Zyan 2.7 NuGet package Project description Zyan is an easy to use distributed application framework for .NET, Mono and Android. With Zyan you can publish any .NET class for remote access over network. [en] What's new in Zyan 2.7: C# 6.0 and .NET ... [More] 4.6 support (#2529) CryptoConfig infrastructure is used to create encryption algorithms (#2369) Added new properties to InvokeCanceledEventArgs (#2450): InterfaceName MethodName Arguments DelegateCorrelationSet Bugs fixed: [en] ServerSession.ClientAddress during logon [en]/[de] SocketException AddressAlreadyInUse [en] Thread safety issue in call interceptors [en] Remoting custom errors mode had already been set [en] Nested closure breaks expression serialization (C# 6.0) [en] Memory leak in LINQ support [en] Infinite-lifetime MBRs memory leaks Acknowledgements We'd like to express our gratitude to the following people who have helped to improve this release of Zyan: Nathan B. Evans — for his post about the infinite-lifetime remoting servers memory leaks. Active users of Zyan — for their bug reports and feature requests. [Less]
Posted over 7 years ago by MarkSulkowski
I've downloaded and attempted to open Zyan 2.7 binaries for .NET 4.0, but I get an error popup box telling me that the zip file is an invalid archive. I have tried using WinZip to open the file, but that didn't work either. I have had no problems with opening Zyan.Examples.MiniChat.
Posted over 7 years ago by yallie
Hello Mark, 1) Yes, you can. I've just created an example for you: https://gist.github.com/yallie/d9cab09680c98e8a224b9a302f581a8c It boils down to this: // Service class public class ServiceExample : ServiceBase, IServiceExample { private ... [More] ZyanComponentHost Host { get; set; } protected override void OnStart(string[] args) { // start the server Host = new ZyanComponentHost(name, port); Host.RegisterComponent(this); base.OnStart(args); } protected override void OnStop() { // stop the server Host.Dispose(); base.OnStop(); } // implement your shared interface here } But I'd suggest to use the TopShelf library instead of ServiceBase. To my experience, it's a lot easier to set up and maintain (no installutil required, etc.) Here is an example Zyan+TopShelf service: https://gist.github.com/yallie/7a3a4a16ce8f4b9e74da 2) Yes, surely. 3) Yes, that's possible. To receive events from another server, C1 and C2 should connect to server S2 and subscribe to its events manually, just as they did to server S1. Also, you can have your S1 and S2 servers to subscribe to each other's events and rebroadcast them to their clients (this feature isn't included out-of-the-box, but it's easy to implement). 4) No, Zyan isn't an message queue, it's an RPC. It supports pub-sub pattern, but it doesn't have persistent queues, guaranteed event delivery and such. 5) Yes, ZyanConnection class has Disconnected event (it works if heartbeat is enabled). Disconnected event allows to retry or cancel the connection. If retrying succeeded, the Reconnected event is raised. Hope that helps, Alex [Less]
Posted over 7 years ago by MarkSulkowski
I'm considering Zyan, and I have a question about Windows Services. Can I have a Windows Service (a class derived from System.ServiceProcess.ServiceBase) instantiated on the server-side act as a singleton Component? I need the instance to be able ... [More] to receive method calls from clients, and to be able to asynchronously raise events back to the clients. [Less]
Posted over 7 years ago by yallie
Project descriptionZyan is a framework that simplifies development of distributed applications.With Zyan you can publish every .NET class for remote access over the network.Zyan is highly customizable and provides you with tools to build modular ... [More] and plugable distributed applications.Project homepage: zyan.com.deNuGet package: Zyan 2.7.0Zyan runs on Microsoft .NET Framework 3.5 Client Profile or Mono 2.10 or higher.It supports Windows, Linux (screenshot), MacOS and Android. Features Intuitive RPC communication Versatile hosting opportunities for .NET components (local or remote) Singleton and SingleCall Component Activiation Supports TCP, HTTP and Named Pipes (Other protocols can be backfitted via custom plug-ins) Bidirectional TCP communication through clientside NAT firewalls Encrypted communication without certificates and Active Directory possible Transparent network traffic compression Easy to use customizable authentication system Support for integrated Windows authentication (Single Sign On) Support for basic authentication against the servers SAM (useful, if no Active Directory present) Replaceable session managment Fast and slim in-proc session management (Sessions are stored th the server´s memory) or scalable SQL Server based session management (Sessions are stored in a SQL Server database) Support for Session Variables in In-Proc sessions and SQL stored sessions Distributed Events as easy as button_Click in Windows.Forms Support for wiring distributed Event Based Components (EBC) Zyan says "Hello World"To publish component for remote access: // Create component host named "ZyanDemo" and bind to TCP port 8080 var host = new ZyanComponentHost("ZyanDemo", 8080); // Register component type and interface host.RegisterComponent(); That's all what is needed to make HelloWorld service remotely accessible.HelloWorldService doesn't have to derive from MarshalByRefObj class. It don't need to be decorated with ServiceContract attribute either. Any .NET class can be used as a hosted component. The only requirement is that it must implement some interface. This interface is used to communicate with remote component.To access published component from remote computer: // Connect to server var connection = new ZyanConnection("tcp://localhost:8080/ZyanDemo"); // Create HelloWorldService proxy var proxy = connection.CreateProxy(); // Invoke method (just like for local object) proxy.SayHello("HelloWorld"); Click here for English Documentation.Click here to display Credits.Profiled using NProfiler by Corvios GmbH:If you have any questions about Zyan, please feel free to contact me. ProjektbeschreibungZyan ist ein Framework für die einfache Erstellung von verteilten Anwendungen. Erstellen Sie ganz einfach Applikationen, deren Komponenten entweder über ein LAN oder über das Internet miteinander kommunizieren. Zyan ist sehr einfach einzusetzen und hochgradig anpassbar. Außerdem unterstützt Zyan auch Event Based Components!Zyan läuft sowohl unter dem Microsoft .NET Framework 3.5 Client Profile als auch unter Mono 2.8 oder höher. Hier erfahren Sie mehr: Zyan auf LinuxFeatures Intuitive RPC-Kommunikation Vielseitige Hosting-Möglichkeiten für .NET Komponenten (lokal oder verteilt) Singleton- and SingleCall-Komponentenaktivierung Unterstützung von TCP, HTTP und Named Pipes (Beliebige weitere Protokolle sind über Plug-Ins nachrüstbar) Bidirektionale TCP-Kommunikation durch clientseitige NAT-Firewalls hindurch Veschlüsselung der Kommunikation ohne Zertifikate und ohne Active Directory möglich Transparente Komprimierung des Netzwerkverkehrs Authentifizierungssystem (über Plug-Ins erweiterbar) Unterstützung für Integrierte Windows-Authentifizierung mit Active Directory (Single Sign On) Serverseitige Prüfung von Windows-Anmeldeinformationen (nützlich, wenn kein Active Directory verfügbar ist) Sitzungsverwaltung (über Plug-Ins erweiterbar/austauschbar) Schnelle In-Process Sitzungsverwaltung (Sitzungen werden im Arbeitsspeicher des Servers gehalten) oder skalierbare SQL Server Sitzungsverwaltung (Sitzungen werden in einer SQL Server Datenbank gespeichert); Ab ChangeSet 5707 Unterstützung für Sitzungsvariablen für In-Process-Sitzungen und SQL Server gespeicherte Sitzungen Verteilte Ereignisse, die so einfach einzusetzen sind, wie button_Click bei Windows.Forms Unterstützung für einfache Verdrahtung von verteilten EBCs Zyan sagt "Hello World"So veröffentlichen Sie eine Klasse für den entfernten Zugriff übers Netzwerk: // Komponentenhost mit dem namen "ZyanDemo" erzeugen und auf TCP-Anschluss 8080 auf Anfragen lauschen ZyanComponentHost host = new ZyanComponentHost("ZyanDemo", 8080); // Typ der zu veröffentlichenden Komponente mit Schnittstelle registrieren host.RegisterComponent(); Das genügt schon, um HelloWorldService enfernt aufrufen zu können.HelloWorldService muss nicht von MarshalByRefObj abgeleitet sein. Sie müssen auch keine Contract-Attribute hinschreiben.Nein, sie können jede X-beliebige Klasse für den entfernten Zugriff veröffentlichen. Das einzige was Sie außer der Klasse brachen, ist eine Schnittstelle.Über die Schnittstelle kommunizieren die Clients mit der veröffentlichten Klasse.So rufen Sie die veröffentliche Komponente von einem anderen Computer aus auf: // Verbindung zum Server herstellen ZyanConnection connection = new ZyanConnection("tcp://localhost:8080/ZyanDemo"); // Proxy für die Kommunikation mit dem entfernten HelloWordService erzeugen IHelloWordService proxy = connection.CreateProxy(); // Methode aufrufen (ganz genauso wie bei lokalen Objekten auch) proxy.SayHello("HelloWorld"); So einfach können Sie mit Zyan verteilte Anwendungen erstellen.Klicken Sie hier, um Danksagungen anzuzeigen: CreditsMöchten Sie mehr wissen? Описание проектаZyan — это инфраструктура, упрощающая разработку распределенных приложений.Используя Zyan, вы можете опубликовать любой .NET-класс для удаленного взаимодействия.Zyan гибко настраивается и предоставляет все необходимые инструменты для построения модульных распределенных приложений.Zyan требует для работы Microsoft .NET Framework 3.5 Client Profile, либо Mono 2.10 или выше.Поддерживаются платформы Windows, Linux (скриншот), MacOS и Android.Особенности Интуитивный программный интерфейс Широкий выбор вариантов хостинга .NET-компонентов (локальных или удаленных) Два режима активации компонентов: сингльтон и режим одиночных вызовов Поддержка TCP, HTTP и именованных каналов (для других протоколов возможно написать собственные плагины) Дуплексный TCP-канал позволяет серверу взаимодействовать с клиентами, находящимся за NAT-ом или брандмауэром Поддержка шифрованных каналов, не требующая сертификатов и наличия служб Active Directory Прозрачная упаковка сетевого трафика Простая в использовании расширяемая система аутентификации Поддержка интегрированной аутентификации Windows (единый вход в систему) Поддержка базовой аутентификации на серверах SAM (удобно при отсутствии служб Active Directory) Расширяемое управление сессиями Быстрый и легкий однопроцессный менеджер сессий (сессии хранятся в памяти сервера) Масштабируемый менеджер сессии на базе SQL-сервера (сессии хранятся в СУБД) Переменные сессий поддерживаются обоими вариантами менеджера сессий Распределенные события обрабатываются так же просто, как button_Click в Windows.Forms-приложениях Поддержка связывания распределенных EBC-компонентов (Event Based Components) Простейший пример распределенного приложенияПубликация компонента: // Создаем сервер ZyanDemo и привязываем его к TCP-порту 8080 var host = new ZyanComponentHost("ZyanDemo", 8080); // Регистрируем тип и интерфейс компонента host.RegisterComponent(); Вот и все, что нужно, чтобы компонент HelloWorldService стал доступным для удаленного взаимодействия.Классу HelloWorldService не требуется наследование от MarshalByRefObject. Кроме того, не требуется разметка класса атрибутами ServiceContract и OperationContract. Любой .NET-класс может быть опубликован для удаленного взаимодействия. Единственное требование к нему — наличие интерфейса, через который будут осуществляться вызовы методов.Получение доступа к службе с удаленного компьютера: // Соединяемся с сервером var connection = new ZyanConnection("tcp://localhost:8080/ZyanDemo"); // Создаем прокси-объект для HelloWorldService var proxy = connection.CreateProxy(); // Вызываем метод (точно так же, как метод локального объекта) proxy.SayHello("HelloWorld"); Дальнейшие подробности см. в разделе Документация. Zyan NuGet Package [Less]
Posted over 7 years ago by yallie
[en] Extracted ComponentRegistry from ComponentCatalog class, added IComponentRegistry interface, issue #2602.