4 ms·
A couple of months ago I started working at a company that (mainly) develops C# libraries. The pipeline to deploy is complicated. Using a tool like ILMerge to
by wsc981 3y ago
A couple of months ago I started working at a company that (mainly) develops C# libraries.
The pipeline to deploy is complicated. Using a tool like ILMerge to combine DLLs into a single DLL (to prevent DLL hell issues). Using Babel to obfuscate the code base. Using nuspecs to create a Nuget package from the DLLs and various metadata. Signing the DLLs with some certificate. Then, if native stuff is included, also ensure the Nuget package can be deployed on all supported architectures. Probably some more stuff.
Setting up a pipeline in Azure devops for a product I am working on, for the company, is already taking me a week and will probably take another couple of days to complete. But at least it’s a one-time task.
- zx14 3y agoWell, a lot of those requirements are highly bespoke to your task and to your team. My C# pipelines and C# apps are far easier to package and deploy than my Python apps for example. And, as you said, the pipeline is normally a one time cost.
- IshKebab 3y agoComparing to Python is not exactly fair. I don't think there are any languages that have a worse deployment experience. How does it compare to Go or Rust?
- Thiez 3y agoThey want obfuscation. Rust libraries necessarily include the AST for public generic functions. So it may not be suitable.
- IshKebab 3y agoI think that's a totally different topic, but regardless it's the same with C++ and I don't see that being a big issue to C++ library vendors. Rust doesn't have a stable ABI so it's not like you could realistically distribute a closed source "native" Rust library anyway.
- FpUser 3y agoWe were talking Delphi vs C#. Where does Python fit in?
- xupybd 3y agoAh, I've not had to combine DLLs, obfuscate code, sign code or create Nuget packages. All of that does sound painful. What makes it easier in other languages? Is it a matter of better tooling?
- wsc981 3y agoI am not sure if it’s easier in other languages (no experience except mobile dev). But I do know packaging macOS and iOS apps is also a painful process and becomes more painful over time (e.g. Apple’s recently introduced notarization process).