Recently I am developing an internal software by using c# ZOS-API dll. I have chosen .Net 8.0 for my application. After adding the refrences of ZOS-API, it gives me error due to incompatibility of frameworks. ZOS-API has been developed by using .Net framework v4.6.2. If I build my assembly with net framework 4.8, it works fine, but not supports in net 8.0. Why aren't they developing dlls with Microsoft .Net (support cross platform) instead of .Net framework? I have also seen that the headless remoting connection is taking long time. Why aren't they using modern remote procedure framework like gRPC?
I have no idea why (I’m not at all in software development), but it looks like you know what you are talking about and I’m curious about all this technology that you are referring to. What’s new in net 8.0 that isn’t in 4.8? Is the advantage of gRPC speed only and what kind of speed improvement could it give quantitatively?
Take care,
David
.NET 8.0 introduces a range of features and improvements that are not available in .NET Framework and making it a significant upgrade for modern application development. It supports Fully Cross-Platform: 8.0: allowing you to run applications on Windows, macOS, Linux, and other platforms, but .NET Frameworks are only for Windows based. It also provides significant performance optimizations for CPU-intensive applications along with reducing startup times for your application in constrained environments. It supports modern API features (http2/3, json handling) and enhanced asynchronous programming. These modern APIs and features lack in .Net framework. There have also other promising supports are available in .Net 8 to build the application which is not available for .Net framework related applications.
The headless connection relies on System.Runtime.Remoting and it allows for remote procedure calls (RPC) between the client application (e.g., your C# standalone program) and the Zemax OpticStudio server process running in the background. This System.Runtime.Remoting namespace is a feature of .NET Framework but is not supported in modern .NET. In the modern ecosystem, gRPC or HTTP-based APIs are preferred for remote communication. These provide not only better performance or speed, but also security, and compatibility with modern .NET.
Improvements of gRPC: Reduces latency (average ~10ms) significantly, faster data transmission and thoroughput improvement (~10,000 req/sec) depends on payload size and it has been tested by 1,000 small requests/sec.
Thanks for your curiosity.
Rizwan
Thank you
Take care,
David
I suspect that the OpticStudio dlls will only support compilation to a Windows machine. I don’t think it’s as simple as just using .NET8: everything in your .NET8 platform must be compilable under Linus or MacOs if you want your app to run on those platforms. In other words, all the libraries have to be platform agnostic, and ZOS-API isn’t, as ZOS isn’t.
I certainly don’t expect you to be able to include the ZOS-API dlls in a project, compile it to Mac and hey presto! Zemax on a Mac
Reply
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.