DotNet

  • .NET Versioning Riddle

    We have a .NET application compiled with .NET Framework 4.5 as a target. The riddle is: why does this application work on Windows 7 with only .NET Framework 4.0 installed but not on Windows Server 2003 with the same .NET Framework 4.0 installed? The answer it twofold. The first part is easy: 1. Why does the application compiled with .NET Framework 4.5 as a target even works with .NET Framework 4.0? It is because the CLR is still the same. It is 4.0. Have a look with ildasm at a simple exe or dll targeted for .NET Fraemwork 4.5 and you will see: So the app will work but, as…

  • What is IL – practical example

    I’m sure you know your C# code is not directly compiled into machine code and ran. It is first converted into IL. CIL to be precise. Its stands for Common Intermediate Language. This CIL is then assembled into bytecode and compiled by JIT (Just-in-time compiler) into executable machine code. So much for the theory, but have you ever tried to mess with IL yourself? Not? Lets try it. Run the Visual Studio Command Prompt from the start menu. Find yourself suitable directory to tinker around. Create a program, compile it and run: C:\Dev\ilmagic>copy con p.cs public class p { public static void Main() { System.Console.WriteLine("Hello console!"); } }^Z 1 file(s)…

  • I will be speaking at CIDC 2015 in Orlando, Florida

    I was invited to give a talk at the CIDC 2015 in Orlando, USA. CIDC is annual Clarion International Developers Conference. I will be speaking about the Microsoft .NET and Clarion integration. The talk is prepared together with the C.I.C. Software GmbH and my company (CODEFUSION). The Clarion part is supervised by Andrzej Skolniak from the C.I.C. We will be giving the speech together. We will be talking about various interoperability solution between .NET and Clarion tried out in one of the projects my company I co-developing with C.I.C. Software. The interoperability solution that is based on unmanaged exports – modified .NET libraries that are accessible form Clarion. The managed…

  • Developer Week 2015

    Third time in a row I will be speaking at Developer Week 2015 in Nuremberg, Germany. This year I will not do it solo. I’m going with the CODEFUSIONs Head Developer Marcin Słowik and we will be speaking about creating professional style user controls in WPF like the guys at Telerik or Infragistics do it. Please joins as between 15th and 18th of June 2015 in Nuremberg!

  • Scaling CI–switching poll to push

    Scaling CI has many flavors. For example: When: Code base / test no. increases -> build time increases, Teams grow, No. of projects grows. Then: Create targeted builds (dev build, qa build), Write fast unit tests, Smaller teams with local integration servers, Modularize the code base: Scale hardware, Add more build agents, Parallelize. and last but not least: Ease the source control system. Let me show you how to make Subversion and (TFS) Git pro actively inform Jenkins CI about changes in source control. The most straight forward way to let the CI server know that something changed in the repository is to configure polling. What it means is that…

  • Vanilla build server and a little NuGet gem

    Vanilla build server is a concept that says that the build server should have as few dependencies as possible. It should be like vanilla ice cream without any raisins (I have raisins in ice cream). Let me cite the classic (from: Continuous Integration in .NET): “It’s strongly suggested that you dedicate a separate machine to act as the CI server. Why? Because a correctly created CI process should have as few dependencies as possible. This means your machine should be as vanilla as possible. For a .NET setup, it’s best to have only the operating system, the .NET framework, and probably the source control client. Some CI servers also need…

  • .NET Developer Days 2014 Conference

    I will be speaking at .NET Developer Days 2014 in Wrocław, Poland. The conference will be held between 14th and 16th October 2014 at the City Stadium in Wrocław. The topic is “Continuous integration and deployment in .NET with Jenkins CI and Octopus Deploy”. Here is the conference website: http://developerdays.pl/.

  • WCF services behind NAT problem and solution

    Problem: We have a set of WCF services working on a server. We have an ordinary ASP.NET page that calls one of the services to display its state. When we call that page we is supposed to look like this: Green page indicates everything works fine. At a customers we’ve installed the services. The message was: There was no endpoint listening at http://…/Services/BasicDataService.svc/DeliverServiceState that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. We quickly discovered that there was nothing wrong with the services. Our app worked fine and we were able to call the “.svc” endpoint…

  • Pictures from DWX’14 conference

    This year I was once again an invited speaker at the Developer Week conference in Nuremberg, Germany. I was speaking (in German of course) about the basics of hardware programming in .NET. Developer Week is biggest developer conference in Germany: 250 session, 150 speakers. It consists of .NET Developer Conference (DDC), Web Developer Conference (WDC) and Mobile Developer Conference (MDC). Here are some pictures from the conference. Developer Week 2014 VIEW SLIDE SHOW DOWNLOAD ALL

  • Waiting for the first .NET wrist watch

    Almost a year ago there was a Kickstarter campaign to found a first .NET Micro Framework watch: Agent smartwatch. Nice thing about it is that you will be able to program it using C# and Visual Studio. While we are still waiting for the product there is a SDK with an emulator. It is from the same guys that gave us Netduino! I decided to check it out. Think about it: you have a Continuous Integration server running your builds and you want to monitor it on the fly. Is there a better device to do it than a wrist watch? So I thought and decided to check it out.…