The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,860 other subscribers

Archive for the ‘C# 5.0’ Category

Inversion of Control via constructor argument passing

Posted by jpluimers on 2015/06/18

Inversion of Control example video on YouTube: business class is not in control of the DAL.

It uses C#, but the code is so simple that every programmer should be able to get it.

Uses:

  • interfaces
  • parameter passing through constructor
  • moving control decisions out of the business class

Inversion of Control (IoC) can later be amended by Dependency Injection (DI), but IoC can easily without that be used very effectively without DI.

I wish the What is…? series had more than 1 episode, but Christian Richards does have some interesting series about game development.

–jeroen

via: duidelijk voorbeeld.

Posted in .NET, .NET 1.x, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 1.0, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Development, RemObjects C#, Software Development, VB.NET, VB.NET 10.0, VB.NET 11.0, VB.NET 7.0, VB.NET 7.1, VB.NET 8.0, VB.NET 9.0 | Leave a Comment »

The unknown beauty of shared projects in .NETGeert van Horrik

Posted by jpluimers on 2015/06/02

Interesting:

Shared Projects

Shared Projects are a new feature of Visual Studio 2013 Update 2. It was initially created to support universal apps apps for both Windows Phone RT and Windows RT, and that’s what most people know about it.

However there is also this genius Visual Studio extension that allows Shared Projects on any .NET project. It means that you can create a project shproj that contains a list of C# files. This file can be referenced by any project and will be included at compile time.

With Shared Projects you are always able to debug through any references code. This makes it very easy to find and fix issues or test new features.

Note that in Visual Studio 2015, this is an official feature: Shared Project : An Impressive Feature of Visual Studio 2015 Preview.

Thanks Matthijs ter Woord for noticing that.

–jeroen

via: The unknown beauty of shared projects in .NETGeert van Horrik.

Posted in .NET, .NET 4.0, .NET 4.5, C#, C# 4.0, C# 5.0, Development, Software Development, Visual Studio 2013, Visual Studio and tools | Leave a Comment »

Batch file: Finds the location of xsd.exe by running the vsvars32.bat of the youngest installed Visual Studio

Posted by jpluimers on 2015/05/12

Boy, Microsoft made it hard to find the location of xsd.exe!

It is actually located like here:

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\xsd.exe

But that is nowhere on the default path, nor in the registry.

What happens during installation of Visual Studio and/or the Microsoft SDK, is that the vsvars32.bat file of Visual Studio is updated so it can add the location of many tools (including xsd.exe) to the PATH.

So the trick is to find the youngest Visual Studio first, then run the according vsvars32.bat, and then xsd.exe is on the path.


:: Dynamically finds the installed xsd.exe, then calls it with the passed parameters
:: test these environment variables that have 110 or 120 in them (future enhancements: support more Visual Studio versions):
:: Visual Studio .NET 2002: VS70COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio .NET\Common7\Tools\
:: Visual Studio .NET 2003: VS71COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio .NET 2003\Common7\Tools\
:: Visual Studio 2005: VS80COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\
:: Visual Studio 2008: VS90COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\
:: Visual Studio 2010: VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\
:: Visual Studio 2012: VS110COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\
:: Visual Studio 2013: VS120COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\
:: They contain `vsvars32.bat` which will update the `PATH` so it includes where `xsd.exe` resides
setlocal enabledelayedexpansion
:: delayed expansion allows for the exclamation marks
:: see http://ss64.com/nt/delayedexpansion.html
:: see http://stackoverflow.com/questions/22857407/windows-batch-how-to-assign-variable-with-dynamic-name
for %%v in (70 71 80 90 100 110 120 130) do if not [!VS%%vCOMNTOOLS!]==[] set VSCOMNTOOLS=!VS%%vCOMNTOOLS!
call :do call "!VSCOMNTOOLS!vsvars32.bat"
call :do where xsd.exe
xsd.exe %*
endlocal
goto :eof
:do
echo %*
%*
goto :eof

view raw

Run-Xsd.exe.bat

hosted with ❤ by GitHub

–jeroen

via:

Read the rest of this entry »

Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Development, Software Development, Visual Studio 11, Visual Studio 2010, Visual Studio 2013, Visual Studio 2014, Visual Studio and tools, XML/XSD, XSD | 1 Comment »

Coding Kata videos: Bowling game

Posted by jpluimers on 2015/04/22

A long and shorter while ago, I wrote about practicing your coding and test driven development skills:

Here are some Coding Kata videos of the Bowling Game Kata in various languages and environments. Some of them are dumb (no audio) just like good practice usually is. Note: it helps to know a bit about 10 Pin Bowling Scoring rules.

And since I want to learn Haskell and have done a lot of Tic-Tac-Toe demos inthe past:

For more background information:

–jeroen

Posted in .NET, C#, C# 1.0, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Development, Java, Python, RemObjects C#, Ruby, Software Development | Leave a Comment »

Marking code as obsolete/deprecated in C# and Delphi

Posted by jpluimers on 2015/04/07

During any software life cycle, you will want to phase out some code, and most likely want to mark code to be phased out in the future.

So here are two examples on how to do that in C# and in Delphi that just shows the effects of obsoleting/deprecating code.

Read the rest of this entry »

Posted in .NET, .NET 1.x, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 1.0, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 6, Delphi 7, Delphi 8, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Development, Software Development | 6 Comments »

Developer Assistant for Visual Studio with access to millions of code samples- via: Google+

Posted by jpluimers on 2015/04/02

I’m going to experiment with this. Most likely the quality of the code samples will be the biggest factor in like/dislike result.

Visual Studio – Google+.

–jeroen

Posted in .NET, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Development, Software Development, Visual Studio 2010, Visual Studio 2013, Visual Studio 2014, Visual Studio and tools | 1 Comment »

.NET threading: native and managed thread IDs do not per se correlate

Posted by jpluimers on 2015/03/26

Next time I run into .NET and native threading issues:

Main UI threads often have a correlation between managed and native thread IDs.

But for other threads, you cannot be really sure.

Some background articles on this:

–jeroen

Posted in .NET, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Development, Software Development | Leave a Comment »

Interface unit for sending debug messages to SysInternals ProcessMonitor « bl.OGware

Posted by jpluimers on 2015/02/10

Interesting, I never knew that [WayBackProcess Monitor has had an API to send messages to, but it has had this ability for almost 5 years: [Archive.isSee the I/O You Caused by Getting Your Diagnostic Tracing into Process Monitor | Wintellect.

I did know about [WayBackOutputDebugString and the DBWIN protocols, but this was new.

The ZIP file for Process Monitor is offline (but you can find it by searching for ProcMonDebugOutput.zip), and contains .h files and a .NET example.

Thanks [WayBackOliver Giesen for the [WayBackDelphi translation!

–jeroen

via: [WayBackInterface unit for sending debug messages to SysInternals ProcessMonitor « bl.OGware.

Read the rest of this entry »

Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, Delphi, Delphi 5, Delphi 6, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, Software Development | Leave a Comment »

On my research list: NCrunch for Visual Studio

Posted by jpluimers on 2015/02/04

Thanks Stefan Glienke for pointing me to NCrunch for Visual Studio:

NCrunch is an automated concurrent testing tool for Visual Studio.

It intelligently runs automated tests so that you don’t have to, and gives you a huge amount of useful information about your tested code, such as code coverage and performance metrics, inline in your IDE while you type.

–jeroen

Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Development, Software Development | Leave a Comment »

CSV libraries for .NET

Posted by jpluimers on 2015/01/27

A few libraries for writing and/or reading CSV files in .NET:

Most of the above links come from these SO questions:

Together with the links from my previous CSV post If you think CSV is easy; think again that should get everyone going.

–jeroen

Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, CSV, Development, Software Development | Leave a Comment »