Każdy używający bibliotek open source w .NET pewnie natknął się na problem ich instalowania w swoich projektach. Pół biedy kiedy używamy tylko jednej biblioteki, gorzej gdy mają one zależności między sobą i na domiar złego w konkretnych wersjach. Sytuacja szczególnie się komplikuje, gdy chcemy te biblioteki zaktualizować.
Okazuje się, żę podobne problemy mieli już użytkownicy Ruby i jako odpowiedź na to stworzyli Ruby Gems. Jest to narzędzie do zarządzania i dystrybuowania paczek programów i bibliotek dla języka Ruby. Jego bezpośrednie zastosowanie w .NET nastręczało trochę problemów więc powstał projekt NU. NU działa na bazie Ruby Gems pozwala instalować i aktualizować biblioteki open source w projekcie. NU to skrót od Nubular.
Instalacja jest bardzo prosta ? najpierw trzeba mieć Iron Ruby(albo Ruby dla windows) ja pobrałem wersję 1.1 IronRuby.
Instalacja NU
c:>igem install nu Successfully installed thor-0.14.0 Successfully installed nu-0.1.17 2 gems installed Installing ri documentation for thor-0.14.0... Installing ri documentation for nu-0.1.17... Installing RDoc documentation for thor-0.14.0... Installing RDoc documentation for nu-0.1.17...
Instalacja bibliotek w projekcie
C:\Users\Bartek\Desktop\projekty\nu-test>nu install fluentnhibernate unknown:0: warning: already initialized constant OPT_TABLE unknown:0: warning: already initialized constant S_IF_DOOR unknown:0: warning: already initialized constant METHODS Gem unavailable - trying to install Successfully installed castle.core-1.1.0.0 Successfully installed castle.dynamicproxy2-2.1.0.0 Successfully installed log4net-1.2.10 Successfully installed nhibernate-2.1.2.4000 Successfully installed fluentnhibernate-1.1.0.685 Copy From: C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/fluentnhib ernate-1.1.0.685/lib Copy To: C:/Users/Bartek/Desktop/projekty/nu-test/lib/fluentnhibernate loading nhibernate Found Gem Copy From: C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/nhibernate -2.1.2.4000/lib Copy To: C:/Users/Bartek/Desktop/projekty/nu-test/lib/nhibernate loading castle.core Found Gem Copy From: C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/castle.cor e-1.1.0.0/lib Copy To: C:/Users/Bartek/Desktop/projekty/nu-test/lib/castle.core loading castle.dynamicproxy2 Found Gem Copy From: C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/castle.dyn amicproxy2-2.1.0.0/lib Copy To: C:/Users/Bartek/Desktop/projekty/nu-test/lib/castle.dynamicproxy2 loading castle.core Found Gem Copy From: C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/castle.cor e-1.1.0.0/lib Copy To: C:/Users/Bartek/Desktop/projekty/nu-test/lib/castle.core loading log4net Found Gem Copy From: C:/Program Files/IronRuby 1.0v4/lib/ironruby/gems/1.8/gems/log4net-1. 2.10/lib Copy To: C:/Users/Bartek/Desktop/projekty/nu-test/lib/log4net
a w folderze projektu z którego uruchomiłem NU pojawiły się odpowiednie foldery ze wszystkimi zależnościami FluentNHibernate:
Lista aktualnie dostępnych gemów dla .net jest tutaj.
Pojawiają się już próby integracji z Visual Studio:
Naprawdę bardzo wygodne. A skoro już mamy IronRuby to nic nie stoi na przeszkodzie, żeby zacząć używać rake do budowania.
Dodatkowe linki
A to linki, które bardziej szczegółowo wyjaśniają jakie były źródła powstania projektu: