Loupe 4.0 - Agents and Samples on NuGet and GitHub
Part of what folks love about Loupe is that we do a lot of logging automatically. Loupe taps into hooks provided by .NET, ASP.NET, MVC, EF and other sources to automatically log many errors, events and metrics. This integration is built on code modules that you integrate with your .NET projects that we refer to as Loupe Agents. We deploy our agents through Nuget and provide source code for agents and other code samples through GitHub.
Prior to Loupe 4, we also shipped agent assemblies and sample code with Loupe Desktop, but we’ve stepped away from that because it had several disadvantages:
- Added Complexity: Each part of our documentation has to say “get from NuGet if possible, otherwise go here..” and handle implications of either (for example - your CI system won’t have the assemblies if you don’t get them from NuGet. We even picked different approaches for different videos to show both. When using the local assemblies you lose the benefit of NuGet for dependency management (such as between our agents or our agents and third party assemblies) which in turn requires more instructions.
- Dependency on Loupe Desktop: This approach tended to push developers to first download and install Loupe Desktop before integrating Loupe. We’ve heard from folks that they wanted a server-first approach to get going quickly and then let them add Desktop later as needed.
- New or Updated Agents require a Release: The Agents tend to have new features and defect fixes on a very different schedule than Loupe Server and Desktop. We tend to push new items to NuGet quickly but users that have used the deployed copies don’t get that advantage.
With NuGet now a requirement for modern .NET development this seems like a good time to embrace Nuget fully. And, btw, if for some reason you can’t use Nuget, you can download nuget packages without Package Manager.
Find Agents on NuGet
Every agent we support is available on NuGet. If you search for Loupe you’ll get a list, although in some interesting order - Since our package names align with the historical assembly names they all start with “Gibraltar” which tends to push them down in sort order. The most commonly used package is the core agent itself, the Gibraltar.Agent package. For Loupe 4.0 we’ve also tended to remove “Gibraltar” from the display name of each package as it’s now been a few years since we rebranded Gibraltar and Loupe and it seems to be adding more confusion than help.
If you've been using the assemblies that shipped with Loupe Desktop you'll want to remove the old reference to the assemblies and then add the assembly from NuGet. The NuGet package names match the base assembly name used for each item so they should be easy to find. If not, check out our documentation or ping support and we'll make it more clear.
Loupe Extensions use a New Package
With the new extensibility API for Loupe 4 and the lack of API backwards compatibility we elected to use a new package name for this version to prevent users from running into unexpected application breaks when updating packages. The new package is listed as the Loupe Extension Reference Types, named Loupe.Extensibiltiy.
Find Source for Agents - They’re OSS!
We’ve been steadily open sourcing our Agents - now everything except the core Agent is open source (and we’re working on that too!). So, if you aren’t sure how an agent works or think you might just want to adjust its behavior, or make it better, or anything else that requires access to the source code you’re in luck. All of the Agents have their own Git repositories on GitHub (visit https://github.com/GibraltarSoftware). You’ll find you can pull the latest code from the repository, modify it, and build it yourself. The only difference between these open source versions and the official releases published on NuGet is the official releases are generally signed with our Gibraltar Software strong name key. This lets folks check assemblies to have some confidence that they came from us.
While we are actively working to maintain each of the repositories you find listed, we’ve also taken pull requests from third parties. In fact, we’ve collaborated with customers to take ideas they had, work with them on an implementation, and integrated it into an Agent we fully support. So, if you’ve got an idea on a platform you’d like us to support or some way to improve the utility of Loupe, reach out to us and lets see what we can make happen!
Sample Code for Just About Anything
We’ve published all of the Loupe samples out to GitHub instead of them being shipped with Loupe Desktop. This decouples them from our release schedule which is handy because most samples come out of our Sales & Support teams (based on specific questions or requests from customers) and they place a premium on being able to publish items quickly when they need them. Additionally, using GitHub makes it easier for you to take a quick look without having to install anything to get the gist of how something works.
The other advantage of putting samples out on GitHub is that we can take your sample contribution too - if you’ve got something you’d like to see added you can make a request on GitHub or just fork the repository and add it yourself. In short, it’s a good place to collaborate on some code and come up with solutions.