如何最有效地在C和C#之间共享代码(Mono和Silverlight)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何最有效地在C和C#之间共享代码(Mono和Silverlight),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1560字,纯文字阅读大概需要3分钟。
内容图文
![如何最有效地在C和C#之间共享代码(Mono和Silverlight)](/upload/InfoBanner/zyjiaocheng/790/4c9db7dda3224d38b990abdacee5666b.jpg)
我们的桌面应用程序包括一个Mono / .NET 3.5后端,通过USB与各种设备进行通信,以及一个Silverlight前端,通过插槽与后端通信.这些设备的固件是内部开发的.为了加快我们的开发过程并减少错误,我们希望在我们的固件和桌面应用程序之间共享代码.您建议我们使用哪些工具和技术来实现此目的?更好的是,您在软件中成功使用了什么来解决类似的问题?
我们要分享的两个主要内容是定义我们的通信协议的消息结构和当前通过C结构/数组常量定义的数据.对于协议消息,我们目前正在手动重写我们的消息实现类以匹配C定义,使用C代码作为指导.对于我们共享的数据,我们创建了一个托管C应用程序,该应用程序链接到已编译的C代码,然后将数组的内容提取到XML文件中.
我们的技术有效,但它们不是最佳的.首先,由于C代码并行改变和程序员错误,我们将C结构重新解释为C#有很多错误;我们希望在未来的开发中避免这类错误.对于数据共享,我对当前的解决方案没有太大的问题,但是提取程序的维护者说这是一个让它正常工作的痛苦过程.
对于我们能够在设备固件上更改的内容,我们有点受限制.首先,我们有各种各样的处理器架构和嵌入式平台,因此C代码必须保持可移植性.另一方面,固件运行实时软件并受限于可用的MIPS和存储空间,因此我们无法添加任何具有不可预测或较慢执行时间的内容.
解决方法:
尝试协议缓冲区,这是一种二进制的,与编程语言无关的编码格式,Google将其用作其服务之间的数据交换格式.
我们的想法是编写一个描述数据结构的.proto文件,并运行协议缓冲区编译器,为您的语言生成序列化/反序列化代码.这样可以更有效地在XML中进行编码并节省手动编写序列化器/反序列化器的时间并消除由于不正确实现而导致的错误(因为它们是在协议缓冲区的情况下从高级描述自动生成的).
Google’s implementation支持C,Java和Python,并且有其他语言的独立实现,例如对于C#,有this one和this one.
还有其他类似的技术,例如Facebook的节俭.
内容总结
以上是互联网集市为您收集整理的如何最有效地在C和C#之间共享代码(Mono和Silverlight)全部内容,希望文章能够帮你解决如何最有效地在C和C#之间共享代码(Mono和Silverlight)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。