RubyGems w .NET

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:

nu blog post

Lista aktualnie dostępnych gemów dla .net jest tutaj.

Pojawiają się już próby integracji z Visual Studio:

Integracja NU w 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:

Tagged , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *