4
I Use This!
Inactive

News

Analyzed 2 days ago. based on code collected 4 days ago.
Posted over 6 years ago by yallie
Zyan has moved to Github: https://github.com/zyanfx/ZyanPlease join the ZyanFX organization to report your issues and request new features.     Project descriptionZyan is a framework that simplifies development of distributed applications.With Zyan ... [More] you can publish every .NET class for remote access over the network.Zyan is highly customizable and provides you with tools to build modular and plugable distributed applications.Project homepage: zyan.com.deNuGet package: Zyan 2.8Zyan 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 6 years ago by yallie
Zyan has moved to Github: https://github.com/zyanfx/ZyanPlease join the ZyanFX organization to report your issues and request new features.     Project descriptionZyan is a framework that simplifies development of distributed applications.With Zyan ... [More] you can publish every .NET class for remote access over the network.Zyan is highly customizable and provides you with tools to build modular and plugable distributed applications.Project homepage: zyan.com.deNuGet package: Zyan 2.8Zyan 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 6 years ago by yallie
Zyan has moved to Github: https://github.com/zyanfx/ZyanPlease join the ZyanFX organization to report your issues and request new features.    Project descriptionZyan is a framework that simplifies development of distributed applications.With Zyan ... [More] you can publish every .NET class for remote access over the network.Zyan is highly customizable and provides you with tools to build modular and plugable distributed applications.Project homepage: zyan.com.deNuGet package: Zyan 2.8Zyan 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 6 years ago by hugoperez
Hello I would like to be able to help me, I am trying to send a table with data to the server and when I get to the server insert the records sent to the database but it sends me error that does not find the assembly, but if I comment the code where ... [More] the value is assigned to the field Table if it arrives at the server but what I need is that the values of the table also arrive. I clarify that to return value in the field of table type of the server to the client if it realizes it. SHARED public interface IService : IDisposable { /// //Aqui se encuentran las declaraciones la firma de los //metodos remotos los cuales pueden ser accesados desde el cliente sin conocer su implementación MyData GuardarVenta(MyData datos); } SHARED [Serializable] public class MyData { public string Cadena1 { get; set; } public string Cadena2 { get; set; } public int Entero1 { get; set; } public int Entero2 { get; set; } public DateTime FechaInicio { get; set; } public DateTime FechaFinal{ get; set; } public DataTable MyTable { get; set; } public DataTable MyTable2 { get; set; } } SERVER public MyData GuardarVenta(MyData datos) { ….//processdata datos.MyTable = midataset.Tables[0]; return datos; ///retorno el objeto con la tabla que fue llenada por el procedimiento almacenado } CLIENT public MyData GuardarVenta(DataTable datos, int id_empleado, int id_cliente, int createdby, int updatedby, int vendedor) { MyData Datostabla = new MyData(); Datostabla.MyTable = datos; Datostabla.Cadena1 = id_empleado.ToString() + "^" + id_cliente.ToString() + "^" + createdby.ToString() + "^" + updatedby.ToString() + "^" + vendedor.ToString(); Datostabla = service.GuardarVenta(Datostabla); return Datostabla; } Error: System.Runtime.Serialization.SerializationException was unhandled HResult=-2146233076 Message=No se puede encontrar el ensamblado 'SystemHPP.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Source=mscorlib StackTrace: Server stack trace: en System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly() en System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name) en System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable) en System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record) en System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run() en System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) en System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) en System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.UnsafeDeserialize(Stream serializationStream, HeaderHandler handler) en System.Runtime.Remoting.Channels.CoreChannel.DeserializeBinaryRequestMessage(String objectUri, Stream inputStream, Boolean bStrictBinding, TypeFilterLevel securityLevel) en System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessage(IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream requestStream, IMessage& responseMsg, ITransportHeaders& responseHeaders, Stream& responseStream) Exception rethrown at [0]: en System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) en System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) en Zyan.Communication.IZyanDispatcher.Invoke(Guid trackingID, String interfaceName, List`1 delegateCorrelationSet, String methodName, Type[] genericArguments, Type[] paramTypes, Object[] args) en Zyan.Communication.ZyanProxy.InvokeRemoteMethod(IMethodCallMessage methodCallMessage) en d:\Externals\Zyan\source\Zyan.Communication\ZyanProxy.cs:línea 484 Exception rethrown at [1]: en System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) en System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) en Zyan.Examples.SystemHPP.Shared.IService.GuardarVenta(MyData datos) en SystemHPP.Client.Funciones.GuardarVenta(DataTable datos, Int32 id_empleado, Int32 id_cliente, Int32 createdby, Int32 updatedby, Int32 vendedor) en C:\Users\Lety\Desktop\FRAMEWORK ZYAN\Zyan_SystemHPP\examples\Zyan.SystemHPP\Zyan.SystemHPP.Client\Funciones.cs:línea 51 en SystemHPP.Client.Frm_PuntoVenta.realizar_operacion_venta() en C:\Users\Lety\Desktop\FRAMEWORK ZYAN\Zyan_SystemHPP\examples\Zyan.SystemHPP\Zyan.SystemHPP.Client\Frm_PuntoVenta.cs:línea 465 en SystemHPP.Client.Frm_PuntoVenta.tsbguardar_Click(Object sender, EventArgs e) en C:\Users\Lety\Desktop\FRAMEWORK ZYAN\Zyan_SystemHPP\examples\Zyan.SystemHPP\Zyan.SystemHPP.Client\Frm_PuntoVenta.cs:línea 427 en System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) en System.Windows.Forms.ToolStripButton.OnClick(EventArgs e) en System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) en System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) en System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met) en System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met) en System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) en System.Windows.Forms.Control.WndProc(Message& m) en System.Windows.Forms.ScrollableControl.WndProc(Message& m) en System.Windows.Forms.ToolStrip.WndProc(Message& m) en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) en System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) en System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) en System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) en System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) en System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) en System.Windows.Forms.Application.Run(Form mainForm) en Zyan.Examples.SystemHPP.Client.Program.Main() en C:\Users\Lety\Desktop\FRAMEWORK ZYAN\Zyan_SystemHPP\examples\Zyan.SystemHPP\Zyan.SystemHPP.Client\Program.cs:línea 22 en System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) en System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) en Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() en System.Threading.ThreadHelper.ThreadStart_Context(Object state) en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) en System.Threading.ThreadHelper.ThreadStart() InnerException: [Less]
Posted almost 7 years ago by koo9koo9
if creating the two hosts with different protocols, would they share the same service instance? i mean for the pub/sub scenario, different clients connect to either of the host, would they be able to send/receive message from clients on either host?
Posted about 7 years ago by yallie
Codeplex is seems to be abandoned.Email notifications don't work, support tickets are not getting answered, etc.Comments: ** Comment from web user: yallie ** Done: https://github.com/zyanfx
Posted about 7 years ago by yallie
Zyan has moved to Github: https://github.com/zyanfx/ZyanPlease join the ZyanFX organization to report your issues and request new features. Project descriptionZyan is a framework that simplifies development of distributed applications.With Zyan you ... [More] can publish every .NET class for remote access over the network.Zyan is highly customizable and provides you with tools to build modular and plugable distributed applications.Project homepage: zyan.com.deNuGet package: Zyan 2.8Zyan 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 about 7 years ago by yallie
Zyan has moved to Github: https://github.com/zyanfx/ZyanPlease join the ZyanFX organization to report your issues and request new features. Project descriptionZyan is a framework that simplifies development of distributed applications.With Zyan you ... [More] can publish every .NET class for remote access over the network.Zyan is highly customizable and provides you with tools to build modular and plugable distributed applications.Project homepage: zyan.com.deNuGet package: Zyan 2.8Zyan 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 about 7 years ago by yallie
Zyan project has moved to Github: https://github.com/zyanfx/Zyan Please join the ZyanFX organization to report your issues and request new features. The documentation is currently still on Codeplex. I will gradually transfer it to the Github project wiki.
Posted about 7 years ago by yallie
Codeplex is seems to be abandoned.Email notifications don't work, support tickets are not getting answered, etc.