Pull to refresh
  • by relevance
  • by date
  • by rating

Silverlight & псевдо-анимированные изображения.

Silverlight

С места, в карьер.


Начал разбираться с технологией Silverlight 2.0 и столкнулся с неприятностья, что нет встроенной поддержки анимированных изображений *.gif.
Читать дальше →
Total votes 24: ↑18 and ↓6 +12
Views 1.2K
Comments 17

Unit тесты и наследование

Lumber room
При разработке unit тестов в Visual Studio часто хочется создать какой-то базовый клас для тестирования базовой лоники. Например у нас есть такой класс: [TestClass]
public virtual class PersonTestBase
{

[TestMethod]
public void GetNameTest()
{
//...
}
}
и его класс наследник: [TestClass]
public class CustomerTest: PersonTestBase
{
[TestMethod]
public override void GetNameTest()
{
base.GetNameTest();
}
}

Плюсы такого подхода:
  • полная поддержка визуальных средств Visual Studio (Test List Editor);
  • простота реализации.
Минусы:
  • избыточность кода;
  • создание наследника является по сути copy&paste.
Сразу необходимо заметить, что PersonTestBase и CustomerTest должны находится в одной сборке, иначе тесты в PersonTestBase работать не будут — это ограничение unit тестов. Подробнее смотрите в msdn. Кроме описанных в msdn способов можно поступить так: создаётся два проекта: BaseTests и CustomTests;в проект CustomTests добавляются необходимые файлы из BaseTests таким образом: Project -> Add Existing Item -> Выбираем необходимые файлы -> Add As Link.Таким образом физически файлы находятся в разных проектах, но при компиляции необходимые классы оказываются в одной сборке. Теперь пришло время изменить наш CustomerTest. [TestClass]
public class CustomerTest: PersonTestBase
{
[TestMethod]
public override void CustomerTestMethod()
{
//...
}
}

Мы добавили новый, специфический для Customer, метод и удалили переопределения метода из базового класса, т.к. его функциональность нас полность устраивает. Что мы из этого получили:
  • фактически, в классе у реализоано 2 тестовы метода: один перешел из базового класса и один мы реализовали сами.
  • Visual Studio Test List Editor говорит что у нас только один тетовый медов — метода из бащового класс не отображается и, соответственно, не запускается.
Обидно, но не смертельно. На помощь нам приходит штатная утилита MSTest, которая решает все, или почти все, наши проблемы.Плюсы такого метода:
  • мы избавились от минусов предыдущего метода;
Минусы:
  • нету интеграции с Visual Studio.
Total votes 8: ↑3 and ↓5 -2
Views 1.3K
Comments 3

.NET Interop на примере работы с сокетами

.NET *
Хватит мне уже гнать про теорию, вы мне практику давайте, практику!


У нас есть множество технологий. Одни неимоверно быстры, другие неимоверно удобны. Одни позволяют летать со скоростью света, другие позволяют разрабатывать со скоростью света.

Споры насчёт того, какой же подход лучше, утихают редко. Сейчас я покажу, как можно скрестить ежа с ужом. У нас есть .NET, которым можно быстро делать и есть Native, который может быстро делать.

В образовательных целях мы будем скрещивать эти два направления. У статьи есть ещё одна цель. В её основе лежит написанная мною и Arwyl'ом программа под названием DuSter. Эта программа представляет собой сервер-пустышку, который позволяет тестировать сетевые программы. Сервер очень прост в использовании, достаточно гибко настраивается, поддерживает файлы описания протоколов, которые позволяют более-менее автоматизировать тестирования работы любых протоколов. Я занимался разработкой сетевого уровня, мой друг — бизнес-логикой и парсингом протоколов. Получилось что-то неимоверно хорошо вылизанное и приятное. Мы гордимся своей программой, и хотим предоставить её сорцы миру, для некоммерческого использования.
И так, приступаем
Total votes 35: ↑29 and ↓6 +23
Views 6.7K
Comments 50

Microsoft Moles Isolation Framework, копаем глубже

.NET *
Как вы поняли из названия, речь пойдет о продукте от Microsoft Research – Microsoft Moles Isolation Framework. Я познакомился с ним впервые после прочтения поста хабраюзера alek_sys. Моль мне настолько понравилась, что я решил поделиться своим опытом её использования.

Зачем?


Для начала попробуем определиться, для каких целей предназначена Microsoft.Moles и чего мы можем с ней добиться:
  • Полная изоляция тестируемой логики от внешнего окружения.
  • Возможность быстрого и просто создания юнит-тестов, при чём тестирование логики класса становится возможным даже при отсутсвии реализации классов, пользователем которых является тестируемый класс.
  • Становится просто организовать наборы тестовых данных или моделировать состояние связанных обьектов для создания тестовых условий
  • В разы сокращается время выполнения юнит-тестов, становится реальным частый запуск тестов
  • Нарушение логики юнита не влечет за собой падение сотни-другой не предназначенных для его тестирования тестов
  • Удобное тестирование методов со сложным workflow

Читать дальше →
Total votes 44: ↑36 and ↓8 +28
Views 2.9K
Comments 21

Как создать приложение, используя eXpressApp Framework

Developer Soft corporate blog Programming *.NET *
В прошлом году мы участвовали в выставке TechEd Russia и, конечно, много общались с посетителями. Тогда выяснилось, что российские разработчики хорошо знают нашу компанию как производителя .NET контролов, но мало кто слышал о том, что у DevExpress есть фреймворк — eXpressApp Framework (XAF) — объединяющий большинство наших WinForms и ASP.NET продуктов. Тогда и родилась идея рассказать русскоязычному сообществу o XAF, которая воплощается в жизнь сейчас.

Итак, что же такое XAF и зачем вам предлагается запомнить еще одну трехбуквенную аббревиатуру? Проще говоря, XAF — это фреймворк для быстрой разработки других трехбуквенных вещей, таких как CRM, ERP, EAM, WMS и т.д. (любых приложений для бизнеса).

XAF может быть полезен не только опытным .NET-разработчикам. «Порог вхождения» невысок — можно смело сказать, что приступить к разработке ХАF-приложений можно вообще не имея опыта в .NET. Так что сисадминам-мастерам-на-все-руки XAF может помочь создать серьезное корпоративное приложение и избавиться от вороха расшаренных экселевских таблиц или Access-базы в которые пользователи что-то заносят и пытаются анализировать.

В то же время, продвинутые разработчики могут создавать сколь угодно сложные решения (пример – Галактика EAM).
Читать дальше →
Total votes 34: ↑28 and ↓6 +22
Views 26K
Comments 13

Управления конфигурационными файлами в .net проектах

Website development *.NET *ASP *
Sandbox

Setty.org


Предисловие


Я думаю, что каждый .net разработчик хоть раз, да сталкивался с проблемами управления конфигами для различных окружений. Часто есть необходимость при разработке новой функциональной возможности поменять строку подключения к БД, не мешая при этом другим разработчикам. Для этого обычно в конфиге меняется строка подключения на локальную базу данных, а потом эти изменения комитятся… Все остальные разработчики негодуют, потому что система перестала работать на их локальных машинах.
Если команда распределённая часто есть необходимость в спецефических настройках. Иногда вам нужны одинаковые настройки для разных проектов в солюшене и вы просто копируете их. В конце концов хотелось бы иметь возможность добавлять различную логику в конфиг. К примеру, на локальных машинах разработчиков отправленная почта должна сохранятся на диске, в то время как на тестовом сервере почта должна отправлятся с использованием сервиса отправки почты. Я думаю можно привести много примеров, которые сложно реализуемы без дополнительного механизма управления конфигами.
Читать дальше →
Total votes 25: ↑19 and ↓6 +13
Views 6.5K
Comments 15

DataSet’ы в Web-сервисах – это порождение дьявола и всё мировое зло

Website development *.NET *C# *
Translation
(Нет, на самом деле я в это не верю, но ведь неплохой заголовок получился, не так ли? DataSet’ы имеют право на существование, но только не в качестве внешних бизнес-объектов или контрактов Web-сервисов).
Читать дальше →
Total votes 16: ↑11 and ↓5 +6
Views 6.4K
Comments 8

Dev story одной .NET утилитки

Website development *
Однажды в студеную зимнюю пору…

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

Собственно, тулкит собирался из некоторого набора .NET сборок из общей папки, в которую валились все без исключения компоненты приложения. Текущая версия брала оттуда не все, что было нужно.

Некоторое время помаявшись ручным поиском сборок, нужных для того или иного компонента тулкита, я устал и решил погуглить инструменты для автоматизации и ускорения этого процесса. К моему удивлению, не нашлось ни одного мало-мальски полезного приложения для решения этой задачи.

Тогда я решил, что вместо того, чтобы продолжать этот рутинный ручной труд, лучше потратить время на написание своей утилитки, которая быстро вычислит, чего сейчас не хватает для запуска конкретного компонента.
Читать дальше →
Total votes 28: ↑7 and ↓21 -14
Views 3.4K
Comments 12

.NET-разработка: переключения между DEV и PROD-окружениями. Часть первая

.NET *ASP *Visual Studio *

Введение


Разрабатывая и отлаживая проект в Visual Studio, вы, как правило, делаете это, компилируя код в Debug-конфигурации. На боевой же сервер проект выкладывается, откомпилированный в Release-конфигурации. И каждый проект рано или поздно разрастается настолько, что в нём появляется некий «отладочный» или «релизный» код — то есть, тот код, который должен работать только в одной из конфигураций. И если бы дело ограничивалось только кодом, то директива условной компиляции #if решала бы все проблемы. Но обычно за кодом ещё тянутся настройки, специфичные для каждой из конфигураций, а зачастую и разметка веб-страниц. В самом начале, когда такие проблемы только начинают появляться, и ещё не являются сильной головной болью, обычно используется банальное комментирование ненужных в конкретный момент строк с кодом/разметкой/настройками. Но это — Road To Hell в самом чистом виде. А вот о Stairway To Heaven я и хотел бы рассказать.



Когда я впервые столкнулся с такой проблемой и уже погряз в костылях из комментариев и наборов различных конфигурационных файлов, то в какой-то момент решил поинтересоваться чужим опытом, а также получше изучить возможности среды разработки и используемых инструментов. И внезапно выяснил, что все мои искусственные костыли являются абсолютно избыточными — проблема может быть решена стандартными средствами и без ухудшения читаемости кода. Итоги моего исследования я опишу в небольшом цикле статей, где рассмотрю и примеры проблем с окружением, и механизмы, с помощью которых весь код, настройки и html-разметку автоматически можно привести в нужный вид при публикации проекта. Речь при этом пойдёт о разработке ASP.NET MVC-приложений, как области, в которой я, в основном, и работаю. Однако, всё написанное будет применимо к любой .NET-разработке в Visual Studio.
Читать дальше →
Total votes 9: ↑6 and ↓3 +3
Views 13K
Comments 18

[PF] Печать PDF под .NET, векторный подход, теория

TINKOFF corporate blog Programming *.NET *Algorithms *PDF
Tutorial


Продолжаю тему печати PDF документов из под .NET.

В принципе, распечатать документ не трудно, есть даже готовые решения. Сложности возникают, когда нужно управлять некоторыми параметрами печати. В своей практике я столкнулся с задачей по реализации минитипографии — когда при печати документов нужно указывать, из какого лотка брать очередной лист, т.е. печатать документы по шаблонам. Первым делом я попытался найти готовые решения, но не обнаружив ничего подходящего, стал придумывать свое.
Хочу читать дальше!
Total votes 15: ↑15 and ↓0 +15
Views 7.8K
Comments 3

[PF] Печать PDF под .NET, векторный подход, практика

TINKOFF corporate blog Programming *Algorithms *PDF C# *
Tutorial

Как и обещал, продолжаю тему(раз, два) управляемой печати PDF из под .NET в векторном формате. О теоретических аспектах работы с PCL я рассказал в предыдущей статье, настало время разобрать программу для вывода на принтер PDF файла в векторе. Наше приложение будет полезно, например, когда нужно распечатать пачку многостраничных бланков или анкет на бумаге разных цветов и разной плотности. Если мы научимся управлять лотками принтера, избавим себя от ручного прокладывания страниц ;) В шаблоне будет указан номер лотка, из которого принтер заберет бумагу для текущей страницы. Причем шаблон будет применяться к документу циклически: если в документе 32 страницы, а в шаблоне 4, то шаблон повторится 8 раз для Simplex режима и 4 раза для Duplex.
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Views 5.5K
Comments 7

Автоматизация лабораторных измерений

.NET *Visual Studio *C# *
Sandbox
Я аспирант института металлофизики, занимаюсь исследованием свойств различных металлов и сплавов. Процесс измерения и анализа, как правило трудоемкий, и требует много рутинной работы. В связи с этим была выполнена автоматизация установки для исследования оптических свойств металлов. О том, как это было, расскажу дальше в публикации.


Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Views 6.5K
Comments 13

Модульное приложение на Xamarin

Microsoft corporate blog Development for iOS *Development of mobile applications *Development for Android *Xamarin *

В этой статье вы узнаете про интересные проблемы и их решения, которые возникали в процессе разработки «конструктора» приложений, построенного на модульной архитектуре, в компании Notissimus. Проект находится в стадии активной разработки, поэтому будем рады узнать ваше мнение в комментариях, а также приглашаем на заключительный в 2016 году митап для разработчиков на Xamarin. Всех заинтересовавшихся просим под кат.


Читать дальше →
Total votes 41: ↑37 and ↓4 +33
Views 13K
Comments 7

Наблюдаемые модели в Realm Xamarin

Microsoft corporate blog .NET *Development of mobile applications *C# *Xamarin *
Translation
Если вас раздражает аспект обновления данных, хранящихся в моделях, и вы думаете о том, как было бы здорово, если бы модель могла быть более самостоятельной и уведомлять об изменениях, добро пожаловать под кат.


Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Views 6.8K
Comments 9

Митап MSK.NET Community

JUG Ru Group corporate blog .NET *Visual Studio *C# *Development for IOT *


Всем привет, друзья!

В июне 2015 года состоялась первая встреча SPB.NET Community. Уверен, что многие из вас не только слышали о таком коммьюнити, но и смотрели отличные выступления с митапов SPB.NET (а многие и посещали встречи). Коммьюнити стало развиваться очень бодро и энтузиасты из Москвы, подхватив хороший настрой, решили создать своё локальное коммьюнити — MSK.NET.
Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Views 4.2K
Comments 2

Да будет фильм с Xamarin.Forms

Microsoft corporate blog Development for iOS *Development of mobile applications *Development for Android *Xamarin *
Translation
Tutorial
Одной из самых крутых тенденций в дизайне мобильных пользовательских интерфейсов, смело можно назвать использование видео в качестве фона для предоставления. Как пример, приложения Tumblr, Spotify и Vine. В этой статье мы разберём то, как реализовать аналогичное решение в приложении Xamarin.Forms, а в конце расскажем о меророиятии, которое скоро пройдёт в СПб. Всё, что нам нужно, это реализовать два пользовательских рендерера для Android и для iOS по отдельности.


Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Views 7.3K
Comments 2

Best .Net Development Tools in 2020

.NET *ASP *
.Net is indeed an important application development platform as it is secure, robust and quite easy to learn and implement. Developers are widely using the .Net framework to build web applications and even modernizing the legacy programming based applications into .Net based ones. .Net developers also use many 3rd party tools to carry out the development work. These tools have proven to provide the best support while the development goes on.

Here are some of the top useful tools being used by many offshore .net development teams, .net developers, individual .net programmers, etc.
Read more →
Total votes 3: ↑0 and ↓3 -3
Views 994
Comments 1

Распределенная трассировка запросов в .NET

JUG Ru Group corporate blog Programming *.NET *Conferences


В любой системе возникает задача понять, как взаимодействуют компоненты между собой. Особенно важно это в распределённых системах. Как понять, какие компоненты обработали запрос, сколько времени это заняло, какой был порядок обработки. Всё это можно узнать, но нужно добавить немного инфраструктуры.

Егор Гришечко — работал разработчиком в компании Insolar. Команда Егора делает полностью распределенную систему, и поэтому они сталкиваются с большинством проблем, которые присущи распределенным системам. Сейчас Егор трудится в Uber и занимается разработкой инфраструктуры.

Под катом — текстовая расшифровка и видео доклада Егора с конференции DotNext 2019 Moscow. Доклад будет полезен разработчикам микросервисных систем, которые смогут для себя открыть эти технологии. А также будет интересен бэкенд-разработчикам, интересующимся метриками и мониторингом.
Total votes 27: ↑27 and ↓0 +27
Views 9.3K
Comments 3

О чём .NET-разработчикам расскажут на DotNext 2021 Moscow

JUG Ru Group corporate blog High performance *.NET *Conferences

Порой жизнь разработчика превращается в кошмар. Называться это может по-разному: «миграция большого проекта», «отладка асинхронного кода», «запущенное легаси» или даже «зоопарк технологий для распределённых приложений». Уже скоро мы проведем .NET-конференцию DotNext, и поучаствовать в ней не только интересно, но и может помогать от кошмаров.

Среди тем конференции — и низкоуровневый хардкор, и нестандартные подходы, и личные истории преодоления препятствий. А рассказывать обо всём этом будут яркие спикеры, уже знакомые многим .NET-разработчикам: например, Скотт Влашин, Дилан Битти, Стивен Тауб, Егор Богатов, Евгений Пешков.

В программу сейчас вносятся последние штрихи, так что возможны маленькие изменения, но в целом доклады будет такими, как описано под катом. А кроме докладов, будут ещё и активности от программного комитета (вроде игры в формате ЧГК), о них позже расскажем отдельно.

Смотреть программу
Total votes 18: ↑18 and ↓0 +18
Views 2.6K
Comments 8