К основному контенту

Сообщения

Сообщения за ноябрь, 2010

Паралельный вызов удаленных методов за один http-запрос используя WCF [Parallel executing remote methods in a one http-request using WCF]

Окружение В данной статья будет рассмотрено клиент-серверное приложение. Клиента - Silverlight приложение, сервер - ASP.NET, коммуникация осуществляется WCF'ом. Но зачем нам все это... Задача Требование привычное, это повседневная форма редактирования полей сущности. Допустим сущность - Книга, с полями: Название, Автор, Категория, Язык. UI должен содержать контролы: Название - текстовое поле; Автор - выпадающий список, с перечнем всех авторов; Категория - выпадающий список, с перечнем доступных категорий; Язык - выпадающий список, с перечнем всех языков Кнопка сохранения  Вроде бы все предельно просто и понятно, какие могут быть проблемы? Проблема Что бы загрузить все данные, необходимые для нашей формы редактирования, требуется вызвать 4 удаленных серверных метода: Загрузить конкретную Книгу по ее идентификатору; Загрузить список всех Авторов, для заполнения ими выпадающего списка; Загрузить список доступных Категорий, для заполнения выпадающего списка; Загрузи

Sliverlight и gzip сжатие трафика в WCF [Sliverlight and gzip compression of traffic using WCF]

Самый простой способ добавить gzip/deflate сжатие в WCF: Добавить метод SetupOutputCompression() в Ваш сервис: private void SetupOutputCompression() { HttpRequest request = HttpContext.Current.Request; HttpResponse response = HttpContext.Current.Response; string acceptEncoding = request.Headers["Accept-Encoding"]; if (string.IsNullOrEmpty(acceptEncoding) == false) { Stream uncompressedStream = response.Filter; acceptEncoding = acceptEncoding.ToLower(); if (acceptEncoding.Contains("gzip")) { response.Filter = new GZipStream(uncompressedStream, CompressionMode.Compress); response.AppendHeader("Content-Encoding", "gzip"); } else if (acceptEncoding.Contains("deflate") || acceptEncoding == "*") { response.Filter = new DeflateStream(uncompressedStream, CompressionMode.Compress); response.AppendHeader("Content-Encoding", "deflate"); } } }  Вызвать метод SetupOutputCompression

Нет, только не JavaScript

"О нет, только не JavaScript" . Все чаще и чаще мне приходится слышать это от опытных веб-девелоперов. Вот основные их аргументы: JavaScript - не полноценный язык; JavaScript - процедурно-ориентированный язык программирования; Разберемся, так ли это... JavaScript - не полноценный язык. Ну почему же? JavaScript имеет в своем наборе: основные типы данных (строка, число, дата, регулярное выражение, массивы), циклы, функции, классы, делегаты. Также при включении фантазии в нем появляется: наследование, полиморфизм, инкапсуляция (модификаторы доступа), события, многопоточность. По-моему, JavaScript вполне полноценный язык. JavaScript - процедурно-ориентированный язык программирования. Скорее JavaScript - объектно ориентированный язык программирования с  прототипно-ориентированной парадигмой . Другими словами понятия класс в JavaScript нет, но его функциональность реализовывается синтаксисом функции. Сложно звучит, но на примере все просто и наглядно ( один из вар