jonwagner / EventSourceProxy

EventSourceProxy (ESP) is the easiest way to add scalable Event Tracing for Windows (ETW) logging to your .NET program
Other
97 stars 20 forks source link

Added strong name signing to the EventSourceProxy. #2

Closed stebet closed 11 years ago

stebet commented 11 years ago

Added strong name key and signing to the EventSourceProxy project.

I also removed the visibility of internals to the unit test library, and copied the method which required it into the unit test. I know copying the method is not DRY, but I feel it's better than exposing the internals which complicates strong name signing which I also feel is more important.

jonwagner commented 11 years ago

After reading this thread (http://nuget.codeplex.com/discussions/247827), I'm not sure about the best practices for strong-naming NuGet packages. I understand that strong named assemblies can only use strong-named assemblies, but there seems to be a lot of issues around managing upgrades to strong-named assemblies.

If you can help me find more information on this, I'd appreciate it.

BTW - your pull request is good code. I just have to better understand the impact of strong naming the assembly.

jonwagner commented 11 years ago

The JSON,NET library might have a good strategy for this: http://james.newtonking.com/archive/2012/04/04/json-net-strong-naming-and-assembly-version-numbers.aspx

That would be leaving the assemblyVersion alone and only incrementing the assemblyFileVersion for new builds. I'll think more about this tomorrow.

stebet commented 11 years ago

Yes. JSON.NET does that in a good way.

This really isn't a problem until your DLL becomes the third in the chain. If DLL A references NuGet package B and C, and B references NuGet package C also, and all are strongly typed, you can update package C if the Assembly Version has changed and just recompile A just fine, but B will refuse to load now since it is referencing a strongly named (and therefore versioned) package C. That's why A would then place a binding redirect telling B to load another version instead.

Only incrementing the assembly file version gets around that issue and is also the way the .NET Framework can install service packs without breaking apps. Redirects are really the most "correct" way to do this though.

jonwagner commented 11 years ago

Build is up on NuGet. Thanks for the help.

stebet commented 11 years ago

My pleasure :)

Sent from my Windows Phone


From: Jon Wagnermailto:notifications@github.com Sent: ‎17.‎5.‎2013 12:08 To: jonwagner/EventSourceProxymailto:EventSourceProxy@noreply.github.com Cc: Stefán Jökull Sigurðarsonmailto:stefanjokull@hotmail.com Subject: Re: [EventSourceProxy] Added strong name signing to the EventSourceProxy. (#2)

Build is up on NuGet. Thanks for the help.


Reply to this email directly or view it on GitHub: https://github.com/jonwagner/EventSourceProxy/pull/2#issuecomment-18057805