Posted
over 7 years
ago
by
yallie
ZyanComponentHost shouldn't use ComponentCatalog class directly.It should use IComponentCatalog interface so that the catalog can be replaced with another IoC.Comments: Done, see changesets #44673 and #44674.
|
Posted
over 7 years
ago
by
yallie
[en] Renamed IComponentCatalog.HasRegistration to IsRegistered, issue #2602.
|
Posted
over 7 years
ago
by
yallie
[en] ZyanComponentHost is now decoupled from the ComponentCatalog, issue #2602.
|
Posted
over 7 years
ago
by
yallie
ZyanComponentHost shouldn't use ComponentCatalog class directly.It should use IComponentCatalog interface so that the catalog can be replaced with another IoC.
|
Posted
over 7 years
ago
by
yallie
System.ArgumentOutOfRangeException: Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.Имя параметра: index в
... [More]
System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) в System.Collections.Generic.List`1.RemoveAt(Int32 index) в System.Collections.Generic.List`1.Remove(T item) в Zyan.Communication.ZyanConnection.Dispose(Boolean disposing) в D:\Externals\Zyan\source\Zyan.Communication\ZyanConnection.cs:строка 651 в Zyan.Communication.ZyanConnection.Dispose() в D:\Externals\Zyan\source\Zyan.Communication\ZyanConnection.cs:строка 598Comments: Fixed, see changeset #44670. [Less]
|
Posted
over 7 years
ago
by
yallie
[en] Fixed a race condition in ZyanConnection.Dispose, issue #2601.
|
Posted
over 7 years
ago
by
yallie
System.ArgumentOutOfRangeException: Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.Имя параметра: index в
... [More]
System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) в System.Collections.Generic.List`1.RemoveAt(Int32 index) в System.Collections.Generic.List`1.Remove(T item) в Zyan.Communication.ZyanConnection.Dispose(Boolean disposing) в D:\Externals\Zyan\source\Zyan.Communication\ZyanConnection.cs:строка 651 в Zyan.Communication.ZyanConnection.Dispose() в D:\Externals\Zyan\source\Zyan.Communication\ZyanConnection.cs:строка 598 [Less]
|
Posted
over 7 years
ago
by
yallie
System.ArgumentOutOfRangeException: Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.Имя параметра: index в
... [More]
System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) в System.Collections.Generic.List`1.RemoveAt(Int32 index) в System.Collections.Generic.List`1.Remove(T item) в Zyan.Communication.ZyanConnection.Dispose(Boolean disposing) в D:\Externals\Zyan\source\Zyan.Communication\ZyanConnection.cs:строка 651 в Zyan.Communication.ZyanConnection.Dispose() в D:\Externals\Zyan\source\Zyan.Communication\ZyanConnection.cs:строка 598 [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.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
RemoveSession method removes session data, but keeps session variables.Session variables should be freed when a session is removedComments: Fixed, see changeset #44638.
|