📜 ⬆️ ⬇️

Presentation of speakers of the Desktop UI & Business Application conference. Pro backend

Hello!

Today we want to talk about what interesting topics you can discuss with the speakers and find people who are not indifferent to these topics.

It's no secret that the main purpose of our conferences is to give people the opportunity to get acquainted on the basis of professional interests. Reports are food for thought and an introduction to subsequent discussions of varying degrees of detail. In our opinion, such communication contributes to the awareness of your own convictions in a deeper way, since you encounter other, sometimes diametrically opposed opinions. So what was prepared for the Desktop UI & Business Application conference?
')


First, we will present the topics related to the backend, to the server part, which will be of interest to all developers working in the field of enterprise development. Those. This WPF, and WinForm, and ASP.NET.

The history of the presentation of real data and processes in the program world has a rich and long history. We can say that everything started with transaction scripts and procedural programming. When the domain model was tried to be fully represented as a set of procedures and data that are stored in the database. In fact, everything was spinning around the tables. A step forward, together with OOP, was the development of a tabular data model, which was already represented by a data set in the program's memory. Now the tables have become the starting point in the domain logic view. Procedures were no longer declared in the global namespace, but were “attached” to a specific table, depending on their functions. Further cheapening and distribution of computers has led to the fact that computer simulation has found more and more widespread use. At the same time, complex real-world domain models needed to be displayed as simple as possible for support and expansion. So Martin Fowler proposed, and Eric Evans developed the idea of ​​Domain Driven Design, which most now adheres to, to one degree or another.

However, there is a nuance. Martin Fowler postulates that an anemic domain is inherently anti-pattern and should be avoided in every way. He contrasts it with the Rich Domain Model with integrated behavior and business logic. But is it really? What has changed since the distant 2002, when the book Corporate Application Templates was published and since 2003, when the book Domain-Driven Design: Tackling Complexity in the Heart of Software was published? Vlad Klekovkin , the main developer of the Garant company, will raise the discussion on this issue.



Plunging into the wilds of the domain region, you quickly discover that a properly designed domain model is only the beginning of the entire solution. A good domain model, be it the Rich Model or the Anemic Model, is case-by-case — this is essentially a static data cast. Any intelligent architect or interested person will quickly tell you that a dynamic model is just as important. Movement is life. Who is interested can look through Rozanski and Woods



In the .NET Framework, the movement of the real world, its events are displayed using ... emm ... events. Just like the events of our world, they come at an indefinite moment in time, but we know what should happen in principle. And here the problems begin. A bunch of subscriptions, forgotten unsubscribe - can lead to what is called Memory fog and other problems. In addition, complex interaction scenarios of different events, their filtering, processing, combination, processing in different streams involve completely different abstractions of the lower and high levels, from Monitor, ManualResetEventSlim to TaskFactory. Zoo on the road. Perhaps in many cases, the best solution would be to use Reactive Extension (Rx). The library has been around for a long time, constantly evolving and aimed just at stream processing of tasks with various nuances. Whether it is multithreading, the ability to implement the template retry and much more, but in a very compact form. Such complex examples from real practice will be presented by Andrey Dyatlov , technical PS Global. In addition, you will see how easy it is to manage time in tests in Rx. No synthetics with useless examples, only the real code.

Some alternative to Rx may be TPL Dataflow . This API set for complex data processing is included in the .NET Framework 4.5. Everyone is familiar with the TPL core, i.e. use Task <T> directly, as well as syntax sugar async / await from later releases. But the library is not the only “task” living and provides the ability to handle complex data streams based on the Actor multithreading model. And the more interesting it will be to hear a report about Rx and TPL Dataflow and ask the speakers tricky questions (read “arrange holivar”), comparing what one can and cannot another framework. This topic will be presented by Mikhail Veselov , a senior programmer from the St. Petersburg branch of Luxoft.

If we began to talk so seriously about how to handle large streams of data according to complex rules, then the question always arises where do you get the data from and where to save it. More precisely, even how to take and save them, i.e. which ORM to choose. Currently, the de facto standard is the Entity Framework, which is being actively developed and promoted, and has already reached the seventh major version. We have already expressed in the previous post that the “Golden Hammer” is not good, and we must always choose the right tool for our needs. Look around in search of new tools that might be better suited to your needs: be it MicroORM or a full-scale implementation of something in the spirit of NHibernate.

It's probably no secret to anyone that one of the most visited and loaded sites for developers is StackOverflow.com , which, in turn, uses Linq2SQL, which MS buried alive, to work with data, you can say. I admit that I still have warm feelings for Linq2SQL and it seemed to me a more convenient system. But at the same time, I admit that EF, which grew out of the “M” project, has given us new opportunities in using the CodeFirst and DataFirst templates. But no one is perfect, and we need to look for new projects and opportunities. So this new ORM will be discussed in the report of Andrei Kolchanov , technical expert of the Flexberry platform, head of development department of ITSK LLC. He will tell you what the current flagship does not suit him in the form of EF, which is why for many years they have been using their ORM for real business, including the banking segment and online payments.

For a long time ORM Flexberry was a closed development, but apparently in accordance with the recommendations of the guys from 37 Signals , it was decided to release the product to the world in order to inflict irreparable goodness. Andrew will conduct EF and Flexberry tests on the same project to show the difference in real life between the two approaches, and he is confident that he will be able to shake your confidence in the leading positions of EF.

Colleagues, no technology will provide us with a “silver bullet” to solve our problems, but we can and should look for the best tools and practices to become better. Conferences in this regard provide a good vector for development and bring together enough people to find like-minded people and come across the opposite opinion.

Come April 11 to the conference to become even more effective in solving your problems!

Source: https://habr.com/ru/post/254447/


All Articles