Best DotNext 2015 Piter Conference Papers: Part 2 (Video Inside)
5th place
Kirill Skrygan, JetBrains - ReSharper vs. Roslyn
Average rating: 4.33

It would seem that ReSharper is a Visual Studio plugin that extends the capabilities of the IDE. Roslyn is a compiler (a set of compilers). What common?
The fact is that in order to do all possible refactoring, hints, etc., ReSharper builds its own model, its own syntax tree. And that means that in it there is, in fact, half the compiler, the compiler front-end. So, it can be compared with the front-end Roslyn, which Cyril did in this report.
Cyril emphasized not in favor of Roslyn:
- ReSharper is 10 years older, it has much more features
- Roslyn works only for C # and VB, no JavaScript and other delights
- ReSharper's syntax tree is mutable and therefore fast, while Roslyn's immutable, generates a lot of memory traffic and is therefore slow.
The main conclusion that I made is that Roslyn is still a rather crude product, and almost all the diseases described by Cyril are “for children”. Time will pass and Roslin will probably get rid of all of them. Well, what will happen in reality - time will tell.
4th place
Roman Belov, JetBrains - Unit memory testing
Average rating: 4.33

Report about dotMemory Unit - framework about memory unit testing. What was in the report:
- justification of the usefulness of such a tool
- Live demo of how this tool works
- advertising!
dotMemory Unit allows you to search not only for memory leaks by writing tests describing some restrictions, but, moreover, to check how the application in runtime behaves (in terms of memory consumption) behaves as planned. For example, to control the number of objects of some type available in runtime. From the examples provided by Roma:
- hanging caches in memory (must be 0 by asserted)
- by design, there should be a singleton (asserted by 1 and exactly 1 instance), and in runtime there are several
Read more about the tool on the JetBrains blog here and here .
3rd place
Andrey DreamWalker Akinshin, Enterra - Let's talk about micro-optimizations of .NET applications.
Average rating: 4.52

We all know the famous statement of Donald Knuth that premature optimizations are the root of all evils. Suppose in your project
- Good architecture
- efficient algorithms and data structures
- memory is used carefully
- everything is fine with I / O and networks
- but still slows down
What to do? That's right, you need to begin to understand how that piece of code that eats up all the processor time from you really executes in your runtime. Andrei sorted out and learned a lot of interesting things about how runtime and, in particular, various JIT compilers (legacy JIT x86, legacy JIT x64, RyuJIT) do in various cases.
The following examples are presented in the report:
- switch block operation
- readonly fields
- loop unrolling
- SIMD instructions
- constant folding
- Instruction-level Parallelism
In December, at DotNext 2015 Moscow, you can hear the continuation of this report with new, sometimes completely furious, examples.
2nd place
Romuald Zdebsky, Microsoft - In the wake of BUILD 2015 - .NET platform today and tomorrow
Average rating: 4.58 The

second time in a row, Roman gave a review report on where .NET was heading. From what I noted for myself:
- which means merging all versions of Windows into one and what it means for the .NET development model
- in what directions WPF is developing and will develop in the near future
- What is .NET Core and its Cross-Platform Implementation
- ASP.NET 5
- .NET Native
- what's new in c # 6.0
Now, six months later, a lot of articles have already been published on these topics and a bunch of blog posts have been written. Win10 was released, many have already begun to write under it. If you have not started, be sure to watch this video.
1 place
Dmitry Soshnikov, Microsoft - F # magic for data processing: monads, type providers, and a bit of machine learning
Average rating: 4.59

Dmitry Soshnikov and F # are practically synonyms in Russia. Dmitry loves this language very much, has been dealing with it for a long time and loves to talk about it. The report had everything - the basics of functional programming, a few minutes of matan, an example with remote control of a turtle from Twitter, pattern recognition and a few more fun and amazing things.
The report is an excellent introduction to F # and functional programming in general.
findings
- Many .NET developers are really interested in the low-level stuff associated with the JIT compiler, runtime, threads and synchronization, C # guts and JIT compilers. High marks to the reports of Kirill Skrygan and Andrei Akinshin are a vivid example of this.
- It is not true that evangelists are not loved. If these are cool dudes like Roma Zdebsky and Dima Soshnikov, then they really love it. So holivaru is a “combat engineer vs. Evangelist ”I propose to put an end. The point is not the speaker’s specialization, but how interesting he can convey his material. Roma and Dima report cool.
References
And of course, I invite everyone to DotNext 2015 Moscow - the only .NET conference in Russia. Come to exchange experience with colleagues and ask experts about what concerns you personally. See you!