Преобразование ExpandoObject в тип. Что эффективнее и требует меньше времени: на стороне клиента или на стороне сервера?

Определение проблемы:

У меня есть ExpandoObject, который мне нужно преобразовать в тип типа «Клиент», проблема не в том, чтобы достичь этого, мне интересно, следует ли мне подходить к этой серверной или клиентской стороне с помощью javascript, я могу добиться того, что я хочу, в обоих направлениях, но что более эффективно и менее затратно по времени?

Подход на стороне сервера:

public IEnumerable<T> Convert<T>(dynamic self)
{
    List<T> model = new List<T>();
    var jsSerializer = new JavaScriptSerializer();
    foreach (var obj in self)
    {
        model.Add(jsSerializer.ConvertToType<T>(obj));
    }
    return model.AsEnumerable();
}

Подход на стороне клиента:

var model = [];
data.forEach(function (item) {
    var property = [];
    item.forEach(function (pair) {
        property[pair.Key] = pair.Value;
    });
    model.push(property);
});

Используемый ORM: Массив Роба Конери

Исходный ответ (без конверсии):

[[{ "Ключ": "ID", "Value": 2 }, { "Key": "customerID", "Value": 1 }, { "Key": "orderID", "Value": 1 }, { "Ключ": "адрес", "Значение": "улица Ибрагима Надь, 25, NasrCity, Каир" }, { "Ключ": "deliveryDateTime", "Value": "/Date(1381528800000)/" }, { " Ключ": "deliveryPersonnelID", "Значение": 1 }], [{ "Ключ": "ID", "Значение": 3 }, { "Ключ": "customerID", "Значение": 2 }, { " Ключ": "orderID", "Значение": 2 }, { "Ключ": "адрес", "Значение": "улица Ибрагима Надь, 14, NasrCity, Каир" }, { "Ключ": "deliveryDateTime", "Значение ": "/Дата(1386972000000)/" }, { "Ключ": "deliveryPersonnelID", "Значение": 2 }], [{ "Ключ": "ID", "Значение": 4 }, { "Ключ" : "customerID", "Value": 1 }, { "Key": "orderID", "Value": 3 }, { "Key": "address", "Value": "улица Аббаса Акад, 30, NasrCity, Каир " }, { "Key": "deliveryDateTime", "Value": "/Date(1387922400000)/" }, { "Key": "deliveryPersonnelID", "Value": 2 }], [{ "Key": " ID", "Value": 5 }, { "Key": "customerID", "Value": 3 }, { "Key": "orderID", "Value": 4 }, { "Key": "адрес" , "Значение": "25 Хасан Maamoon Street, NasrCity, Cairo" }, { "Key": "deliveryDateTime", "Value": "/Date(1388354400000)/" }, { "Key": "deliveryPersonnelID", "Value": 3 }]]


person Ibrahim Ahmed    schedule 14.10.2013    source источник
comment
Со мной это не работает, потому что данные извлекаются через вызовы AJAX, и мне приходится иметь дело с динамикой, потому что мой ORM «массивный».   -  person Ibrahim Ahmed    schedule 14.10.2013
comment
Кажется, я разговариваю сам с собой, потому что парень, который спрашивал меня, удалил свой комментарий: «Просто отлично».   -  person Ibrahim Ahmed    schedule 14.10.2013
comment
серверная сторона дает вам время компиляции   -  person devshorts    schedule 14.10.2013
comment
Хорошо, это один из способов взглянуть на это, но как насчет общего представления?;   -  person Ibrahim Ahmed    schedule 14.10.2013
comment
не было бы самым быстрым прямо из Expando в JSON ... почему промежуточный шаг?   -  person Hogan    schedule 14.10.2013
comment
что между шагами?, извините, я заблудился здесь: D   -  person Ibrahim Ahmed    schedule 14.10.2013


Ответы (1)


Я решил сделать конверсию на стороне клиента, я не знаю, как мне это кажется правильным, я имею в виду, что пусть клиент выполняет некоторую работу, а также это не очень тяжелая работа, так зачем тратить время на стороне сервера?

person Ibrahim Ahmed    schedule 14.10.2013
comment
Также не стесняйтесь использовать любой код в моем вопросе, если вы сталкиваетесь с подобными ситуациями: D. - person Ibrahim Ahmed; 14.10.2013