ReSharper: Using [NotNull] to generate better code

If you’re a ReSharper user I think this can be very usefull technique in identifying bugs in your code from the very early stage

Christian Harlass's Blog

My all-time-favorite VS plugin, ReSharper, has amongst all the features one which gets hardly noticed: The Annotation Framework and it’s influence on code generation.

The Annotation Framework is a set of “hints” which can be applied to your code, either directly in form of Attributes or stored as an an external XML file (the ReSharper team was using the later method to enhance the .Net Framework libraries). The attributes, which I usually use, are NotNull and CanBeNull. There are some more but those two give you the greatest benefit.

To use them, add at first a reference to theJetBrains.Annotations.dll to your project. It can be found in the ReSharper installation folder (better add a copy to your project and SCM though).Then you can already start annotating your code, such as:

Pretty self-explaing, isn’t it? When trying to assign then null to the person’s name, ReSharper will give…

View original post 86 more words

Phantom 4 Advanced

Drone Users Anonymous - Feeding the drone addiction

Just two days ago I bought myself Phantom 4 Advanced. I debated within myself whether I needed all the features of Phantom 4 Pro and decided that the extra pair of anti collision sensors plus the ability to use 5.8Ghz spectrum wasn’t worth it. I noticed in all the screenshot from Phantom 4 Pro that everyone still uses 2.4GHz. 5.8GHz is designed to be used in built up areas. Due to the fact that the whole area where I live use the same ISP, which provides 5.8Ghz routers as standard it wouldn’t have helped me. Out in the open you would still want to use 2.4GHz as it provides a superior range. In the end the deciding factor was the deal that I managed to get on eBay – I got a brand new Phantom 4 Advanced for a mere £700. How and why would someone want to sell a…

View original post 624 more words

A morning with new Phantom 4 Advanced

Got up at 3am yesterday to take the new drone for a spin. Went to a lake, canal, mountain drawing, windmill and a hill.

Had a really close call first thing in the morning when the drone went into the brunches of a tree. No way did I think it would be able to survive that and I thought it would plummet into the canal under the tree. To my surprise the drone came unscathed! No propeller damage, just dirt from the tree. Phew! Great job DJI!

Again the collision avoidance just made things worse! It is now permanently turned off.

The parabolic reflectors seem to decrease the range rather than increase it, so they are going to the bin.

Positives: managed to clock about 2 hours of flight. Phantom 4 Advanced seems to get along very well with Phantom 4 Ver 2 propellers and I’m averaging 29-30 minutes of flight time with 10% to spear!

Got a lot of great footage, which needs to be cut, edited, colour graded etc.

Some photos from yesterday:


Still can’t believe how great the camera on the drone is. 1 inch sensor is definitely worth it. The UHD footage looks unbelievable on 4K monitor!

Efficient linked lists in .NET

Exercises in .NET with Andras Nemes

Sometimes you need a collection that’s modified a lot: you insert, update and remove items. A List of T is then inefficient as it needs to constantly rearrange all other items. The LinkedList class might be a better candidate.

A linked list is a doubly-linked list. Each item has a Next and Previous pointer to look at which element comes right before and after a particular object in the list. A linked list is very efficient at inserting and deleting items in particular.

Initialisation:

View original post 181 more words

SQLite EntityFramework 6 Tutorial

ErazerBrecht's Blog

Hello,

UPDATE 13/10/2015/
I made another post about MVVM and EntityFramework. After reading this, you should really check that one out!
It’s really worth it to use MVVM 🙂
Link to another post: Click Here

I’ll explain the basics to get SQLite working with EntityFramework 6. It’s a straight forwarded tutorial / explanation. I will not tell you everything about EF (there are a lot of tuturials on the web). Instead I’ll show you the most basic example to get EF working with SQLite, after all it wasn’t that easy!

View original post 1,783 more words

Mocking Entity Framework DbContext with Moq

Mirko Maggioni

When we have to test methods that involves Entity Framework, a typical choice that we have to face is use integration tests, with an effective database, or unit tests.

If we choice the first option, with a database like SQL LocalDB, we’ll have performance problems because the cost of the database creation and the data inserts in the test startup is very high, and in order to guarantee the initial conditions we’ll have to do it for each test.

What we can do is use a mock framework that help us to mockup the entity framework context; it would be an in-memory db context, like the in-memory db context of .NET Core, that we have seen in this post.

The factory

In pratice, mocking a class means substitute the real implementation of a method with our custom behaviour; what we can do for every method of the class is…

View original post 482 more words

C# Regrets: Top Worst C# Features

Stumbled upon this article written by no other than Eric Lippert listing the top 10 design faults of C# language. Here is the summary,  the source to the full article is at the bottom. 

#10: The empty statement does nothing for me

Reflects on the fact that lone “;” is a legal statement

#9: Too much equality

There are too many ways check for equality: ==, Equals, ReferenceEquals, CompareTo(…).

From personal experience double.NaN == double.NaN is false but double.NaN.Equals(double.NaN) is true

#8: That operator is shifty

Weirdness around << and >> operators

#7: I’m a proud member of lambda lambda lambda

The way C# 2.0 implements anonymous delegates

#6: Bit twiddling entails parentheses

Flags Enums

#5: Type first, ask questions later

C# borrows the “type first” pattern from C and many of its other successor languages – something I got used to and the “correct” way now seems illogical to me

#4: Flag me down

The fact that you can create invalid enum values and have to manually check for this in the code

#3: I rate plus-plus a minus-minus

++i, i++, i +=1 etc. how much confusion and the pain it caused.

#2 I want to destruct finalizers

Agree with the author that finilisers in C# are symptoms of a bug. Seen it way too many times myself.

#1 You can’t put a tiger in the goldfish tank, but you can try

“array covariance” and how this could lead to run-time exceptions.

Source: http://www.informit.com/articles/article.aspx?p=2425867

Blog at WordPress.com.

Up ↑