C# 转炉最佳实践

C# 转炉最佳实践,c#,html,design-patterns,pdf,C#,Html,Design Patterns,Pdf,在基于C#创建将文件从一种格式转换为另一种格式的组件时,您可以建议哪些最佳实践和设计模式?例如PDF到HTML或Word到HTML 不要使用文件。将基流引用作为输入/输出,这样您就可以从任何地方引入数据并将其写入任何地方(文件、数据库、网络连接、内存等) 如果您希望有机会进行不止一种格式转换(根据我的经验,大多数软件的范围都在扩大,通常是在发布之前,但通常是在发布之后不久),设计一个可扩展的内部表示,支持当前对您很重要/相关的其他格式的所有功能,并使用管道方法应用双重转换(PDF->MyForm

在基于C#创建将文件从一种格式转换为另一种格式的组件时,您可以建议哪些最佳实践和设计模式?例如PDF到HTML或Word到HTML

不要使用文件。将基流引用作为输入/输出,这样您就可以从任何地方引入数据并将其写入任何地方(文件、数据库、网络连接、内存等)

如果您希望有机会进行不止一种格式转换(根据我的经验,大多数软件的范围都在扩大,通常是在发布之前,但通常是在发布之后不久),设计一个可扩展的内部表示,支持当前对您很重要/相关的其他格式的所有功能,并使用管道方法应用双重转换(PDF->MyFormat,然后是MyFormat->HTML)。这样,当您决定也要从Word转换时,只需编写Word->MyFormat转换即可实现Word->HTML。这在一开始的时候实现成本很低,并且可以为您添加支持的每个后续格式在健壮性和实现成本方面带来巨大的收益

尝试编写灵活的代码(考虑将来格式可能会如何变化)。当下一个PDF、Word或HTML格式出现时,您将如何轻松地升级代码以支持引入的任何更改?(我的意思是,尽量不要在转换中设置任意限制,比如假设因为当前格式只允许使用256种字体,所以您可以使用一个字节来存储字体索引-为扩展留出一点空间)

从第一天开始在设计中构建一个进度报告系统,这样在转换过程中很容易显示进度条。并确保您的设计不会妨碍一次性批量处理数百个文件,即使这就是您现在所需要的


将转换代码与驱动它的应用程序完全分开;确保业务逻辑(转换)完全脱离任何UI。转换应该是完全独立的可重用模块,并且能够在没有用户交互的批处理模式下运行。

您希望设计模式实现自己的转换器还是使用任何库在不同格式之间进行转换?我们需要更多详细信息?你面临的问题是什么?你已经开发了什么?我从零开始。我想开发从pdf到html的转换器。不管为什么,让我们认为这只是为了练习。所以我想把它做好。没有肮脏的代码。当我们解析pdf时,我们得到了一些我们必须转换为html实体的实体,它有一些转换规则等。当优秀且价格合理的产品随时可用时,不要开发自己的代码。这个例子在其他方面过于宽泛,不可能抛出一个模式。同意,但有时没有产品可以做到这一点。或者我们只有商业途径,没有开源。