The 4th .NETconf was held on April 28, 2012 and was for the first time in an
online format . This allowed the participation of developers who could not fly to 3 previous meetings. During the broadcast of 7 speeches,
508 people took an active part in the conference.
Below are
6 reports and
one master class with videos, slides and links to the source code.
')
Reports
You can view the materials of all meetings at
www.dotnetconf.ru1. NHibernate. Diagnose and resolve data concurrency conflicts
Speaker:
Ruslan SafinThis report shows how to use NHibernate ORM to diagnose problems of simultaneous access to data and how to solve these problems. There are several ways to solve simultaneous data updates - merging changes while writing (if possible) and completely prohibiting data writing (if this leads to loss of changes).
The problem with simultaneous deletion of data is solved by the SoftDelete method, it is shown how this solution is best implemented using NHibernate.
Source code:
www.dropbox.com/s/f559dz0x3vl4dui/NhibernateConf.rarwww.dotnetconf.ru/Materialy/NHibernate_diagnostic
2. We go beyond the boundaries of what is permitted. NPAPI, NaCl and other scary words
Speaker:
Timur RakhmatillaevThe report will tell and show how to extend the capabilities of a standard ASP.NET MVC3 web application using a browser-based native plugin written in C ++. The application of the FireBreath framework, which allows you to easily create flexible, cross-platform and cross-browser plug-ins, will be shown. The issues of interaction of the C # managed code with the native C ++ code will be touched upon, and the possibilities for calling C ++ / C # code from the client JavaScript code of the web page will also be shown. The application of the above-mentioned technologies will be shown in the examples, one of which is a plug-in developed for the needs of an electronic document management system that allows interaction with a document scanner connected to a client computer from JavaScript code.
There will also be a brief description of other technologies related to the browser’s execution of non-specific functions: NaCl, Pepper, and a comparison of these technologies.
Test plugin code:
www.dropbox.com/s/4brqpdok43d2i8u/TestPlugin.7zwww.dotnetconf.ru/Materialy/Vihodim_za_granicy_NPAPI_NaCl
3. Practical CQRS
Speaker:
Rinat AbdullinIf you’re a little bit different, you’ll be We'll talk about these problems. CQRS limitations will also be limited.
CQRS example - .NET / C # -
lokad.github.com/lokad-cqrswww.dotnetconf.ru/Materialy/Practical_CQRS
4. Master class: We arrange server-client interaction using the SignalR library.
Speaker:
Timur RakhmatillaevWithin the framework of this master class, the use of the SignalR library for writing the simplest online chat, executed in the form of an ASP.NET MVC3 web application, will be shown. SignalR provides convenient means for making calls to client-side JavaScript code from the server side, takes over some of the work of passing parameters, authorizing connections, etc. Proper use of the library significantly reduces the load on the backend-code of the web application, improves the user experience when working with it.
The minimum software requirements that must be met in order to participate in the master class are the presence of Visual Studio 2010 installed, the ASP.NET MVC3 framework, and the extension for VS2010 - Nuget.
Source code:
github.com/Eskat0n/dotnetconf-signalr-exampleSource code at the time of completion of the broadcast:
github.com/downloads/Eskat0n/dotnetconf-signalr-example/28.04.2012.7zwww.dotnetconf.ru/Materialy/SignalR
5. Structuring tests according to the Arrange-Act-Assert principle
Speaker:
Artem SmirnovI am going to consider ways of structuring tests in systems of varying complexity, as well as the evolution of this structure in the process of system development. I will show how such a structure naturally follows from the basic requirements for tests, and what compromises are possible in various situations.
Source code:
github.com/gregoryyoung/Simple.Testingwww.dotnetconf.ru/Materialy/Test_Arrange_Act_Assert
6. Design by contract
Speaker:
Sergey TeplyakovThe program itself cannot be correct or incorrect, it all depends on what it really needs to do. But since information about what the program should actually do is often smeared across diagrams, code, and unit tests, it can be quite difficult to understand “if I didn’t break something today”. Contract design is a more formal way to state what a particular class requires from its customers, and what it is willing to give in exchange.
www.dotnetconf.ru/Materialy/Programming_By_Contract
7. Design & Process Models
Speaker:
Evgeny KrivosheevToday we are solving increasingly complex tasks within the framework of development, and often technical and process decisions are made incorrectly, which leads to inevitable retribution. We often can not make decisions, look around - solid questions “Scrum or Kanban? How to put the process so that there is no technical debt? How to teach architects to make informed and correct decisions? What process and engineering practices should be used? ”
The problem is aggravated by the fact that the process and technical parties do not understand each other, are not able to support each other and become one. Risks and responsibilities are shared between participants unreasonably and ineffectively.
As a way out of this situation, I would like to offer a simple and understandable framework for the formation of processes and elaboration of high-level architecture. So that technical solutions are reasonable and effective, and process techniques support, rather than interfere with, developers. The proposed approach will also make it possible to develop a common and holistic conceptual apparatus, indispensable for quickly solving complex problems in our conditions of uncertainty.
www.dotnetconf.ru/Materialy/Design_Process_Models
Reviews
I received
76 reviews . Thanks to everyone who took the time to share their opinions! Most wrote detailed comments on organizational issues and content of reports.
In the questionnaires, the developers said that I would like to:
- Hear experience with high loads
- CQRS theme development
- I would like to hear more about Design & Process Models and with examples from real projects.
- Master classes on the organization of the development process using TFS or other CI servers, automation of Web Deploy tasks, DB projects
- More reports on more focused topics (for example, “NHibernate rake” or “Javascript tips and tricks”)
- Game Design and Kinect
- DevExpress, it would be very nice if the guys from there could take part and told for example about XPO or XAF
- Design, namely about new approaches
- More reports on the practical application of integration and acceptance testing, in particular, in web applications
- Application Domain Design
- Practical examples of contract design
- More live coding
- Design Patterns
- Pay more attention to the integration of C # projects with leading open source developments. For example, interested in working from C # with Apache Hadoop
I promise to consider wishes on organizational issues for the next meeting.
Presents
As gifts this time there were 2 sets of licenses for .NET-products from JetBrains. Each kit includes: ReSharper, dotTrace Performance, dotTrace Memory and dotCover. I would love to give one of them to myself :)
As promised, these prizes were raffled on feedback forms and got:
- Ramil Kadraliyev
- Alexander Milikovski
Congratulations on your purchase! They have been sent instructions on how to receive the prizes by mail specified in the feedback form.
Continuation
Judging by the reviews, you need
to continue the format of .NETconf online. The peculiarity of our meetings is that only
practicing programmers or trainers are invited to the speakers. Reports need to share their work experience. This is a conference from developers to developers.
Participation in all meetings was and will be
free . Maintenance takes place at the expense of donations (there is a button on the conference site in the right column), so no one can tell from above which reports I take and which contradict our interests.
If you are practicing development under .NET, then write me a topic you want to speak with and I will arrange another meeting. My contacts
www.dotnetconf.ru/Contacts