Рубрика «.net» - 206

В прошлом посте я рассказывал о различных стратегиях кеширования. Там была голая теория, которая и так всем известна, а кому неизвестна, тому без примеров ничего не понятно.

В этом посте я хочу показать пример кеширования в приложении ASP.NET MVC и какие архитектурные изменения придется внести, чтобы поддерживать кеширование.

Читать полностью »

Один контрол на всех, и все на одного: WPF, Silverlight 4-5, WinPhone 7-8, Windows Store App (x86, x64, ARM)

Сразу дискламер — это не Розеттский камень, а лишь хитрость, которая поможет, если у вас есть UserControl, почти идентичный для всех платформ.

Бонус — видео процесса разработки в конце статьи — статья простая и короткая, а видео 8 минут отличной музыки. Не у всех есть Windows8, многим наверное будет просто любопытно увидеть процесс в W8 + VS2012, поэтому заморочался.

Нам подарили Portable Library — отличная штука, сразу для всех платформ. Но, есть и ложка дёгтя — почти ничего, кроме числомолотилки и бизнес-процессов с этим не сварить, поддерживаемые неймспейсы подвели.
Эта штука не только не знает что такое XAML, но не знает даже что такое Point! Куда уж проще, две координаты, X и Y — но это проблема, и предмет отдельного обсуждения с лучами ненависти к индусам и бардаку архитекторов.
Читать полностью »

Главным недостатком Mono для Android является то, что для работы приложений требуется отдельная среда выполнения, отличная от Dalvik. И хотя полный доступ к CLR выглядит весьма привлекательно, проксирование и маршаллинг вызовов от одной среды выполнения к другой могут сильно повлиять на производительность. Так почему бы не убрать промежуточную компиляцию в IL-код и получать сразу рабочий Dex-код? Этим и занимается проект dot42.

dot42 — компилятор C# для Dalvik Runtime

В январе, после 1 года разработки, авторы проекта dot42 наконец-то перешли от обещаний к пряникам. И, хотя проект еще не дотягивает до состояния боевого продукта-конкурента Mono, стоит, как минимум, его рассмотреть и попробовать.
Читать полностью »

в 17:30, , рубрики: .net, tpl, метки: , ,

С выходом .NET Framework 4.0 в состав BCL была добавлена библиотека Task Parallel Library (TPL), реализующая параллелизм на основе задач. В основе библиотеки лежат типы Task и унаследованный от него тип Task<TResult>. Эти типы являются обёртками для асинхронных операций; они позволяют абстрагироваться от таких технических деталей, как, например, потоки и синхронизировать асинхронные операции друг с другом.

В этой же версии .NET Framework появился мини-framework для кооперативной отмены асинхронных операций. Состоит он из всего трёх типов:

  • CancellationTokenSource — создаёт маркёры отмены (свойство Token) и обрабатывает запросы на отмену операции (перегруженные методы Cancel/CancelAfter).
  • CancellationToken — маркёр отмены; позволяет несколькими способами отслеживать запросы на отмену операции: опросом свойства IsCancellationRequested, регистрацией callback-функции (через перегруженный метод Register), ожиданием на объекте синхронизации (свойство WaitHandle).
  • OperationCanceledException — исключение, выброс которого по соглашению означает, что запрос на отмену операции был обработан и операция должна считаться отменённой. Предпочтительный способ генерации исключения — вызов метода CancellationToken. ThrowIfCancellationRequested.

Механизм отмены через CancellationToken является стандартным для TPL — есть перегрузки методов, принимающих CancellationToken, исключения OperationCanceledException специальным образом обрабатываются и т.д. Однако, как и в любом другом API, есть свои тонкости, хитрости, best practices.
Читать полностью »

Добрый день, жители и гости !

Представляю вашему вниманию один интересный инструмент, для тех, кто по роду своей деятельности или в силу увлечения интересуется пространственными данными, созданием разноплановых ГИС-систем и картографических сервисов.

Итак, MapAround — это полноценный картографический движок, который содержит инструментарий для решения большинства типовых задач, возникающих при разработке ГИС, реализован полностью на .NET (не является «оберткой» native-библиотек), имеет высокую степень модульности. Данный SDK организует данные в удобоваримом для карты виде, т.е. позволяет привязать карту к реальным координатам, настроить ее отображение, разбить на слои/объединить их.

Картографические и ГИС компоненты для разработчиков на GitHub
Читать полностью »

Я думаю многим читателям блога .Net знакомо имя John Skeet. Особенно после вчерашнего поста юзера SergeyT. Поэтому я не буду повторять про сравнение с Чаком Норрисом и первое место по карме на StackOverflow.com. А вот упомянуть лишний раз про его замечательную книгу “C# In Depth” точно лишним не будет. Центральное место в ней занимает LINQ вообще и LINQ to Objects в частности. Джон очень обстоятельно описывает все возможности языка C# и платформы .Net, которые сделали возможным появление LINQ в его нынешнем виде, а также подробности его реализации. Именно после прочтения этой книги я стал активно использовать LINQ to Objects в своих проектах. Однако в стандартной библиотеке не хватает нескольких крайне нужных операторов. К счастью, Джон Скит исправил это недоразумение. Так появилась небольшая, но очень полезная библиотка morelinq. А с конца прошлого года она доступна в виде NuGet-пакета. Читать полностью »

Перед нашей командой встала задача выбора для будущих проектов библиотеки WPF компонентов для быстрой разработки пользовательского интерфейса бизнес-приложений. Посылом к рассмотрению стало то, что стандартный грид (а это обычно большая часть функционала пользовательского интерфейса бизнес-приложения) не устраивает по многим параметрам. Много чего приходится допиливать напильником, изобретая очередной велосипед. Надоело! Мы решили сравнить гриды из каждой библиотеки и сделать обоснованный выбор.

Участники конкурса

Думаю, что список участников сравнения никого не удивит:

Кому интересно как это происходило, прошу под кат.Читать полностью »

Введение

Довольно часто у программиста, работающим с реляционной базой данных, возникает проблема как сделать настройку подключения удобной для конечного пользователя. Кто-то хранит строку подключения непосредственно в NameApp.exe.config, это конечно неудобно, так как для того, чтобы изменить подключение, придется руками править файл. Большинство разработчиков пишут собственные классы и создают формы для редактирования строки подключения непосредственно в приложении. Это неплохой путь, если ты уже потратил на это свое время, но если ты начинаешь с нуля, то навряд ли захочется тратить несколько часов на создание диалогового окна подключения. Это как раз таки был мой случай.Читать полностью »

Привет. Эта статья во многом будет похожа на предыдущую. Здесь я также расскажу, как с помощью Windows Azure Mobile Services публиковать данные большого объема в хранилище Blob Storage. Однако на этот раз мы избавимся от WCF сервиса и заодно добавим дополнительный слой защиты от несанкционированного доступа с помощью Shared Access Signature. Цель этой статьи — показать дополнительные возможности Windows Azure для работы с данными, а также возможности по быстрому созданию серверного бекенда Mobile Services.

Прежде чем переходить к дальнейшему чтению, советую прочитать предыдущую статью, ибо там некоторые моменты раскрываются более подробно, чем здесь.
Читать полностью »

Наверное, многие используют такой замечательный опен-сорсный проект CruiseControl.net для реализации практики разработки ПО, называемой «непрерывная интеграция». О том, как его настроить, есть много статей, в том числе и на хабре: тыц, тыц и тыц. После сборки «особых» билдов часто стоит задача уведомления получателей об этом событии, для чего чаще всего используется инструмент CCTray или встроенный Task “email” – я же хочу поделиться туториолом о том, как сделать собственный плагин task на примере посылке сообщения по Skype.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js