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

[PF] Векторная печать PDF на C# теория - 1

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

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

Мы уже рассмотрели две статьи, где функционал C# dynamic мог привести к неожиданному поведению кода.
На этот раз я бы хотел показать позитивную сторону, где динамическая диспетчеризация позволяет упростить код, оставаясь при этом строго-типизированным.

В этом посте мы узнаем:

  • возможные варианты реализации шаблона множественная диспетчеризация (multiple/double dispatch & co.)
  • как избавиться от реализовать Exception Handling Block из Enterprise Library за пару минут. И, конечно же, упростить policy-based модель обработки ошибок
  • dynamic – эффективнее Вашего кода

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

.NET становится по-настоящему кроссплатформенным: после долгого ожидания наконец объявлена дата релиза ASP.NET Core, JetBrains готовит альтернативу Visual Studio на базе ReSharper и IDEA, Microsoft приобрела Xamarin, сделала Xamarin Community бесплатной, а Mono перевела на MIT-лицензию и наконец, Windows Server 2016 получит поддержку Windows-контейнеров в Docker.

С новыми возможностями нас встречают новые вызовы:

  • Как будет работать один и тот-же код под .NET Core и Mono, на Windows и Linux, в docker-контейнере?
  • Стоит ли переходить на .NET Core уже сейчас и как получить максимум от новой платформы?
  • Какие перспективы у Mono и Xamarin?
  • Какие изменения произошли «под капотом» .NET с переходом на Roslyn и .NET Core?

Всего через три недели на конференции DotNext в Питере 20 спикеров выступят с докладами о настоящем и будущем платформы .NET, об оптимизации производительности и многопоточности, о внутреннем устройстве платформы .NET и CLR, о профилировании и отладке .NET-кода.

.NET-разработка: девять вопросов взрослым - 1


А пока мы попросили четырех из них поделиться своим опытом и мнениями о грядущих изменениях в мире .NET. На наши вопросы ответили:

  • Ведущий мировой эксперт по производительности .NET-платформы, восьмикратный Microsoft MVP, автор прекрасной книги по производительности .NET «Pro .NET Performance» Саша Голдштейн;
  • Главный разработчик протокола реактивного многопроцессного взаимодействия в Rider Дмитрий Иванов из JetBrains;
  • Microsoft MVP, к.ф.-м.н., серебряный призёр ACM ICPC, постдок в Вейцмановском институте науки и разработчик JetBrains Андрей Акиньшин;
  • CTO Promarket и эксперт в области Mono и Linux Никита Цуканов.

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

«Сфера»: как мониторить миллиарды киловатт-часов - 1

Есть такая электростанция — «Три ущелья». На нее потратили 10 лет и $26 млрд. Под воду ушли два города, переселили 1,3 млн человек. Она генерит 100 млрд кВт⋅ч в год, но это покрывает… 1,7% потребностей Китая.

В мире есть 192 атомные электростанции с 444 энергоблоками общей электрической мощностью около 386 276 МВт. (Мощность «Трех ущелий» 22 500 МВт).

Когда я играл в C&C, RedAlert и Total Annihilation, было милым делом прорваться и уничтожить/захватить парочку вражеских электростанций, тем самым затормозить развитие противника. Не мудрено, что сейчас энергетическая инфраструктура является лакомой целью для хакеров: «Взлом электросети: от отдельной подстанции к блэкауту», «Подробности о беспрецедентном взломе электрической сети Украины».

Кто и как пишет софт для систем такого масштаба?

Разработчики компании EDISON рассказали, как они писали систему мониторинга электросети и визуализации событий. В общей сложности на проект потрачено 14984 человеко-часа, с апреля 2010 по август 2011.

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

Введение

В данной статье рассматривается вопрос о том, как реализовать обмен типизированными сообщениями между Back-End на основе ASP.NET Web API и Front-End, созданного с использованием TypeScript. Это приобретает особенное значение при работе над объёмными проектами, и тем-более важно, если команда является распределенной. Например, когда Back-End и Front-End разработчики работают из разных мест, в разных часовых поясах, и не всегда имеют возможность проконтактировать и обсудить что-либо. В этом случае отслеживание изменений представляет кропотливую работу, которая может быть чревата множеством трудноуловимых ошибок.

Для автора статьи, как для человека, который пришел к разработке Front-End со стороны WPF и Silverlight, большой проблемой, стало отсутствие статической типизации. Сколько раз вместо того чтобы сложить “2” и “2” складывал “2” и “Функцию возвращающую 2”, или передавал DOM объект вместо его jQuery обертки. Появление статических анализаторов кода, таких как JSLint, несколько облегчило проблему, но настоящим прорывом, особенно в командной разработке, для нас стал TypeScript.

На пути к полной типизации с TypeScript, Swashbuckle и AutoRest - 1
Читать полностью »

Microsoft DevCon 2016 — представляем заключительную волну докладчиков Community-трека - 1

Привет!

Мы продолжаем анонсировать докладчиков нашей ежегодной конференции для разработчиков DevCon 2016! В этом году DevCon предоставляет участникам новый формат программы и различные типы билетов, в том числе специальное предложение Guest Pass. В предыдущих публикациях мы анонсировали содержание конференции и список основных треков: Windows, Office, Azure, Startup и Community трек. И представили первую волну докладчиков Community-трека. Настало время рассказать и представить всех докладчиков трека, каждый из которых является несомненным профессионалом в своей области и признанным экспертом индустрии.

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

В июне к нам на конференцию DotNext приедут две звезды .NET-программирования мирового уровня — Dino Esposito и Sasha Goldshtein.

Оба наших супергостя знамениты двумя вещами:

  • они авторы прекрасных книг;
  • они замечательные спикеры.

Про Дино я уже пару раз писал, и наверное напишу и в этот раз. А сегодня я расскажу вам про Сашу.

Саша Голдштейн / Sasha Goldshtein

Саша Голдштейн — ведущий мировой эксперт по производительности .NET-платформы, восьмикратный Microsoft MVP, автор прекрасной (и, наверное, единственной) серьезной книги по производительности .NET «Pro .NET Performance» (eng, rus).

Sasha Goldshtein, гуру .NET Performance, выступит на .NET-конференции в Питере - 1
Читать полностью »

Обратите внимание, что хотя пост написан от первого лица, это перевод статьи из блога Jimmy Bogard, автора AutoMapper.

Меня часто спрашивают, особенно в контексте архитектуры вертикальных слоев (vertical slice architecture), где должна происходить валидация? Если вы применяете DDD, вы можете поместить валидацию внутри сущностей. Но лично я считаю, что валидация не очень вписывается в ответственность сущности.

Часто валидация внутри сущностей делается с помощью аннотаций. Допустим, у нас есть Customer и его поля FirstName/LastName обязательны:

public class Customer
{
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }
}

Проблем с таким подходом две:

  • Вы изменяете состояние сущности до валидации, то есть ваша сущность может находиться в невалидном состоянии
  • Неясен контекст операции (что именно пытается сделать пользователь)

И хотя вы можете показать ошибки валидации (обычно генерируемые ORM) пользователю, не так-то просто сопоставить исходные намерения и детали реализации состояния. Как правило, я стараюсь избегать такого подхода.
Читать полностью »

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

А вообще зачем всё это

Мы — маленькая компания, наш штат — порядка 50 человек, 20 из которых — разработчики. Сейчас у нас 4 команды разработки, в каждой из которых сидит примерно по 5 fullstack разработчика. Но одно дело — называть себя fullstack-разработчиком, а другое дело — действительно разбираться одинаково хорошо в тонкостях работы SQL Server'а, ASP.NET, разработке на C#, разбираться в OOP, DDD, знать HTML, CSS, JS и уметь этим всем разумно пользоваться. Конечно же каждый разработчик тяготеет к чему-то своему, но все мы так или иначе специалисты именно в разработке на .NET и 90% кода мы пишем на C#.
Наш продукт — система автоматизации маркетинга — подразумевает довольно большой объем настроек для каждого конкретного клиента, и для того, чтобы наши менеджеры могли заниматься этой самой настройкой продукта под клиентов, у нас есть административный сайт, в котором можно заводить рассылки, создавать триггеры и другие механики, кастомизировать сервисы и многое другое. Этот административный сайт содержит довольно много различного нетривиального UI'а, и чем сильнее мы углубляемся, чем более тонкие моменты мы даём настраивать, чем большее количество фич мы выпускаем в продакшн, тем более интересным он становится. Чтобы не быть голословным, пара скриншотов (уже под катом, и скриншотов там отнюдь не пара!):
Читать полностью »

QA: Conference. Сибирь - 1

Три конференции позади и мы готовы идти дальше. Пока организаторы собирают отзывы, сортируют фотографии, а страна — отдыхает, у всех нас есть шанс записаться на будущую конференцию в Новосибирске. Что же нас ожидает на будущей конференции?

  • Галина Галкина — Расчет категории риска – подход к управлению регрессионной ТМ
  • Дарья Ефремова — FMEA — подход к тестированию с ретроспективой
  • Станислав Сидристый — Грамотное использование Groovy/Geb при автоматизации тестирования Web-приложений на Java
  • Константин Нерадовский — Функциональный подход в разработке автотестов на Java
  • Роман Иовлев — Jedi Power of Model-based testing
  • Роман Иовлев — JDI — Future of UI Automation
  • Алексей Белёв и Михаил Мациевский — Автоматизация тестирования или как мы с нуля всё поднимали
  • Александр Шиповалов — Чем пахнут ваши авто-тесты
  • Александр Шиповалов — BDD — Золотая книжечка, столь же полезная, сколь и забавная..
  • Леншмидт Анастасия и Орлов Артур — Автотесты: QA vs Dev

Покупая билет, вы получаете:

  • Возможность получить запись докладов с Москвы и Питера
  • Возможность попасть на QA: Conference Новосибирск
  • Питание во время конференции

Хотите подсмотреть что было в Москве и Питере? Добро пожаловать в наши фотоальбомы:

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


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