DotNext 2016 Moscow

9 декабря 2016
Москва, Россия
Конференция .NET разработчиков
Смотреть
В избранное

Dino Esposito

CTO в JetBrains

Alex Thissen

Lead developer and architect в Xpirit

Михаил Ярийчук

Разработчик в Hibernating Rhinos

Sasha Goldshtein

CTO в Sela Group

Егор Богатов

Разработчик в Xamarin/Microsoft

О мероприятии

DotNext 2016 Moscow — седьмая конференция .NET-разработчиков — состоялась 9 декабря в Москве. В программе конференции — 26 технических докладов, посвященных настоящему и будущему платформы .NET, оптимизации производительности и многопоточности, внутреннему устройству платформы .NET и CLR, профилированию и отладке .NET-кода. Кроме того, докладчики рассказывали про микросервисы, инструменты разработки и кодогенерацию на проде.

DotNext — единственная в России .NET-конференция — собирает 500 .NET-разработчиков уровня Senior/Middle.

Для кого

  • Техническим директорам
  • Тимлидам
  • Разработчикам
  • Программистам
  • QA
Поделиться

Расписание

Развернуть все
пятница, 9 декабря
День 1
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Dino Esposito

CTO в JetBrains

ASP.NET State of the Art

It is now six months since v1 of .NET Core and ASP.NET Core and the world is full of people that seem to be ready to bet the farm on it and people who wouldn't consider using it for at least a year or two. In this talk, Dino will try to summarize the firm points of both camps, try to get rid of any hype, add a bit of philosophical cynicism up to serve a yummy dish that gives you the energy to take web development on the Microsoft stack to the next level.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Alex Thissen

Lead developer and architect в Xpirit

Overview of the new .NET Core and .NET Platform Standard

Microsoft is working hard to modernize the .NET Platform. There are great new frameworks and tools coming, such as .NET Core and ASP.NET Core. The amount of new things is overwhelming, with multiple .NET Platforms (.NET Framework, Unified Windows Platform, .NET Core), multiple runtimes (CoreCLR, CLR, CoreRT), multiple compilers (Roslyn, RyuJIT, .NET Native and LLILC) and much more. This session will bring you up to speed on all this new Microsoft technology, focusing on .NET Core.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Михаил Ярийчук

Разработчик в Hibernating Rhinos

А не зашкалит сервер от 100,000 запросов/сек?

Михаил расскажет об оптимизациях в новой версии базы данных RavenDB, позволивших повысить производительность обработки запросов на два порядка. Этот, казалось бы, невозможный результат был достигнут благодаря уменьшениям зависимости от внешнего кода, с одной стороны, и «дружбе» с операционной системой с другой. В частности, аудитория послушает о "zero-copy" и адаптирующихся алгоритмах, новом подходе к управлению памятью и использовании SIMD инструкций. Кроме этого, Михаил затронет архитектуру компонентов RavenDB и расскажет, как работая вместе с командой CoreCLR Майкрософта, они смогли выжать ещё больше производительности из «железа».

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 3

Sasha Goldshtein

CTO в Sela Group

WinDbg Superpowers for .NET Developers

Sasha will be the first to admit that he has a love-hate, passive-aggressive relationship with WinDbg. If you feel that way too, this talk will help turn WinDbg into your best ally. Even in 2016, there’s still room for this powerful, lightweight debugger than you can plug into any production environment as easily as into a development system. Sasha along with participants will examine several areas in which WinDbg can give you superpowers. First, he’ll talk about WinDbg scripts and extensions that help automate boring, tedious debugging tasks – think setting a bunch of breakpoints, aggregating variable values whenever a breakpoint is hit, or searching for a specific value in a large collection. You don’t have to learn WinDbg’s horrible scripting language if you don’t want to; there are available alternatives, such as PyKD. Next, Sasha will discuss some obscure WinDbg extensions that can perform x64 stack reconstruction, print out all currently executing ASP.NET requests, and run LINQ-like queries over objects on the .NET heap. Finally, there will be a talk about some of the debugger’s core features that make it so flexible and powerful: seamless remote debugging with no authentication and domain accounts, setting up a post-mortem or pre-startup debugger, and sharing a debugging session between multiple developers — for a post-modern group debugging future!

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 4

Егор Богатов

Разработчик в Xamarin/Microsoft

C++ через C#

В этом докладе Егор расскажет, как полностью перевести объектную модель проекта на С++ в C# на примере графического 3D движка Urho3D при помощи Clang AST. Также Егор покажет, как в то же время достичь кроссплатформенности между разными платформами (iOS, Android, Windows, macOS и HoloLens) с помощью платформы и инструментов Xamarin.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Marco Cecconi

Software Engineer в Stack Overflow

Stack Overflow — It's all about performance!

Stack Overflow is one of the world’s most popular sites, serving tens of millions of programming questions and answers to more than 100 million developers every month. Complex pages are routinely served in less than 50ms. Its network has now grown to about 150 sites.

The company’s team manages to do this with very small footprint in terms of servers and with a tiny development team. In this talk Marco will cover the company’s architecture, methodology and coding principles, with real world examples and demos. Hopefully, there are some good ideas here attendees can take home and work on!!

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Сергей Васильев

Ведущий разработчик в СиПроВер

Мифы о безопасности C# кода

Ни для кого не секрет, что, программируя на С++, легко прострелить себе ногу. Безусловно, C# в этом плане лучше, но намного ли? Некоторые ошибки, возможные в С++, невозможно допустить в C#. Однако иные встречаются в обоих языках. Более того — есть ряд ошибок, встречающихся только в C#. Сергей вместе со слушателями рассмотрит, что это за ошибки и в каких известных open-source проектах их удалось обнаружить. Докладчик расскажет, как статический анализ поможет избежать эти ошибки и какие практики программирования лучше использовать.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 3

Dina Goldshtein

Senior Software Engineer в Aternity

ETW — Monitor Anything, Anytime, Anywhere

Event Tracing for Windows (ETW) is the most important diagnostic tool Windows developers have at their disposal. In this talk, Dina along with an audience will explore the rich and wonderful world of ETW events, which span numerous components including the kernel scheduler, the CLR garbage collector, the Windows UI subsystem (including XAML-specific events), request-processing frameworks such as ASP.NET and WCF, and many others. Listeners of the talk will learn how to diagnose incredibly complex issues in production systems such as excessive garbage collection pauses, slow startup due to JIT and disk accesses, and even sluggishness during the Windows boot process. Dina will show some ways to automate ETW collection and analysis to build self-diagnosing applications that identify high CPU issues, resource leaks, and concurrency problems and produce alerts and reports. In the course of the talk, innovative performance tools that haven’t been applied to ETW before will be used — flame graphs for visualizing call stacks and a command-line interface for dynamic, scriptable ETW tracing. ETW is truly a window into everything happening on your system, and it doesn’t require expensive licenses, invasive tools, or modifying your code in any way. It is a critical, first-stop skill on your way to mastering application performance and diagnostics.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 4

Вагиф Абилов

Консультант в Miles

Моя жизнь с актерами: опыт внедрения модели актеров на F#

«Весь софт — театр. И классы в нём, и типы — все актёры. У них свои есть выходы, уходы. Друг другу сообщения все шлют».

Так Шекспир писал? Вероятно, не совсем так. Неважно, этот доклад — о новых временах, настолько новых, что некоторые разработчики не вполне удовлетворены парадигмой объектно-ориентированного программирования и находят новые пути — строго говоря, вновь обнаруживают старые, поскольку речь пойдет о модели актёров.

Прошел год с тех пор, как группа разработчиков Miles приступила к разработке системы публикации медиафайлов на основе Akka.NET, функционального программирования и языка F#. Очереди сообщений и массивы данных в «облаках», миллионы файлов — всё под управлением актёров. Что было почерпнуто и выиграно? Всё это будет представлено в докладе.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Gael Fraiteur

Founder and Principal Engineer в PostSharp Technologies

Multithreading Deep Dive

In the single-core world, the lock keyword is all the vast majority of developers had to know about multithreading. But with today’s ubiquitous multi-core processors, parallel computing is becoming an increasingly important skill. Along with an audience, Gael will discuss fundamental concepts of multi-core programming as well as their implementation by the Windows operating system and the .NET Framework, and give you a rock-solid understanding of what’s happening when you’re using multithreaded features in .NET. This is not an explanation for listeners what is a lock and an event (you’re supposed to know it), but attendees will understand how this is implemented at the kernel and CPU level.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Михаил Щербаков

Independent developer в IT

Странные дела: уязвимости в .NET платформе

Все видели бюллетени безопасности от Microsoft и устанавливали описанные в них патчи. Периодически в бюллетенях мелькают уязвимости, относящиеся к .NET платформе, — про них и пойдёт речь. Какие типы уязвимостей находят в .NET Framework? Что может стать целью атакующего? Как знание о типичных атаках помогает разрабатывать защищённые приложения? Михаил вместе со слушателями доклада разберёт эти и другие вопросы безопасности .NET платформы. Будет рассмотрен код недостатков, приводящих к уязвимостям, и определены границы гарантий защищенности платформы. Михаил расскажет, какие типичные ошибки можно допустить в своих приложениях и как их избежать. Будет много демо уязвимостей, найденных в ASP .NET, .NET Remoting и в свежем .NET Core.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 3

Дмитрий Сошников

Технологический евангелист в Microsoft

Интеллектуальные чатботы и когнитивные сервисы

Создание интеллектуальных чатботов — таких чатботов, которые могут общаться на естественном языке, — является достаточно сложной, но при этом актуальной задачей. В докладе будет рассмотрено, как Microsoft Bot Framework сможем помочь нам в создании ботов, работающих сразу по многим каналам общения, и как использовать когнитивные сервисы (в частности, технологию LUIS) для придания ботам интеллектуальности.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 4

Jesse Liberty

Software developer в Liberty Associates

Typescript for C# Programmers

TypeScript is the future for web developers and especially for Angular 2 developers. It is a super-set of JavaScript, but it provides strong typing and classes, among other features. All TypeScript programs transpile down into standard JavaScript and so run anywhere that modern JavaScript does. Almost all TypeScript courses are targeted at JavaScript programmers, and the emphasis is on the object oriented aspect of the language as that is what is new for JavaScript programmers. C# programmers start in a very different place. We are comfortable with classes, inheritance and all the aspects of OOP, but are not used to scripting for the web. This course assumes comfort with C# but not necessarily with JavaScript.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Андрей Акиньшин

Разработчик в JetBrains

Продолжаем говорить про арифметику

У арифметических операций есть две важные характеристики: точность вычислений и скорость работы. От чего они зависят? На какие грабли можно наступить во время сложения и вычитания? В этом докладе вы услышите много весёлых и полезных историй про простейшие операции, которые делаете каждый день. Андрей и слушатели будут много бенчмаркать, сравнивать разные окружения, говорить про битовые хаки и денормализованные числа, смотреть на ассемблерные листинги, дискутировать про IEEE754.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Карлен Симонян

Старший разработчик в Luxoft

End-to-end JIT

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

В докладе Карлен остановится на одном из главных столпов .NET — JIT. Современные Just-In-Time компиляторы предлагают невероятные возможности, балансируя при этом между общим временем компиляции и качеством кода — CLR JIT не является исключением.

Иногда мы можем помочь/направить среду выполнения выполнения оптимизировать наш код ещё больше. Карлен вместе со слушателями доклада сосредоточатся на такого рода шаблонах, воспринимаемом JIT, увидят конкретные intrinsic-функции, подсчёт ссылок и представление некоторых ООП-концепций в машинном коде.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 3

Adam Sitnik

Software Engineer в Powel

Exceptional Exceptions in .NET

All developers know how to use try/catch/finally blocks, but do you really know how exception handling works? Or what could go wrong? What is time consuming? What is not? We'll never be able to write truly reliable software if we do not understand exception handling. In this talk you will learn hardcore details about exception handling. You will see what can be thrown and which exceptions are impossible to catch. This talk will also discuss filter blocks and stack unwinding. You'll also find out what happens when a finally block fails with exception and when finally is not going to be executed. You'll also learn how to improve reliability with Constrained Execution Regions. Last but not least, we will cover topic of Tasks's exception handling to check what happens with unhandled Tasks exceptions and how good async/await is at it. With this knowledge you can take your .NET skills to another level!

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 4

Денис Цветцих

Разработчик в One Systems

Как написать XAML-приложение без Message Bus

Разработчики XAML-приложений, будь то WPF, UWP или Xamarin, активно используют MVVM-фреймворки для упрощения жизни. Неотъемлемый компонент любого MVVM-фреймворка (популярных MvvmLight, Prism, Caliburn.Micro или хипстерских ReactiveUI, Mugen — реализация паттерна Message Bus. Этот паттерн, изначально предназначенный для интеграции процессов на бэкенде, пережил свое второе рождение на стороне UI в виде классов EventAggregator или Messenger. C помощью Message Bus предлагается передавать сообщения между ViewModel для реализации CompositeUI.

Но действительно ли Message Bus упрощает жизнь? Ведь он делает взаимодействие частей приложения неявным и запутанным.

Денис расскажет о личном опыте разработки приложений практически для всех XAML-платформ без использования Message Bus. На примерах типичных задач XAML-разработчиков спикер покажет, что любую задачу, для которой предлагается использовать Message Bus, вполне можно решить без него. При этом решение окажется более удобным и понятным. А притягивание Message Bus на UI — костыль, призванный решить проблемы, вызванные неудачным подходом к реализации CompositeUI в большинстве MVVM-фреймворков. И, конечно, Денис поделится своим рецептом, как готовить Composite UI для каждой XAML-платформы без Message Bus.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Marco Cecconi

Software Engineer в Stack Overflow

Performance tuning Stack Overflow tags

Working at scale can teach us to build better software at any scale. In this talk, Marco will show how we render lists of questions filtered by tags, selecting from millions of possible posts. The session will be starting from building an MVP using SQL, and showing how performance was iteratively optimized to the current implementation using CUDA.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Filip W

Software Engineer в Sonova

C# Scripting — why and how you can use your C# in places you never thought of before?

In this talk, Filip along with attendees will examine using C# as a scripting language. Pioneered by the scriptcs project, C# scripting has grown to become a first class citizen in the Roslyn compiler and can now be enjoyed and applied in your applications in various ways — using the embeddable assemblies, command line CSI tool, the new “dotnet” CLI, Visual Studio Interactive Window and — still — the scriptcs project. It all also works cross platform!

Filip will dissect what’s going on under the hood in C# scripting and how it can make life easier for you as a developer.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 3

Игорь Чевдарь

Разработчик .NET в СКБ Контур

Модификация кода .NET в рантайме

Игорь поговорит о способах изменения кода .NET приложения в рантайме:

  1. Хук метода после JIT-компиляции.
  2. Подмена IL метода с помощью .NET profiling API.
  3. Подмена IL метода через хук CLR на этапе JIT-компиляции.

Вместе со слушателями доклада Игорь рассмотрит, как на самом низком уровне выглядят методы .NET, что такое токены и метаданные. Будут рассмотрены примеры использования полученных знаний на практике:

  1. Докладчик и слушатели сделают инъекцию своего кода в чужой .NET процесс.
  2. Приготовят свой трассирующий профайлер.
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Получить доступ ко всем докладам
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 4

Роман Неволин

.NET разработчик в WaveAccess

F# во славу Data Science

Что нужно Data Scientist’у для полного счастья? Конечно, данные, и чем больше — тем лучше. А ещё удобный инструментарий для их обработки и анализа, возможность интерактивного взаимодействия и много разнообразных визуализаций. На платформе .NET такой инструмент — это F#.

В этом докладе будут рассмотрены возможности языка, делающие его таким привлекательным для Data Science, самые полезные библиотеки для этой цели. Также будут разобраны некоторые реальные кейсы применения.

Базовые знания F# будут полезны, но не обязательны.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 1

Dino Esposito

CTO в JetBrains

ASP.NET SignalR: Why It's Getting Really Crucial for Web Development

ASP.NET SignalR is a library that gives web applications the ability to have server-side code push content to the connected clients. This is quite a powerful feature as it enables connected clients to receive notifications (and data) of updates as it happens. The tremendous power of ASP.NET SignalR is often illustrated with a chat demo. While impressive as a demo, though, a chat is not a common type of application we write every day. In this talk, Dino will review a bunch of concrete benefits we can get from SignalR in our everyday work such as counting online users, updating multiple screens after an update, monitoring the progress of a remote task. More than everything else, though, SignalR is a critical resource for building effective event-based web architectures.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 2

Sasha Goldshtein

CTO в Sela Group

Squeezing the Hardware to Make Performance Juice

Obvious ways to get performance wins are obvious. By the end of 2016, every .NET developer should know about concurrency and parallelism, ORMs and web response caching, efficient collections and garbage collection internals. But there are so many performance wins ripe for the picking that most .NET developers don’t know about. This talk is all about squeezing the best performance out of modern hardware. And modern hardware is about vectorization in addition to parallelization; modern hardware is about optimizing your instruction flow and data layout for last-generation instruction sets and cache structures; modern hardware is understanding that using 4 cores is not the same thing as using 44 cores; modern hardware is about using tools to determine where bottlenecks lie and not about guessing. This talk dives deep under covers of your processor and memory system to deliver top-notch performance, all while using C# and .NET. We will see multiple examples of optimizing CPU- and memory-bound algorithms that are used in real-world applications, such as finance, image and signal processing, and many others.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 3

Никита Цуканов

CTO в Promarket

Собрать всё, или Знакомимся с Cake (C# Make)

После сборки проекта Visual Studio, используемый ей MSBuild оставляет нас наедине с набором откомпилированных исполняемых файлов. Но понятие сборки и связанные с ним задачи включают в себя нечто большее. Бывает, нужно запустить тесты, выполнить преобразования типа ILMerge, подготовить nuget-пакеты, подготовить установочные пакеты, автоматически задеплоить на тестовое окружение, иногда перед сборкой в систему нужно что-то доустановить. При большом желании можно частично интегрировать это в сам файл проекта и запускать, но получается негибко, сложно, непонятно. Поэтому обычно это делается либо вообще вручную, либо набором разрозненных powershell-скриптов (в запущенных случаях это bat/cmd), прочитать и понять которые может один человек в команде, который их и писал. При использовании каких-то внешних утилит, таких как WiX или NSIS, скрипты часто предполагают, что их в систему кто-то уже установил, процесс часто нормально не документирован, в итоге если ответственный за сборку ушёл в отпуск и пропал со связи, возникают проблемы с тем, чтобы просто собрать всё по порядку до состояния установщика на «чистой» машине. Сами же скрипты — некоторая каша, так как PowerShell изучают на уровне, ровно необходимом для решения поставленной задачи хоть каким-то образом. А если у нас мобильное приложение и нужно его собирать на билд-агенте с Mac OS X, то помимо powershell-а появляется ещё один набор скриптов уже на bash.

Также встаёт проблема сложности процесса сборки. Процесс этот многоэтапный, а этапы — зависимые друг от друга. У нас могут быть разные цели при сборке проекта, требующие выполнения разного набора этапов (например, мы можем хотеть только запустить тесты или только подготовить итоговую сборку и выполнить деплой), и это в скриптах надо учитывать. Для работы с набором задач с зависимостями люди придумали системы сборки, самой известной и распространённой является Make. Основная проблема с их использованием заключается всё же в чужеродном синтаксисе и сохранении ряда присущих скриптам недостатков.

В докладе пойдёт речь о Cake — C# Make, системе сборки, позволяющей писать сборочные скрипты на обычном и понятным всем в команде C#, предоставляя при этом обширный набор DSL к разного рода часто используемым сборочным утилитам, которые система к тому же умеет самостоятельно загружать из интернета или же находить в системе нужную версию, что актуально, например, для MSBuild.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €
Секция 4

Илья Фофанов

Разработчик в EngineerSpock

Подводные камни Date & Time

Даты и время окружают нас повсюду: календари, наручные часы, они повсюду. Поэтому практически в любой программе разработчики сталкиваются с необходимостью выражать время, манипулировать датами и временем. Для того, чтобы грамотно манипулировать датами и временем  необходимо знать как устроены часовые пояса, в первую очередь. Казалось бы, это несложно, однако дата и время скрывают огромное количество подводных камней сами по себе, в отрыве от какой-либо плафтормы разработки. Что уж говорить про подводные камни, которые привносятся типами, представляющими значения даты и времени.

В докладе Илья расскажет о всевозможных странностях, связанных с датами и временем: отсутствием дат при переходе с одного календаря на другой, особенностях вычисления возраста человека, проблемах планирования будущих событий, арифметике на датах и времени и многом другом. Спикер расскажет о плюсах и минусах поставщиков данных по часовым поясам, проблеме парсинга, покажет недостатки стандартных типов: DateTime, DateTimeOffset. Также Илья покажет, как можно избежать большинства проблем и расскажет о преимуществах библиотеки Noda Time. Отдельно спикер поговорит о лучших практиках работы с датами и временем.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Jesse Liberty

Software developer в Liberty Associates

What's new in C# 7?

In this talk Jesse and attendees will put the latest release of C# into perspective. During the session all the latest features of C# 6 and 7 will be covered. Topics will include the null conditional operator, initialization of automatic properties, NameOf expressions, string interpolation, the using static directive, enhanced uses for async and await and all the new features in C# 7.

Jesse will discuss no only what these are, but how developers would use them in real world programming, and he’ll create an example that makes their value clear.

Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Билеты

Видеозапись
Доступ к записям всех докладов
Куплено
В корзине
0 ₽
0 ₽
0 $
0 $
0 €
0 €

Организатор

JUG.ru
https://jugru.org

Организационный комитет: JUG.ru, info@jugru.org, 78126802918

Похожие мероприятия

23 сентября 2017
Докладов 15
Просмотров 1
.net, .net, dev, development, dotnet, qa, по, программирование, разработка, софт
19-20 мая 2017
Докладов 29
Просмотров 4
.net, dev, development, dotnet, qa, по, программирование, разработка, софт
3 июня 2016
Докладов 23
Просмотров 3
.net, dotnet, qa, по, программирование, разработка, софт, тестирование
показать ещё