Yes, you can code your own blockexplorer using it.
Actually I index only Blocks with the IndexedBlockStore, but nothing prevent you to index other data structure like transactions.
The class you will need for that is BlockStore, which permit you to enumerate the blocks in the blocks folder of bitcoind.
And SqlLiteNoSqlRepository, which permit you to have a persistent key-value store, to create your index.
You can send/receive with the NodeServer class, which permit to connect to bitcoin network send transactions, and receive transactions, with raw protocol messages.
You can also use RPCClient which would connect in RPC to bitcoind, that would send transaction on your behalf, this is recommended because NBitcoin can't verify that inputs are not already spent.
NBitcoin is not a full node implementation, that means that it is unable to verify validity of a transaction. (precisely, it can't verify that inputs of your transaction are not already spent)
This is why I recommend to have a running bitcoind that verify transactions, but using the tracking abilities of NBitcoin (Scanners) from NBitcoin.