Как стать автором
Поиск
Написать публикацию
Обновить
114.03

.NET *

Хаб со знаниями про .NET

Сначала показывать
Период
Уровень сложности

Microsoft и HP присоединяются к санкциям в отношении России

Время на прочтение2 мин
Количество просмотров4.2K
Крупнейшие американские IT-гиганты грозят российским банкам отключением части программного обеспечения. Microsoft, Symantec, Oracle и Hewlett-Packard намерены присоединиться к санкциям относительно ряда российских банков и компаний, и могут полностью прекратить сотрудничать с ними. Об этом рассказали источники Газеты.Ру в IT-подразделениях двух российских банков, также это подтверждает секретарь комиссии Госдумы по стратегическим информационным системам Андрей Черногоров.


Читать дальше →

Агрегаты многомерных кубов OLAP в оперативной памяти

Время на прочтение7 мин
Количество просмотров12K

Постановка


Проблематика Business Intelligence решений (Бизнес Аналитика) состоит в предоставлении заинтересованным лицам статистической, аналитической информации по результатам деятельности какого-либо автоматизированного процесса или комплекса процессов.
Например, имеется бизнес процесс фиксации покупок, совершаемых людьми в электронном магазине. В реляционной модели бизнес процесса естественно будут иметься продавцы, покупатели, товар и прочие сущности. При этом, если бизнес процесс успешен, т.е. происходит достаточно интенсивный поток данных, возникают потребности в анализе этих данных для решения различных задач, в том числе экономических. Для финансистов это будет совокупность данных, отражающих:
  • Количество проданного товара за 1-ый квартал текущего года
  • Сумма проданного товара в разрезе продавцов за прошлый год
  • Динамика продаж определенного вида товара в ежемесячном срезе
  • И многие др

При этом, если речь идет о холдинге, в который входят – магазины, рестораны, прочие виды деятельности, то количество данных возрастает, что так же ведет порой и к увеличению видов представлений аналитических данных.
Таким образом перед разработчиком встает проблема по предоставлению максимально широкого, эффективного и удобного инструмента для анализа данных. На помощь приходят OLAP решения, предлагаемые различными брендами, такими как Oracle, SAP, Microsoft, MicroStrategy, Pentaho и многие др.
Читать дальше →

Incoding Rapid Development Framework ( part 2 CQRS )

Время на прочтение7 мин
Количество просмотров6.6K
image

Пред история


Моя предыдущая статья была знакомством с Incoding Framework, которое начиналось с IML (наша флагманская фича ). IML подтолкнул нас развить проект больше, чем набор утилит ( такого добра полно в любой команде разработчиков ) используемых в проектах компании, но это не значит, что другие компоненты не прорабатываются, а напротив «полируются» с не меньшей детализацией и это я попробую Вам доказать.

Серебренная пуля ?


Раньше я всегда был сторонником того, что у каждого решения есть свои минусы и плюсы, но CQRS на мой взгляд превосходит N-Layer, а также не имеет «противопоказаний» или «побочных эффектов», что делает его кандидатом на первый патрон в обойму, но обо всем по порядку.

Кто-то не слышал про CQRS?


Для тех, кто уже использует CQRS, первые разделы могут быть не интересны, поэтому прежде чем поставить ярлык «велосипед», предлагаю ознакомиться с разделом killing feature, который может Вас убедить в обратном. Тем же, кто использует N-Layer архитектуру, стоит задуматься о переходе на CQRS и чтобы подкрепить свое предложение я опишу наш путь к CQRS
Читать дальше →

WCF RIA Services. Обновление данных. Часть 3

Время на прочтение6 мин
Количество просмотров6.4K
WCF RIA Services. Начало. Часть 1
WCF RIA Services. Получение данных. Часть 2
WCF RIA Services. Обновление данных. Часть 3
WCF RIA Services. Внедряем паттерн Model-View-ViewModel (MVVM). Часть 4

В предыдущем уроке мы более подробно ознакомились с возможностями получения данных в WCF RIA Services. Сегодня поговорим о процессе обновления данных, который является более сложным.

Вступительной частью является проект, созданный во втором уроке.

IQueryable<T> и магия деревьев выражений

Читать дальше →

Windows Phone 8: Создаем приложение. Матрица. Часть 3. MVVM

Время на прочтение39 мин
Количество просмотров9.7K
И так, как и обещал, третья часть приложения Матрица для платформы WP8 с использованием паттерна MVVM. Для самых нетерпеливых можно сразу скачать с Github, а также опробовать у себя на смартфоне, скачав с Windows Phone Store.

Поддерживаются расширения экранов HD720P (720x1280), WVGA (480x800), WXGA (768x1280). Есть маленький минус: при использовании расширения отличного от 480x800, нужно перезапустить приложения после установки, так как не нашел как получить высоту и ширину элемента Grid до загрузки модели вида. А теперь по порядку.

Windows Phone 8: Создаем приложение. Матрица. Часть 1
Windows Phone 8: Создаем приложение. Матрица. Часть 2
Windows Phone 8: Создаем приложение. Матрица. Часть 3. MVVM


Развернутый вид всего приложения на экране WVGA (480x800)

Читать дальше →

Начало Windows Phone 8 Development: урок 4. Связь с сервисами и привязка к данным

Время на прочтение5 мин
Количество просмотров13K
Начало Windows Phone 8 Development: урок 1. Макет приложения и обработчик событий
Начало Windows Phone 8 Development: урок 2. Доступ к локальному хранилищу приложения
Начало Windows Phone 8 Development: урок 3. Навигация по страницам и передача параметров
Начало Windows Phone 8 Development: урок 4. Связь с сервисами и привязка к данным

Как и было обещано, к концу этого урока Вы уже будете себя чувствовать почти настоящим разработчиком под Windows Phone 8 ). Сейчас мы уже умеем строить GUI используя XAML, создавать обработчики событий, переходить по страницам, сохранять данные в локальном хранилище. Все, что осталось освоить, что б создавать настоящие приложения – это привязка к данным и взаимодействие между сервисами.
Читать дальше →

Модальное окно bootstrap для редактирования форм

Время на прочтение3 мин
Количество просмотров38K
Возникла необходимость использовать плагин bootstrap-modal.js для редактирования формы. Казалось бы тривиальная задача, но пришлось столкнуться с некоторыми сложностями. В данной статье поделюсь с вами своим решением, более изящные решения и здоровая критика приветствуются.

Имеется страница с формой для редактирования товара. Добавим на форму выпадающий список с перечнем производителей. Рядом разместим бутстраповскую иконку icon-plus-sing, которая и будет триггером для вызова модального окна.

image
Читать дальше →

«Человеческая» энтропия для генератора случайных чисел

Время на прочтение5 мин
Количество просмотров18K
Лишь вследствие нашей слабости, вследствие нашего невежества случайность для нас существует

А. Пуанкаре

Чем больше люди постигали тайны Вселенной, тем ближе они приближались к той точке незнания, в которой их предки все приписывали богам. Теперь это называется – случайность. И хотя Эйнштейн не верил в случайность – он говорил «Бог не играет в кости», – он в числе первых из списка: Эйнштейн, Шредингер, Лаплас…

В наш век цифровых технологий и огромной роли информации в развитии человечества защита информации – актуальнейшая задача. Технологическое решение этой задачи предполагает привлечение «случайности», а именно – генерацию случайных чисел. При этом от качества используемых генераторов напрямую зависит качество получаемых результатов. Это обстоятельство подчёркивает известный афоризм Роберта Р. Кавью из ORNL: «генерация случайных чисел слишком важна, чтобы оставлять её на волю случая».
Читать дальше →

Смена парадигмы программирования на C#, переход на сигналы и очереди (слоты)

Время на прочтение7 мин
Количество просмотров17K
В этом посте я рассматриваю концепцию и ее реализацию (пока в начальной, но рабочей стадии), которая с недавних пор стала меня сильно привлекать. Опыта в программировании на сигналах у меня ранее не было, поэтому что-то мог упустить или неоптимально продумать, потому и пишу сюда. Надеюсь на квалифицированные отзывы и советы. Несмотря на то что библиотека только начала развиваться, я уже начал ее использование в реальных проектах, на реальной нагрузке, это помогает быстро понять что действительно нужно и куда двигаться дальше. Так что весь приведенный код находится в рабочем состоянии, компилируется и готов к использованию. Единственное все делается на Framework 4.5, но не думаю что это будет для кого-то препятствием, если же идея окажется стоящей, пересобрать под 3.5 проблем не будет.

Что же не так с текущей парадигмой


Устройство обычного приложения на .NET подразумевает что у нас есть набор классов, в классах есть данные, и методы которые эти данные обрабатывают. Также нашим классам надо знать друг о друге, о public методах, свойствах и событиях. То есть у нас сильносвязная архитектура. Конечно мы можем уменьшить связность, построить взаимодействие исключительно через интерфейсы и фабрики (что увеличит размер кода раза в два, и существенно усложнит читабельность), можем убрать открытые методы и стоить все на событиях, придумать можно много чего, но перейти к слабосвязанной архитектуре все равно не выйдет, получим в лучшем случае «среднюю» связанность.

Да, и еще есть такая вещь, которая с развитием процессоров становится все более актуальной, это асинхронность, microsoft делает много хорошего в этом направлении, тот же PLINQ, всякий сахар вроде await, но все это делается все равно в привычных рамках ООП, и нам все еще приходится самим создавать потоки, пускай и в виде тасков, но самим. Нужно отслеживать окончание исполнения задач, чтобы определить когда рессурсы станут ненужными.

В общем все это постепенно надоедает, становится лень писать одни и те же вещи в каждом новом проекте, когда правильнее было бы сосредоточиться на логике задачи.
Читать дальше →

Сериализация .NET объекта в JavaScript variable на HTML странице внутрь Script-блока

Время на прочтение3 мин
Количество просмотров7.8K

Старые добрые hidden inputs


Часто приходится передавать в HTML страницу данные, которые необходимо потом использовать из JavaScript. Издавна для этого используется самый простой способ: hidden inputs. То есть, если нам нужно передать Uri адрес веб сервиса, мы на странице рендерим что-то вроде

  <input type="hidden" name="webServiceUri" value="URI we need"/>

и можем при помощи jQuery или plain old JavaScript найти этот input по имени и прочитать переданное значение.

Но когда нужно передавать много параметров или даже массивы, то этот способ становится не удобным. Можно конечно сделать REST сервис, который отдает все данные по AJAX-запросу со страницы (сессионные данные), но в большенстве случаев это излишне.

В настоящее время часто используется другой способ — на стороне сервера отрендерить в HTML все необходимые данные в виде JavaScript переменной внутри Script-блока.

Рассмотрим как это сделать в ASP.NET MVC.

Читать дальше →

О некоторых неочевидных хаках при работе с entity framework и unique constraints

Время на прочтение5 мин
Количество просмотров11K
image
Пару лет назад, когда деревья были большие и зеленые, ко мне пришли злые дотнетчики, и сказали — ага, попался! пришлось мне помочь коллегам в одном весьма странном проекте.

А именно — представьте себе пачку цифирей, которые аналитики составляют раз в месяц, в любимом ими пакете MS Office. И вот раз в месяц появилась необходимость эти цифры пережевывать и загружать в БД под управлением MS SQL.

И конечно же — этот мега-тул надо было сделать быстро. Чтобы потом передать на суппорт дешевым то ли малайцам, то ли индусам. Так что еще и рекомендовалось делать максимально понятно.

Читать дальше →

Дружим System.Web.Optimization Bundle с Windows Azure Storage

Время на прочтение3 мин
Количество просмотров2.6K
Я все ждал, ждал, ждал, когда же все-таки умные ребята, разрабатывающие System.Web.Optimization добавят поддержку автоматической загрузки содержимого бандла в контейнер Azure Storage. На днях вышла «1.0.0-beta2», но желаемого функционала так я и не нашел, а быстроты то хочется…
Читать дальше →

Урок 2. Создаем своё приложение на Ext.NET, часть 1

Время на прочтение14 мин
Количество просмотров6.7K
Контейнеры (Container, Panel, TabPanel, ViewPort) и разметки (BorderLayout, AccordionLayout, CardLayout)


Введение


Ну что же начнем. Нашей конечной целью будет создать интерфейс примерно похожий на Microsoft Outlook 2010. Почему именно этот интерфейс? Причина проста — потому что Ext.NET часто используется в корпоративном секторе или близком к нему и пользователь этой аудитории зачастую хочет видеть нечто похожее на Outlook. Плюс ко всему эта разметка довольно сложная и потому интересная. Не переживайте можно сделать и многие другие интерфейсы, но это все как-нибудь потом. Сразу оговорюсь, что мы не будем делать полную копию интерфейса Outlook, ограничимся только самым нужным.



Читать дальше →

Ближайшие события

Как бы я делал BusyIndicator

Время на прочтение9 мин
Количество просмотров5.9K
В ответ на недавний пост про BusyIndicator решил поделиться своим опытом/виденьем данной проблемы. В статье представлена, на мой взгляд, более простая реализация индикатора занятости контрола. Сейчас любой может воспользоваться готовыми продуктами от маститых девелоперских контор, но проблема «Дырявой Абстракции» при этом становится весьма актуальной. Использование готовых индикаторов противоестественным для них образом неминуемо приводит к плачевным результатам. Поэтому очень важно представлять «как это работает».
Под катом мой вариант велосипеда

Часть I. InterSystems GlobalsDB .Net — разведка боем с заглядыванием под капот

Время на прочтение7 мин
Количество просмотров5.6K
image
Наконец-то вместо уговоров подождать еще немного, на вопрос “Есть ли InterSystems GlobalsDB/Caché Extreme под Microsoft .Net?” можно ответить утвердительно. В новой версии Caché 2012.2 (Field Test) и GlobalsDB v2012.296 появилась поддержка этой платформы.
Попытаюсь в любимом для многих разработчиков на одной шестой суши стиле, то есть без чтения install notes и прочего, исследовать, что, собственно говоря, представляет дистрибутив GlobalsDB под Windows.
Читать дальше →

Полное сокрытие полей свойствами в C#

Время на прочтение5 мин
Количество просмотров13K
Сперва я подумал, что стоит начать статью с описания основного назначения свойств в языке C#, но потом понял, что с этим можно на самом деле “развернуться” на целую статью. Поэтому, чтобы не затягивать со вступительной частью, я начну сразу с конкретной задачи.

Постановка задачи


Как известно, в подавляющем большинстве случаев свойства применяются, чтобы скрыть private или protected поле класса. То есть свойства в данном случае помогают реализовать инкапсуляцию данных и методов работы с ними.
Рассмотрим простой пример

[Перевод] Я все еще не просек F#

Время на прочтение2 мин
Количество просмотров2.2K
Я думаю, что Microsoft пытается продать нам F# как что-то новое и крутое, но у меня серьезные проблемы с пониманием приемуществ F# перед C#.

Читать дальше →

BizTalk Server Study Group

Время на прочтение1 мин
Количество просмотров1.4K
Есть такая идея (а пока это только идея) сделать study group посвященную BizTalk. Почему именно этой технологии? Вот несколько причин:
  • Компетенции в этой технологии мало у кого есть, поэтому знание (хотя бы поверхностное) – козырь в резюме
  • Есть шанс познакомиться с концепцией EDI
  • Можно поразбираться в протоколах и стандартах B2B
  • Можно изучить разные стороны дотнета, в частности Workflow Foundation, WCF, и т.д.
  • Заодно можно прихватить чуть-чуть доменной специфики, например из финансов.
Знаю что технология не самая популярная, но все же, заказы в этой области тоже бывают (хоть и редко). Формат я предлагаю такой – читаем какую-нть литературу (скажем Foundations of BizTalk), смотрим вебкасты и лабы, потом где-нть на выходных созваниваемся по Скайп, обмениваемся опытом, обсуждаем кто чего достиг, делимся самописными адаптерами, ну и все такое.

Если вас заинтересовало, отметьтесь ниже. Или пишите в личку.

В дженериках C# мог бы быть полезен “this type”

Время на прочтение2 мин
Количество просмотров3.7K
Разбирая наш код, нашел место, которое явно требовало бы некоторой подчистки. Но чтобы почистить, в языке нужна бы еще фича, которую и хочу обсудить. Я поднимал этот вопрос также и на StackOverflow. Был поддержан авторитетным камрадом.

Возьмем два класса, один наследуют от другого. Базовый класс – дженерик, в котором есть метод, который в производном закрытом типе должен возвращать экземпляр этого самаого закрытого типа.
Читать дальше →

Программируем для Windows 7. Индикатор прогресса на панели задач

Время на прочтение4 мин
Количество просмотров6.3K
Официальный выход Windows 7 не за горами, поэтому изучение новых возможностей операционной системы для программистов на C# становится актуальной. Новые веяния и правила для программистов появились уже при выходе Windows Vista с появлением UAC. Но Vista не получила широкого распространения у пользователей, поэтому программисты не очень активно изучали новое. С выходом Windows 7 ситуация может измениться в лучшую сторону. Я решил создать на своем сайте отдельный раздел, посвященный именно программированию под Window 7.
Читать дальше →

Вклад авторов