BioMatcher is a .NET Framework fingerprint matching platform that includes:
- A multithreaded matching engine
- A WinForms SignalR server
- A WinForms client
- Benchmark tooling
- Optional ASMX/WCF service endpoints
- Pluggable fingerprint SDK adapters (Griaule, SourceAFIS, SecuGen)
BioMatcher.sln contains these main projects:
| Project | Type | Purpose |
|---|---|---|
BioMatcher |
Class library | Core matching pipeline, cache, threading, and transport client wrapper |
BioMatcher.Server |
WinForms app | Hosts SignalR/Owin endpoint and server-side matching/cache |
BioMatcher.Client |
WinForms app | Sends identify requests via SignalR, ASMX, or WCF |
BioMatcher.Benchmark |
WinForms app | Performance testing for cache size/threading scenarios |
BioMatcher.WebService |
ASP.NET web app | ASMX/WCF service surface over MatchManager |
BioMatcher.ServiceAdapter |
Class library | SOAP adapter to fingerprint source service |
BioMatcher.Griaule |
Class library | Griaule SDK adapter (IFingerprintSdk) |
BioMatcher.OpenAFIS |
Class library | SourceAFIS adapter (partial implementation) |
BioMatcher.SecuGen |
Class library | SecuGen adapter (partial implementation) |
- Windows (WinForms + native fingerprint SDK DLLs)
- .NET Framework 4.5.2 Developer Pack
- Visual Studio 2017+ (solution format is VS15)
- NuGet package restore enabled
Prebuilt outputs are available under Build/.
- Configure server in
Build/Server/BioMatcher.Server.exe.config. - Configure client in
Build/Client/BioMatcher.Client.exe.config. - Start
Build/Server/BioMatcher.Server.exe. - Start
Build/Client/BioMatcher.Client.exe.
Recommended local SignalR settings in the client config:
<add key="BioMatcher.ServerURI" value="http://localhost:8080/signalr" />
<add key="BioMatcher.ClientMode" value="2" />
<add key="BioMatcher.ClietMode" value="2" />Notes:
2means SignalR mode (0= ASMX,1= WCF,2= SignalR).BioMatcher.ClietMode(legacy typo) is what the runtime currently reads.- If your server runs on another host/port, update
BioMatcher.ServerURIaccordingly.
- Open
BioMatcher.slnin Visual Studio. - Restore NuGet packages.
- Build the solution (
DebugorRelease). - Set startup projects as needed:
BioMatcher.Server+BioMatcher.Clientfor SignalR flowBioMatcher.Benchmarkfor performance testsBioMatcher.WebServicefor ASMX/WCF hosting
MSBuild example:
msbuild BioMatcher.sln /t:Restore,Build /p:Configuration=ReleaseCommon settings (in App.config / .exe.config / Web.config):
| Key | Description |
|---|---|
BioMatcher.ServerURI |
SignalR endpoint (http://host:port/signalr) for client, base URL for server host |
BioMatcher.ClientMode / BioMatcher.ClietMode |
Transport mode: 0 ASMX, 1 WCF, 2 SignalR |
BioMatcher.CacheMode |
0 no client cache, 1 locale cache, 2 server mode |
LocaleId |
Locale partition for locale-cached requests |
BioMatcher.CacheSize |
Cache size target for benchmark scenarios |
BioMatcher.BenchmarkMode |
Enables benchmark behavior and benchmark output |
BioMatcher.SdkPath |
Assembly name for selected matcher SDK |
BioMatcher.SdkType |
Fully-qualified class implementing IFingerprintSdk |
Switch matcher implementation via config:
<add key="BioMatcher.SdkPath" value="BioMatcher.Griaule" />
<add key="BioMatcher.SdkType" value="BioMatcher.Griaule.FingerprintMatcher" />Available adapters:
BioMatcher.Griaule(most complete)BioMatcher.OpenAFIS(partial / containsNotImplementedExceptionpaths)BioMatcher.SecuGen(partial / template extraction paths not implemented)
Native/vendor DLLs are stored under Libraries/.
By default, cache hydration is service-backed via SOAP endpoints configured in:
BioMatcher.ServiceAdapter/app.configBioMatcher.Server/App.configBioMatcher.Client/App.configBioMatcher.WebService/Web.config
The repo ships placeholder endpoints under *.externalservice.org; replace them with your actual service URLs.
For benchmark-style local template data, the repository includes sample templates in Build/Data/.
Additional architecture and R&D docs are in Docs/:
Global Fingerprint Solution R&D.pdfSystem Architecture Design.png
MIT (see LICENSE).
