InvoiceInvoker: inwokacja

Dziś początek konkursu Daj się poznać – pracę czas zacząć!

IT, dziedzino moja, ty jesteś jak…
…no dobra, bez przesady. Jak zapowiedziałem, startuję z programem służącym do wystawiania i przechowywania faktur (VAT). Projekt zyskał już nazwę: InvoiceInvoker (w kategorii o tej samej nazwie będę umieszczał wpisy konkursowe) i konto na CodePlex (na razie nieupublicznione). Kolejnym etapem będzie sformułowanie kilku podstawowych założeń projektowych.

Dane
Na początek założenia raczej bardziej ogólne, niż ściśle programistyczne: faktury powinny być zgodne z obowiązującymi przepisami, produkty – mieć przypisaną odpowiednią stawkę VAT i klasyfikację PKWiU (tym na szczęście zajmie się użytkownik), a numery NIP i REGON – być sprawdzane pod względem poprawności. Czeka mnie więc trochę lektury i kontaktu ze światem przepisów gospodarczych. Kluczowe informacje postaram się zamieszczać na blogu, aby pokazać, że programowanie to nie tylko kodowanie, ale i poszerzanie ogólnej wiedzy.
Czas na garść założeń czysto programistycznych. Użytkownik powinien mieć możliwość zdefiniowania stałych klientów i produktów, a także szablonów faktur – tak, aby wystawienie faktury za stałe comiesięczne zamówienie wymagało trzech kliknięć LPM. Powinien też móc wybrać format numeru faktury (np. 1/8/10 lub 01-08-2010).
Do przechowywania danych użyję Microsoft SQL Server Compact 3.5. Dobierać się do nich będę za pomocą LINQ to SQL.

Funkcjonalności
Na razie do głowy przychodzi mi tylko jedna funkcjonalność programu, o której warto wspomnieć, a która nie pasuje do kategorii Dane. Jest to przemiana mrocznych wnętrzności bazy danych w miły oku (przynajmniej oku wystawiającego; klienta – niekoniecznie) dokument PDF. Google w 0.18 s znajduje na to miliony sposobów, w tym 7, z których na pewno coś wybiorę.

Technologie
Jako że organizator konkursu zachęca do użycia w projekcie konkursowym technologii, z którymi uczestnik nie miał dotąd styczności, zdecydowałem się na skorzystanie z ASP.NET MVC. Dotychczas tworzyłem tylko programy desktopowe i od jakiegoś czasu chciałem to zmienić – teraz mam świetną okazję.
W przeprowadzaniu testów jednostkowych pomoże mi natomiast framework NUnit.
Niewymagający komentarza miszmasz pozostałych wybranych technologii / aplikacji / komponentów: Visual Studio 2010, LINQ to SQL, CodePlex, Windows 7, .NET 4.0, Mercurial, SQL Server Compact 3.5.

To by było na tyle w kwestii podstawowych założeń projektu, kolejne będą się rodzić w miarę postępu prac nad nim.

…Witryna na wciąż otwarta przechodniom ogłasza,
Że gościnna i wszystkich w gościnę zaprasza.

Zapraszam serdecznie do śledzenia mojego udziału w konkursie. Wszelkie sugestie – dotyczące tematyki wpisów bądź samego bloga – mile widziane!