Event systems in Unity3D

Good day!
 
Today I would like to briefly talk about the use of events to get rid of garbage and provide complex and dynamic functionality to the code. It should be noted that this article is aimed primarily at beginners who want to learn more about systems of events.
 
 
We will analyze this whole matter on the example of a sound control system. This system will allow us to enable /disable music and sounds in the game settings.
 
 
 
Before we create a class manager that will manage sound and music settings, we'll create a simple serializable class. It will be used as a data model for saving ...
+ 0 -

Our experience of migrating the Visual Studio extension to Visual Studio code

Our experience of migrating the Visual Studio extension to Visual Studio code  
 
Just three years ago, for the programmer on the stack of technologies from Microsoft, there was no problem in choosing the development tool. Today the picture has changed and Visual Studio Code acts as a real alternative to classic Visual Studio and provides functionality that puts it much closer to the IDE than to the text editor. Free, cross-platform and open source, this editor enjoys well-deserved respect from the community of software developers.
 
 
This article describes our experience in assessing the possibility of migrating one of the functions of our internal VS plug-in to the Visual Studio ...
+ 0 -

The speed of the compiled Linq Expression Tree

Here in this article in the comments there was not something to the dispute, but some "no convergence" in comparing the speed of IL Emit and the compiled Linq Expression Tree.
 
 
This mini article is the speed test code + the results of running this test.
 
 
For the test, a code was selected that intersects with the contents of the original article - serialization of the string length into the stream, and then - of all bytes of the string encoded in UTF-16 (Encoding.Unicode).
 
 
The serialization code itself may not be the most optimal, but it's close to if you do not use unsafe constructs.
 
 
The co...
.NET / C#
+ 0 -

Life a year after the introduction of robots: until the equality is not asked for

Rise of the robots. It seems that this is something incredible. And even if probable, it will not happen soon. However, it is worth considering - the robot staff of our partners for the year grew by 22 cars. And they obviously are not going to stop. And suddenly the next modernization will go not according to plan and the robot will refuse it. Or say that he is tired of working in accounting. More under the cut!
 
 
Life a year after the introduction of robots: until the equality is not asked for  
The button - Back-office for entrepreneurs. We keep accounting, solve legal issues and take away routine. [/i]
 
 
This article is a continuation of this: [leech=https://habr.com/company/microsoft/blog/327554/] ...
+ 0 -

DotVVM - Communication between client and server

DotVVM - Communication between client and serverThis is the second article in the series dedicated to DotVVM. The first article is was more familiar. I tried on a simple example to show how to work in DotVVM on a basic level. The article, in fact, did not touch upon the most important thing: how it works.
 
 
This article is devoted to this issue and also to the optimization of traffic.
 
much more than .
 
 
Sending all ViewModel with every postback is not very effective. In order to somehow reduce the amount of data sent, DotVVM has several approaches.
 
 

Attribute Bind


 
The Bind attribute allows the compiler to specify ...[/h]
C# / .NET
+ 0 -

OutOfMemory and GDI + sometimes not at all OutOfMemory

During the last project at work, my colleague and I encountered that some methods and constructors in System.Drawing fall from OutOfMemory in completely normal places and when there is still a lot of memory free.
 
referencesource.microsoft.com . There will be the following:
 
public LinearGradientBrush (PointF point? PointF point? Color color? Color color2) {
IntPtr brush = IntPtr.Zero;
int intact = SafeNativeMethods.Gdip.GdipCreateLineBrush (
new GPPOINTF (point1),
new GPPOINTF (point2),
color1.ToArgb (),
color2.ToArgb (),
(int) WrapMode.Tile,
? out brush
);
if (status! = SafeNativeMethods.Gdip.Ok)
throw ...
+ 0 -

Quickly configure Continuous Integration for .NET Core using Travis-CI. Very short

Quickly configure Continuous Integration for .NET Core using Travis-CI. Very short
 
For some requests, I publish a very short extract of my previous article on setting up Continuous Integration, but "as a checklist for C #." At the same time he added several alternatives to Travis.
 
Reading takes no more than 3 minutes, who cares - I ask under the cut.
.NET Core SDK . Create a new repository and project.
 
dotnet new sln --name CIDemo
dotnet new web --name web
dotnet sln CIDemo.sln add web /web.csproj

 

Add a .travis.yml file to the project's root folder.


 
    language: csharp
dotnet: ???
sudo: false
env:
global:
- DOTNET_CLI_TELEMETRY_OPTOUT: ...
+ 0 -

Working with EventSystem in Unity. Basic things in working with UI

Hello! I have not written anything for a long time, but now I wanted to tell you about a very convenient thing that many people do not know about. This is an Event System in Unity. Many, for tasks in which the EventSystem is very convenient, use the usual Raycast. I'll talk about how to use part of the EventSystem functional (there are actually a lot of it) and how this tool allows you to quickly solve many tasks associated with processing the events of interfaces and objects. As always with a repository with examples. If you are interested - welcome to the cat!
 
 
Working with EventSystem in Unity. Basic things in working with UI ...
+ 0 -

As we at Tinkoff used Windows Hello to authenticate the user

As we at Tinkoff used Windows Hello to authenticate the user

 
Windows Hello - a technology for biometric authentication of the user by fingerprint, eye retina, three-dimensional face scanning and even the venous palm pattern.
 
In the field of financial services, it is important to ensure an unmistakable and secure authentication of the user. For authorization, we use a two-factor system from the login and password bundle or the phone number and password with the confirmation by the code sent to the attached mobile phone number. To further simplify access to the authorized zone, a 4-digit PIN is used.
 
 
After authorization and creation of the PIN-code...
+ 0 -

Spring Mitapas (and one year old) from Alfa-Bank

Spring Mitapas (and one year old) from Alfa-Bank

 
On Friday, it is customary not only to change passwords on critical items, but also to make plans for the next week. Or at least try to do it.
 
 
If you have free time left, we invite you to our spring mitapes:
 
 
 
IBMi-MeetUp: auto-testing on IBMi
 
React Moscow Meetup 4
 
Quality communication: pain in testing
 
MskDotNet Meetup
 
 
Details under the cut.
 
The event page is
 
 
List of reports, Alfa-Bank:
 
 
 
"The Orchestra of Autotests"
 
"Automation of functional testing"
 
"Using C /C ++ on IBMi"
 
"Declarative ...
+ 0 -