Closed ZmorzynskiK closed 7 years ago
Cześć. Dzięki za informację zwrotną. Jak najbardziej się z Tobą zgadzam aby zrezygnować z IoC. Na początku był to tylko test jak można zastosować Ninject a potem jeden z kolegów dodał pewna funkcjonalność i mocno się oparł o kontenery no i zrobiło się trochę duża zależność aby szybko było mozna się pozbyć kontenerów.
Największy problem jest dla mnie fakt, że nie wiem jak ta biblioteka powinna się prezentować dla klienta. Czy to powinna być statyczna klasa i metoda, tak jak jest teraz czy coś bardziej skomplikowanego dla klienta ale łatwiejsze utrzymaniu czystego kodu.
No i drugie pytanie na które już trochę się skłaniam, czy to ma być w przyszłości tylko biblioteka do polskich słówek i liczebników czy tez dla innych języków? Teraz planuje aby było to tylko biblioteka do polskich liczebników i walut. To ułatwia i uprasza trochę projektowanie...
Mam trochę czasu dziś i jutro więc nad tym popracuje. Zrobię tak aby pozbyć się kontenera i zostawić czystą postać tak abyś nie miał żadnych oporów. Będę wdzięczny za informacje zwrotną jak to wyszło. Dam znać.
Stay in touch.
Super, cieszę się, że planujesz zrezygnować z IoC w tym przypadku :)
Jeśli chodzi o użycie biblioteki przez klienta, to moim zdaniem jeśli czystość kodu biblioteki nie ucierpi zbytnio, to sensownie jest zostać przy statycznej klasie i metodzie, nie ma co chyba komplikować sprawy. Zawsze można w przyszłości zrobić jak JSON.NET czyli podstawowe, proste funkcje są dostępne przez statyczną klasę/metodę, a więcej kontroli za pomocą jakiejś instancji.
Hm chyba też proponowałbym zostać przy języku polskim i dopieścić jego obsługę. Zwłaszcza, że nazwa biblioteki jest... taka polska :) A z drugiej strony, jak uznasz, że język polski jest już dopieszczony w 100% , to zawsze możesz wykorzystać zdobyte doświadczenie i zrobić NumbersToWordsNET :)
Cześć, zrobiłem. Na gałęzi master jest wersja bez kontenera. Dodatkowo dużo innych elementów się poprawiło. Jeszcze będę pracował nad tą wersją 1.0.0.4.
Był bym wdzięczny za informację zwrotną lub jakieś konkretne zmiany jeśli masz na coś pomysł.
Cześć. Postanowiłem wystawić nową wersję do Nuget-ów więc teraz w nugetach jest wersja 1.0.4, która (jak się zindeksuję nuget.org) będzie dostępna i będzie bez kontenera DI.
Wystawiłem również realese 1.0.0.4 na github-ie.
Więc mam nadzieje, że zachęciłem Cię do używania biblioteki.
Wow, szybka reakcja, dzięki :) Na razie zaktualizowałem i skompilowałem - wszystko wygląda super, zastosuję to do projektu. Albo może faktycznie poczekam aż na nugecie się pojawi i wtedy wezmę bezpośrednio stamtąd.
Postaram się potem rzucić okiem na kod i jak będę miał coś sensownego do zaproponowania, to będę pisał i forkował w razie czego :)
Pozdrawiam!
Już jest wersja 1.0.4 dostępna na nuget-ach. Możesz śmiało podłączać. Czekam z chęcią na komentarze. Pozdrawiam
Na wstępie: bardzo fajny projekt, czegoś takiego brakowało w polskim .NET 👍
Pierwszą wersję biblioteki pobrałem kilka miesięcy temu i bardzo mi się spodobała, bo był to po prostu jeden plik DLL, który robił to co do niego należało. Ostatnio jednak zorientowałem się, że jest błąd podczas tworzenia tekstu dla numeru np
10.5
w sytuacji, gdydecimal.ToString
zwraca10,5
(np dla locale PL) - wtedy zamiastdziesięć złotych pięć groszy
dostajędziesięć złotych pięć tysięcy groszy
. Rozwiązaniem jestdecimal.ToString( CultureInfo.InvariantCulture )
w metodzieNumberToText.PrepareNumbers
- i ta zmiana jest już wprowadzona w obecnej wersji na repo.Jednak przyznam, że przed wykorzystaniem aktualnej wersji z repo, powstrzymał mnie fakt, że obecnie biblioteka ma szereg zewnętrznych zależności, tzn
Castle.Core
iNinject
. Chodzi o to, że w sytuacji, w której korzystam zAutofac
jako kontenera IoC, czuję wewnętrzny imperatyw powstrzymujący mnie przed wykorzystaniem biblioteki, która wykorzystuje zupełnie inny kontener IoC. Byłaby to jedyna biblioteka w projekcie, która ma zależność kontenera IoC.Wiem, że wykorzystanie kontenera sporo ułatwia, ale co sądzisz o tym, żeby może spróbować wrócić do prostszej wersji (bez zależności od kontenera) albo rozdzielić projekt tak (wprowadzając jakiś dodatkowy poziom abstrakcji), aby udało się pozbyć bezpośredniej zależności biblioteki od konkretnych kontenerów? Oczywiście deklaruję pomoc w tym temacie, o ile będzie potrzebna.