Я собираюсь взять альтернативный вариант:
XmlSerializer поддерживается, его поведение известно, и оно работает хорошо. Это не плохо". Он очень общий, хорошо документированный, имеет множество примеров. Производительность, вероятно, очень хороша для того, что вам нужно. Вероятно, он делает то, что вам нужно.
Есть некоторые люди, которые имеют особые потребности, которые не рассматриваются XmlSerializer. Из этих требований мы получаем такие вещи, как protobufs, DataContractSerializer и другие варианты.
Но XmlSerializer по-прежнему очень общий и, вероятно, наиболее широко используемый сериализатор в городе. Это, вероятно, самая безопасная ставка для сериализации контента.
Как поддержать ...
MS может быть замедление на исправление ошибок. Я сравниваю это с WinForms. WinForms больше не является основной инфраструктурой пользовательского интерфейса, которая вытесняется Microsoft. Но он все еще зрелый, хорошо работает, хорошо работает. XmlSerializer - это то же самое.
Что касается поддержки в будущем. У MS есть 5 + 5 политика поддержки - они поддерживают продукт в течение 5 лет после его выпуска, а затем вы можете купить дополнительную поддержку за 5 лет. .NET Framework не поддерживается «вещью» - это ОС Windows, которая поддерживает .NET, которая поддерживается. Windows 7 будет включать .NET 3.5 (я думаю, что версия 3.5?), И поэтому все в .NET 3.5, включая WinForms и XmlSerializer, будет «официально поддерживаться» еще на 5 лет, начиная с октября или всякий раз, когда выпускается Win7. Если это .NET 4.0, то все в 4.0 (включая, по-прежнему, WinForms и XmlSerializer) будет поддерживаться в течение 5 лет. 5-летние часы перезапускаются каждый раз, когда новый продукт поставляется с .NET.
Глядя на VB6 Runtime, он был первоначально отправлен с Visual Studio 6 в 1998 году. Он был включен в Windows с тех пор, включая Windows Server 2008 R2, выпущенный в этом году. Таким образом, время выполнения VB будет поддерживаться, по крайней мере, до 2014 года. Это, по крайней мере, 16 лет основной поддержки.
Вам не о чем беспокоиться официальная поддержка. Это не проект с открытым исходным кодом, о котором вы говорите. Это не предложение, как WSE или SOAP Toolkit.
Это правда, что существуют степени поддержки, а более старые .NET API занижены в приоритетном порядке, поскольку новые и запущенные и продвинутые. Но более старые, по-видимому, более стабильны к тому времени, когда они плато. Вы полностью в безопасности.
Marc, можно (легко) заменить BinaryFormatter по умолчанию на protobuf-net для использования с удалением .net? – M4N
Я не * требую * XML (хотя было бы хорошо, чтобы он не нарушал существующие установки), но я требую, чтобы человек был читабельным. Спасибо за список минусов. –
Для удаленного доступа вы можете реализовать 'ISerializable' (через protobuf-net) примерно в 4 строках кода для каждого объекта; о лучшем, что я могу получить ... это необходимо только для «корневых» объектов (а не для инкапсулированных объектов). Для человека читабельны ... возможно, JSON.Net? –