The Microsoft .NET Framework has a built in licensing technology. It can be found in the namespace System.ComponentModel and System.ComponentModel.Design. Here is a small sample implementation of the minimal required classes: A lot of component producers use this licensing model – so does Tx Text Control – the component that I wanted to use. As a user you just create a *.licx-file, include it into the project as embedded resource and add the components that should be licensed by their fully qualified type names – one per line:
Websites and blogs of people that attended a Homebrew Website Club Düsseldorf.
Batch processing Visual Studio ProjectItems with the Nuget Package Management Powershell Console
Today I helped a customer to minify and bundle a bunch of JavaScript files. We used WebGrease triggered from MsBuild to do the job. The next thing to do is changing the BuildAction property on all non-bundled-and-minified JavaScript files so that only minified and bundled files are published. Here is my script: Hope that helps
How not to do support: eBay
As a software developer I know software can contain or contains bugs – that is very likely. I accept that. Looking at the (german) ebay support site they do not. There are quite a few know issues around buying or selling as well as a searchable knowledgebase. But there is no way to tell them if something else is wrong. And don’t try to call them – a bug is out of scope for the call center.
Powershell Script to open IIS applicationHost.config
I got a bit tired of walking down the directories to manually edit the IIS configuration file. So I wrote this little script to ease up opening the file from 32 and 64 bit Powershell:
Microsoft Research JavaScript Cryptography Library
Microsoft research has published a JavaScript library that extends the W3C WebCrypto API. http://research.microsoft.com/en-us/downloads/29f9385d-da4c-479a-b2ea-2a7bb335d727/default.aspx The download is amazingly big for a JavaScript library: 254 MB! I’ll have a look over the source. If you are interested in security and JavaScript you should too.
Poor Man's SQL Data Generation
Data generation is at best done with tools. Since Visual Studio Data Tools have dropped support there is for instance red gate’s DBA bundle. My current license does not work with Microsoft SQL Server 2014. I need a quick solution to reproduce a scenario with some more data in just one table. Which means I already have some data in the table. So I wrote the following TSQL script to help me out.
Bye bye RFC2616, Welcome RFC 723X
The IETF has published a bunch of new RFCs to update HTTP/1.1 specs and make the 15 year old 2616 obsolete: RFC 7230: Message Syntax and Routing RFC 7231: Semantics and Content RFC 7232: Conditional Requests RFC 7233: Range Request RFC 7234: Caching RFC 7235: Authentication RFC 7236: Authentication Scheme Registrations RFC 7237: Method Registrations RFC 7238: the 308 status code RFC 7239: Forwarded HTTP extension Here I listed a few changes:
Remote Work: Book Recommendations
I had the first contact to 37signalsbasecamp by reading Getting Real when it was published in 2009. I just finished their new book “Remote”. Since I’m working a lot from my home office since a few month I find more and more reasons for working remote. The latest one is from “The-Thinking-Clearly” by Rolf Dobelli: “Studies prove, that commuting is the main reason for dissatisfaction” Two books I can really recommend!
Windows Defender Registry Settings for Visual Studio Speed
To increase Visual Studio performance several things can be done. One is to configure Windows Defender:
DotNet Cologne 2014 Session: Build, Build, Build
Here are the slides for my session at dotnet cologne: 2014 - DotNetCologne: Build, Builder, Am Buildesten by Daniel Fisher
.NET Usergroup Rhein/Ruhr Session: Component Based Development
Here are the slides for my session at .NET Usergroup Rhein/Ruhr: 2014 - DotNet UG Rhen Ruhr: Komponentenorientierung by Daniel Fisher
Remote control supermicro super server via ATEN IPMI in C#
I really like IPMI so I don’t have to walk to the data center to turn on a machine. But the web interface is so 90s. As I live life on the console I whished I had a command line utility. Et voilà:
Are SCM check-out's contemporary?
My VCS story began with Microsoft Visual Source Safe. I was happy… I had my files versioned. I could view differences in file versions. I could restore previous versions. I could view the history of a file. … until the IDE started to crash, I had corrupted files and so on. http://www.flickr.com/photos/nesster/5823554695/ So I gave CVS and then SVN and TFS a try. I was happy… I could work with branches I could version source code “over HTTPS”.
Chaining asynchronous JavaScript calls with Angular JS
A while ago I dropped a piece of code that prevents from unlimited callback nesting: Chaining asynchronous JavaScript calls Today I was hacking some Angular JS code and found myself nesting callbacks. So I updated the CallChain to an Angular JS factory: Here is how it is used:
Sanitizing Strings according to Windows Client Certificate Enrollment Protocol [MS-WCCE]
The Windows Client Certificate Enrollment Protocol [MS-WCCE] defines a sanitizing mechanism e.g. for common names in section 1.3.2.4 and section 3.1.1.4.1.1. After I gave my favorite search engine a try and ensured there is no built-in function to call I built my own. Here it is:
Datenbank Autonomie
Oder warum sollten sich mehrere Anwendungen nicht dieselbe Datenbank teilen? http://www.flickr.com/photos/breville/10731809645/sizes/l/ Viele Köche verderben den Brei: Diseconomy of Scale Eine gemeinsame Datenbank (geteilt zwischen Anwendungen und/oder Teams) sorgt für unterschiedliche Interessen und erhöhten Absprachebedarf, damit es nicht zu einer Art Wildwuchs kommt. Wenn keine klaren Schnittstellen definiert sind sinkt die Produktivität aufgrund des erhöhten Kommunikationsaufwandes. Das gilt in Firmen unter Abteilungen und Mitarbeitern, genauso wie für Software-Projekt-Teams als auch für Software selbst.
Sitzungslos/Statuslos
http://www.flickr.com/photos/toofarnorth/8670157331/ Aus der RFC 2616: “It is a generic, stateless, protocol” Das heißt, das Fundament auf dem wir aufsetzen ist Sitzungslos. Wenn das Applikations-Framework, egal ob mit Web Forms oder MVC, oder Python, oder PHP, oder Rails…, das respektiert, wird es den Anforderungen des Web gerecht: Skaliert besser – Ich brauche mir im NLB-Szenario (Network Load Balancing) keine Gedanken über Shared Memory machen oder mit dem ASP.NET State-Server einen SPOF (Single Point of Failure) einführen.
MSSQL Log Size
I have a test environment for an application. From time to time I take the database to my local development environment. A smaller database log means less network latency and a faster local reproduction scenario. After a while of pumping data into a MSSQL Server instance the log can grow a bit – even if there is a lot of free space left. Shrinking is NOT GOOD at all, but I don’t have 50gigs of space left to pull up that database on my local machine.
MSSQL Backup Size
I have a test environment for an application. From time to time I take the database to my local development environment. A smaller backup means less network latency and a faster local reproduction scenario. Since 2008 Microsoft SQL Server comes with a feature called backup compression. I gave it a try and so I ran the two following statements in competition: BACKUP DATABASE [XXX] TO DISK = N'D:\DATA\SQL\BACKUP\Uncompressed.bak' WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N'Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO vs.
Disabling Registry-System-Redirection on 64bit
x64 view from x86: using Microsoft.Win32; using(var registryKey = RegistryKey.OpenBaseKey( RegistryHive.LocalMachine, RegistryView.Registry64 ).OpenSubKey(@"Software\Microsoft\InetStp\Components")) { var value = registryKey.GetValue(@"WMICompatibility"); } x86 view from x64: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft