Category: C#

IMDb Scraper

IMDb Scraper is a simple library for extracting a movie title and year from a IMDb ID. Installation (.NET Framework 4.6): Install-Package ImdbScraper Example: var repository = new Repository(); var result = repository.GetMovie(87332); Console.WriteLine(result.ToString());  

Read More

Fem inlägg om C# på Nethouse-bloggen

Jag har skrivit fem inlägg om C# på Nethouse blogg som jag tänkte be att få dela med mig av. Kortare kod med mönstermatchning i C# 7 Förenklad hantering av funktioner som producerar multipla värden i C# Skalning i MonoGame Late binding i C# Lazy evaluated string interpolation Uppdatering 2017-09-22: Kort kod och syftningsfel Uppdatering […]

Read More

Entity Framework 6

Entity Framework 6 (EF6) är mycket enkelt att komma igång med. För att få tillgång till aktuell version, använd Nuget-paketet EntityFramework. Den här bloggposten visar det minsta man behöver veta för att komma igång med EF6 i sitt program. Install-Package EntityFramework Dessutom behöver du ha en tom databas att jobba mot. I detta exempel antar jag […]

Read More

Skala upp Monogame

När man bygger retrospel med en upplösning på omkring 320 x 200 pixlar, vill man gärna skala upp spelet så att sprites och andra objekt inte blir så små på en modern skärm. För den som programmerar Monogame finns flera lösningar. Jag tycker att den enklaste metoden är att använda ett transform matrix. När jag debuggar […]

Read More

Labyrint (recursive backtracking)

Jag har börjat arbeta med ett datorspel i kategorin roguelike. Varje spel ska vara unikt, så kartan genereras när en användare spelar spelet. Vid uppstart skapar jag en labyrint som sen används som kontur för rummen som genereras efter behov. De rum som spelaren inte besöker behöver man trots allt inte hålla i RAM, men […]

Read More

Lite nyheter i C# 7: Lokala funktioner

Till en viss grad har man kunnat skapa lokala funktioner i C# under en tid. public void DoSomething() { Func<int, int> d = (x) => x * 2; for (var i = 1; i <= 8; i++) Console.WriteLine(d(i)); } I C# 7 kan man skapa fullvärdiga funktioner i en annan funktion. Det enda som egentligen […]

Read More

Lite nyheter i C# 7: Tuples

Om jag vill skapa en funktion som skickar tillbaka två värden, kan det lösas med en tuple. I .NET Framework är tuples implementerat som en generisk klass. Denna funktion skickar tillbaka en int och en string: public static Tuple<int, string> DoSomething() { return Tuple.Create(10, “Hello”); } Ett anrop som tar emot svaren skulle kunna se […]

Read More

List invocations in constructor

This example shows how to list the method invocations in a C# file. This is the file that will be read: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { public class MyClass { public MyClass() { Console.WriteLine(“Hello.”); DoSomething(); DoSomethingElse(); } private void DoSomething() { } private void DoSomethingElse() { } […]

Read More

Parse Transact SQL

To parse T-SQL from C#, add a reference to the following libraries (listed under Extensions, not under Framework): Microsoft.Data.Schema.ScriptDom Microsoft.Data.Schema.ScriptDom.Sql My examples imports the following namespaces: using System; using System.Collections.Generic; using System.Linq; using Microsoft.Data.Schema.ScriptDom; using Microsoft.Data.Schema.ScriptDom.Sql; using System.IO; This code shows how to parse a boolean expression: //Parse var p = new TSql100Parser(false); IList<ParseError> err; […]

Read More

CodeSearchTree use case: Read constant values

For this example, I am using Visual Studio 2015 Community edition to create a console application.  Make sure that you are using .NET Framework 4.6 or later. Let’s say that you have a .cs file with constants that looks something like this: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MySystem { […]

Read More

Snittvärde

Jag fick en fråga om att räkna ut snittvärden. Det finns olika sätt att lösa det på, där det enklaste kanske är att använda Excel för att göra ett enkelt datablad. Jag tänkte visa hur man kan göra i C# för att få en start till ett registerprogram. För detta använder jag Visual Studio 2015 […]

Read More

Anropa alla klienter från ASP.NET

SignalR är ett ramverk som låter webbklienter prata direkt med webbservern via sockets, och som låter webbservern prata direkt med klienterna på samma sätt. Tack vare SignalR kan du göra funktionsanrop direkt till de användare som för tillfället råkar surfa på din hemsida. SignalR bygger ovanpå ramverket OWIN för ASP.NET. I detta exempel arbetar jag […]

Read More

Om aktörer

Det finns tre olika typer av aktörer i Akka .NET. Nedan använder jag en ReceiveActor som utmärker sig genom att den använder funktionen Receive för att ta emot ett meddelande. Exemplen som följer förutsätter att namnrymden Akka.Actor är inläst. Alla aktörer har en sökväg som är oberoende av vilken CLR-klass som beskriver dem. Givet att […]

Read More

Schemalagda meddelanden i Akka .NET

Denna gång tänker jag använda en Windows Forms Application för att visa schemaläggaren i Akka .NET. Som vanligt, för att komma åt Akka .NET i ditt projekt, växla till fönstret Package Manager Console och skriv Install-Package Akka. Om du inte ser Package Manager Console, klicka på rullgardinsmenyn Tools, välj Library Package Manager och Package Manager […]

Read More

Akka .NET Remote duplex

Jag har tidigare visat hur man skickar enkla meddelanden med Akka .NET Remote. Exemplet bestod av tre projekt, en server, ett datalager och en klient. Här tänkte jag visa hur man använder Akka .NET Remote för att både skicka och ta emot meddelanden. I detta exempel återanvänder jag servern BioServer och datalagret BioData från det […]

Read More

Introduktion till Akka .NET Remote

Akka .NET Remote låter aktörerna i Akka .NET skicka meddelanden till andra processer genom Windows Sockets. Det innebär att ett system kan distribueras över flera processer oavsett om de ligger på samma fysiska maskin eller på en annan maskin i nätverket. Arkitekturen i Akka .NET Remote är serverfri – varje peer kan kontakta och kommunicera […]

Read More

Enkel trådning i .NET med Akka

Historiskt sett har det varit ganska komplicerat att bygga multitrådade applikationer i .NET. Rent tekniskt var det enkelt att sjösätta en tråd med hjälp av klassen System.Threading.Thread, men om mycket skulle göras började koden ganska snabbt likna spaghetti. För att minska ner koden kan man använda multitrådade delegater istället för objekt av typen Thread, men […]

Read More

Evolutionary sudoku

This is a successful attempt to use an evolutionary algorithm to generate a sudoku board. A complete board is created after usually less than a million iterations a couple of hundred generations. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var s […]

Read More