Cool .NET Tools, Techniques
and Libraries
aka. More .NET Stuff that Doesn’t Suck
Presented by
Gregory M. Sohl
PDF Merge (and split too)
GIOS PDF Split / Merge
 Open Source
 License: LGPL
 http://www.paologios.com/products/Default2.aspx?type=src
Easily Expose Unmanaged Interface
DLLExport
 Automated tool for exposing .NET static methods as an
unmanaged interface
 Uses Cecil to rewrite the IL after compile
 NuGet: https://www.nuget.org/packages/UnmanagedExports/
 Project Info:
https://sites.google.com/site/robertgiesecke/Home/uploads/unm
anagedexports
Using NuGet Safely
Open Source Licenses
NuGet.org Trust issues
Use of feeds / repositories
Review the Package Contents
Open Source Licenses
They’re not all created equal
What’s your policy?
NuGet Trust Issues
No true author identification
No package signing
Many non-official packages
Reference
 Phil Haack – http://bit.ly/haack-trust
 NuGet Goals - http://bit.ly/NuGet-Goals
Use of Feeds & Repositories
NuGet.org
Microsoft Curated Feed
Self-Hosted Repository
Set up Visual Studio to use repositories in this order
 Self-Hosted Repo
 Microsoft Curated
 NuGet.org
Review the Package Contents
PowerShell
 Executes on install
Init.ps1 - runs the first time a package is installed in a solution
Install.ps1 runs when a package is installed in a project
 Executes on uninstall
Uninstall.ps1 runs every time a package is uninstalled
Source Code
 Embedded "other" 3rd party source - Check it's license too
 No Source? Review the DLL with disassembler
Compare .NET Objects
Kellerman Software - .NET Object Comparison
 Open Source
 License: Microsoft Public License (Ms-PL)
 Produced by Kellerman Software
 Provides type-independent deep comparison
Good control for special conditions
 https://comparenetobjects.codeplex.com/
 We use it in serialization unit tests
View / Filter Large Files
TextAnalysisTool.NET
 Opens huge files
 Provides filtering by plain text and regex
Multiple filters, toggle on and off
 http://textanalysistool.github.io/
 https://github.com/TextAnalysisTool
 Run It
 Other tools
Log Parser - https://technet.microsoft.com/en-
us/scriptcenter/dd919274.aspx
Log Fusion - http://www.logfusion.ca/
Questions
@gregsohl http://cwi-websoft.com

Cool .NET tools, techniques and libraries

  • 1.
    Cool .NET Tools,Techniques and Libraries aka. More .NET Stuff that Doesn’t Suck Presented by Gregory M. Sohl
  • 2.
    PDF Merge (andsplit too) GIOS PDF Split / Merge  Open Source  License: LGPL  http://www.paologios.com/products/Default2.aspx?type=src
  • 3.
    Easily Expose UnmanagedInterface DLLExport  Automated tool for exposing .NET static methods as an unmanaged interface  Uses Cecil to rewrite the IL after compile  NuGet: https://www.nuget.org/packages/UnmanagedExports/  Project Info: https://sites.google.com/site/robertgiesecke/Home/uploads/unm anagedexports
  • 4.
    Using NuGet Safely OpenSource Licenses NuGet.org Trust issues Use of feeds / repositories Review the Package Contents
  • 5.
    Open Source Licenses They’renot all created equal What’s your policy?
  • 6.
    NuGet Trust Issues Notrue author identification No package signing Many non-official packages Reference  Phil Haack – http://bit.ly/haack-trust  NuGet Goals - http://bit.ly/NuGet-Goals
  • 7.
    Use of Feeds& Repositories NuGet.org Microsoft Curated Feed Self-Hosted Repository Set up Visual Studio to use repositories in this order  Self-Hosted Repo  Microsoft Curated  NuGet.org
  • 8.
    Review the PackageContents PowerShell  Executes on install Init.ps1 - runs the first time a package is installed in a solution Install.ps1 runs when a package is installed in a project  Executes on uninstall Uninstall.ps1 runs every time a package is uninstalled Source Code  Embedded "other" 3rd party source - Check it's license too  No Source? Review the DLL with disassembler
  • 9.
    Compare .NET Objects KellermanSoftware - .NET Object Comparison  Open Source  License: Microsoft Public License (Ms-PL)  Produced by Kellerman Software  Provides type-independent deep comparison Good control for special conditions  https://comparenetobjects.codeplex.com/  We use it in serialization unit tests
  • 10.
    View / FilterLarge Files TextAnalysisTool.NET  Opens huge files  Provides filtering by plain text and regex Multiple filters, toggle on and off  http://textanalysistool.github.io/  https://github.com/TextAnalysisTool  Run It  Other tools Log Parser - https://technet.microsoft.com/en- us/scriptcenter/dd919274.aspx Log Fusion - http://www.logfusion.ca/
  • 11.

Editor's Notes

  • #8 Use of feeds / repositories NuGet.org Check # downloads Do you recognize the author's name - check the project site Multiple unofficial uploads exist Search for Package: Antlr Microsoft Curated Repository https://www.nuget.org/api/v2/curated-feeds/microsoftdotnet/ Local Repository https://docs.nuget.org/create/hosting-your-own-nuget-feeds Folder Use command line tool to manage a folder since NuGet 3.3 NuGet Server https://www.nuget.org/packages/NuGet.Server NuGet Gallery https://github.com/NuGet/NuGetGallery/wiki/Hosting-the-NuGet-Gallery-Locally-in-IIS Set up Visual Studio to use repositories in this order Local repo Microsoft Curated Not NuGet.org