Сжать данные списка веб-службы C # Отправить автономный клиент с Delphi - PullRequest
0 голосов
/ 11 февраля 2012

У меня есть .Net WebService и отдельное приложение, написанное на DelphiXE2.

Когда я отправляю список с большим количеством элементов (400), метод FindAllEntity() очень медленный.

Я исследовал сжатие компонентов данных в списке, но нашел только Gzip C #, который используется для сжатия файлов и изображений.

Есть ли способ сжатия списка данных, который можно быстро отправить в автономное приложение?

Вот код:

//MyRegularNewEntity
    public class _MyEntity
    {
        public decimal id { get; set; }
        public _otherEntity Customers { get; set; }
        public string serial { get; set; }
        public decimal cost { get; set; }
    }

    //My Controller
    public IQueryable<c#ModelEntity> GetAllDatOfEntity()
    {

        IQueryable<C#ModelEntity> Dat;
        //The containt of data base entity is save in Dat ListQueryable
        Dat = db.MyEntity;

        return Dat;           
    }

    //My WebService
    [WebMethod]
    public List<_MyRegularEntity> FindAllEntity()
    {
        //Construct my repository
        MyRepository ag = new MyRepository();
        //Asign the result in a variable of call to get all the dat
        var Dat = ag. GetAllDatOfEntity();
        //Contruct the List with my entity to send for my client
        List<_MyRegularEntity> list = new List<_MyRegularEntity>();
        //Add all dat element to my list
        if (Dat != null)
        {
            foreach (var item in Dat)
            {
               var MyEntity = new _MyRegularEntity();
               MyEntity.id = item.id,
               MyEntity.Custormers = new _otherEntity()
               {
                   id=item.Customers.id,
                   firstname=item.Customers.firstname,
                   lastname=item.Custormers,lastname
               },
               MyEntity.Serial = item.Serial,
               MyEntity.Cost = item.Cost

               list.Add(MyEntity);
            };

         }
        //THIS IS THE RESULT I NEED COMPRESS
        return list;
    }

1 Ответ

0 голосов
/ 11 февраля 2012

Gzip-сжатие может быть включено на уровне сервера в IIS или через ваш файл web.config. Он используется не только для передачи «файлов», но и для передачи чего-либо между клиентом и сервером.

Однако вам следует профилировать веб-сервис, чтобы увидеть, действительно ли это медленная передача данных или есть ли что-то еще внутри вашего FindAllEntity() метода, который медленен.

...