After some years taking from the community of OSS and not giving back a lot, it has finally happened.
My first OSS project has been released.
Go on, OSS community, and take something from me and improve the heck out of the project!
What is NMoneys?
NMoneys is an Open Source library that aims to implement an ISO 4127 standard-compliant money value object, that is, to represent and operate on monetary quantities.
For me, its creator and owner, it is v1. Ready to be used and with an stable API. Go get the bits and give feedback.
To start with, the .NET Framework does not contain the concept of money or currency and it does not implement a complete standard.
It does have some number formatting capabilities, but they are mixed up somehow with languages, cultures, calendars, regions, dates and raw number formatting. Not ideal if you ask me. And sometimes the information used for that formatting is out-dated or simply incorrect. And their schedule for fixes is not the fastest in the world for a number of reasons that I will not go into.
But formatting is just one of several things one might want to do with monetary quantities. How about arithmetic operations? How about comparisons? How about insert_operation_here? It might be implemented in a numeric type, and forcing the developer to code around.
Previously, I developed for my company an implementation of monetary quantities that relied heavily on the .NET framework and coded around the inaccuracies. But currencies is an ever-changing world with a lot of rules, exceptions, political decisions and cultural baggage. Sounds complex? It is. There was no way that a small company would have the resources to maintain this implementation when even Microsoft, with all its money and potentially dedicated resources, has problems with their own implementations.
So I proposed my employer, Vertica, to allow me to “open source” it. They were kind enough to allow it and here we are.
How is going to make my life easier?
NMoneys is a simple library. It is not complex. It may not do a lot of things. It may not be 100% correct. But it is here to help you with a problem and is built to be improved by the community.
Do you want to display monetary quantities? You can use NMoneys.
Do you want to operate on monetary quantities? You can use NMoneys.
Do you want to exchange a monetary quantity into another based on today’s exchange rate? NMoneys will only help you to create an application that can do the job.
Looks neat but is not correct
It is a good thing you found out.
It means someone else outside my company is using it. It means that person with the potential to know how a certain currency does the formatting of monetary quantities is using it. It means that someone with financial knowledge can help implementing missing features.
It may mean a lot to a lot of people.
Go ahead, move already: submit patches, ask questions in the discussion group, ask for new features. Be excited about your chance to improve a library that might be useful to someone. And be gentle with the people running the project, they are OSS first-timers
In one word: CONTRIBUTE. Only with the help of a lot of users we can have a library that is correct, feature rich and serves a purpose for application developers.
Looking forward to hearing from you.