Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Zdravím místní programátory, v pravidelné minisoutěži budeme hrát o placku Machr na C# .NET, případně Machr na OOP a samolepky. Snažil jsem se opět vymyslet praktické zadání, které je jednoduché a připraví vás na zaměstnání. Řešení dnešního zadání by se po rozšíření dalo určitě i prodat, třeba si na tom někdo uděláte business :D

Naprogramujte fakturační systém v C# .NET s použitím technologií WPF a Entity Framework (to je knihovna pro objektový přístup k DB). Jako databázi použijte SQL Server. Ačkoli to zní asi složitě, budete překvapeni, jak rychle to s Entity napíšete a pokud ho neznáte, máte nejvyšší čas se ho naučit.

Systém bude značně zjednodušený a bude obsahovat 2 entity: Osoba a Faktura. Osoba má nějaké jméno a adresu. U faktury lze následně zvolit dodavatel a odběratel (z uložených osob), její cena a název služby, na kterou je vystavená.

Pokud chcete být důkladní, vygooglujte si jak vypadá faktura a přidejte osobě i věci jako IČ, DIČ a podobně. U faktury je pak ještě nějaké datum, číslo (to se většinou generuje samo jako 2014020101 - první faktura prvního února 2014). K soutěži to potřeba není, samozřejmě když si s tím někdo vyhraje, bude zvýhodněn.

Část pro pokročilé
Pokud umíte pracovat s Entity, budete se asi dost nudit, že? Nejsložitější je vlastně naklikání GUI. Můžete naprogramovat uložení faktury do PDF. K tomu jsou minimálně 2 extrémně jednoduché a free knihovny, zjistěte si jak se používají, hodí se vám to. Aplikace s exportem do PDF budu hodnotit zvlášť.

Čas si dejme do pondělí 10.2. do 10:00.
Podrobnější pravidla soutěže jsou zde: http://www.itnetwork.cz/…outezi-machr

Editováno 4.2.2014 17:17
Odpovědět  +3 4.2.2014 11:18
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Michal Doubek (HAPPY DAY):

představoval by sis to nějak takhle: http://www.youtube.com/watch?…
dík

Nahoru Odpovědět 4.2.2014 14:39
Svoboda tvé pěsti končí na špičce mého nosu
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michal Doubek (HAPPY DAY)
David Čápka:

Můžeš to udělat jak chceš, ale co jsi poslal je zbytečně složité. Stačí když bude mít faktura jen jednu položku, jak je v zadání.

Nahoru Odpovědět 4.2.2014 14:40
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na David Čápka
Jan Vargovský:

I pro ty co neumí pracovat s entity je to směšné :D

 
Nahoru Odpovědět 4.2.2014 14:56
Avatar
Michal Žůrek (misaz):

super neumím absolutně nic z toho co je vyžadováno, tak se to pokusím za týden doučit.

Nahoru Odpovědět 4.2.2014 15:04
Nesnáším {}, proto se jim vyhýbám.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Jan Vargovský:

Za chvíli tomu přijdeš na chuť a už budeš EF milovat :)

 
Nahoru Odpovědět 4.2.2014 15:06
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Jan Vargovský
David Čápka:

Právě, kdo někdy použil kvalitní ORM, tak už nebude chtít nic jiného. To jsou prostě ty technologie, kdy člověk nakliká aplikaci kterou by jinak dělal hodiny za minuty :)

Nahoru Odpovědět 4.2.2014 15:31
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Michal Žůrek (misaz):

V čem je jiný ten SQL server CE než SQL server 2012 (2014)?

Nahoru Odpovědět 4.2.2014 15:34
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michal Žůrek (misaz)
David Čápka:

CE už máš nainstalovaný, je součástí VS nebo dost možná i součástí Windows. CE značí CompactEdition. Používá se stejně, ale DB pak funguje všude, ne jen tam, kde je nainstalovaný MS SQL Server. Jsou tam nějaká malá omezení.

Nahoru Odpovědět 4.2.2014 15:36
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Artas
Redaktor
Avatar
Odpovídá na David Čápka
Artas:

Je možné, že při vytváření nového Data Connection nemám v nabídce SQL server CE? Já mám na výběr jen toto: Microsoft Access Database File, Microsoft SQL Server a Microsoft SQL Server Database File (Používám VS2013 Express for desktop)

 
Nahoru Odpovědět  +1 4.2.2014 16:07
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Artas
David Čápka:

Otevři si Server Explorer, přidej si nový Connection a u výběru DB dej Change a tam ho musíš mít.

Nahoru Odpovědět 4.2.2014 16:15
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Michal Žůrek (misaz):

taky s tím zápasím, pořád mi to nabízí mdf, to je ono?

Nahoru Odpovědět 4.2.2014 16:23
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 4.2.2014 16:27
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Artas
Redaktor
Avatar
Odpovídá na David Čápka
Artas:

Server explorer jsem nikde nenašel, mám tam jen Database Explorer a tam když dám Add connection, tak mám jen tyto volby: https://www.dropbox.com/…0%282%29.png

 
Nahoru Odpovědět 4.2.2014 16:49
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Artas
David Čápka:

To je dost divné, budeš si ho tedy muset doinstalovat.

Nahoru Odpovědět 4.2.2014 16:52
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Artas
Redaktor
Avatar
Artas:

Tak jsem si to stáhl a při instalaci mi to říkalo, že už ho mám nainstalovaný, a nabídlo mi to akorát odstranit nebo opravit, zkusil jsem opravit ale ničemu to nepomohlo, ve VS ho pořád nevidím.

 
Nahoru Odpovědět  +1 4.2.2014 17:03
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Artas
David Čápka:

Vypadá to, že od VS 2013 nejde použít. Použijte tedy normální SQL Server :)

Nahoru Odpovědět 4.2.2014 17:17
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lako
Člen
Avatar
Odpovídá na Artas
Lako:

CE lze ve VS 2013 použít, ale nedá se k němu připojit skrze server explorer. Jinak programovat nad ním můžete a není to problém co se týče code first přístupu.
Pokud však toužíte nakukovat do databáze poslouží perfektně tento doplněk: http://visualstudiogallery.msdn.microsoft.com/…6e74d369f7a1

 
Nahoru Odpovědět 4.2.2014 21:13
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lako
David Čápka:

To sice ano, ale když MS něco vyhodil, tak to rozhodně nebudu používat i když to nějak jde.

Nahoru Odpovědět 4.2.2014 21:39
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lako
Člen
Avatar
Odpovídá na David Čápka
Lako:

Jo, ano.. Ale tady to není zas takový problém
Moc to nechápu proč to MS zaříznul.
Alternativa je LocalDB, která však má víc než 160 MB a to se už opravdu nehodí k nějaké appce jen tak..

 
Nahoru Odpovědět 4.2.2014 23:06
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lako
David Čápka:

MS má spoustu technologií a ty, které používá málo lidí nebo generují malý zisk, prostě zařízne, aby mohl vyvíjet jiné. To je běžné chování zdravé firmy. Podobně skončilo i XNA. O LocalDB jsem ještě neslyšel, máš s tím nějaké zkušenosti?

Nahoru Odpovědět 5.2.2014 9:28
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Michael Olšavský:

:OO ten Entity Framework je úplně perfektní! :3 :) Lehčí práci s DB jsem ještě neviděl. Vždycky jsem se s tím patlal přes ruzné sql ovladače procedurálně :)

 
Nahoru Odpovědět 5.2.2014 11:07
Avatar
Petr Domes (petrds):

Ten Entity Framework mi přijde lehce jednodušší než LINQ to SQL. EF má třeba luxusní funkci "Update Model from database..." čili když změním něco v DB, tak jedním klikem se mi aktualizuje i ORM.

 
Nahoru Odpovědět 5.2.2014 12:39
Avatar
Lako
Člen
Avatar
Odpovídá na David Čápka
Lako:

Možná to bude také tím, že se s CE ztrácela nutnost pronájmu SQL serveru a z toho plynoucí malé zisky...
S localDB zkušenost nemám. Na nepodporu CE ve vs13 jsem přišel ve stejnou chvíli...

 
Nahoru Odpovědět 5.2.2014 13:28
Avatar
petrph
Člen
Avatar
Odpovídá na Lako
petrph:

Asi takhle - MS SQL Server je robustní databázovej server pro přístupy tísíců a desítek tisíc klientů. Ale pro malý subjekty typu SOHO (tj. desktopové aplikace,či malé podnikové sítě, intranety pro desítky klientů) je zbytečně drahej a taky HW náročnej,čili v týhle skupině by si ho málokdo kupoval. . Čili-pro tuhle skupinu dodává Microsfot dál MS SQL Server CE (a lze si ho stáhnout) - akurát jsou v něm skutečně některé rozšířené funkce oproti čistému SQL serveru zablokovaný...Čili i v ve Visual Studiu 2013 lze naprogramovat přístup k CE, ale přes Entity Framework ne...

 
Nahoru Odpovědět 5.2.2014 17:08
Avatar
Odpovídá na David Čápka
Jakub Lásko[Saarix]:

U výběru té osoby k faktuře to má být, že uživatel uvidí seznam jmen dodavatelů ze seznamu osob, nebo vytáhnout ID uživatelů jako seznam dodavatelů?

Nahoru Odpovědět 5.2.2014 18:48
Časem je vše možné.
Avatar
Lako
Člen
Avatar
Odpovídá na petrph
Lako:

:) Ano to já vím. Řešíme tu trochu jiný problém a to ten že MS pomalu CE odpískává...
A s EF samozřejmě použít lze.

 
Nahoru Odpovědět 5.2.2014 19:24
Avatar
petrph
Člen
Avatar
Odpovídá na Lako
petrph:

Takovej důvod proč Microsoft možná pomalu odpískává CE je asi ten že už současně nabízí podobnej produkt SQL Server 2014 Express - a taky zdarma.a ten asi bude dělat skoro to samotný...Čili jenom že neplatí to že by Microsoft někoho tlačil do drahýho plnýho MS SQL Serveru, ty bezplatný varianty budou dál.

 
Nahoru Odpovědět 5.2.2014 20:39
Avatar
Petr Domes (petrds):

Zde je můj výtvor
https://drive.google.com/…LU9TZnM/edit?…

DB a PDF --> brnkačka

Vytvoření funkčního GUI trvalo nejdéle. Nefunguje mi žádná validace (PSC,ICO a Cena se musí zadat jako číslo). Zkoušel přímo v XAMLu použít nějaký vlastní validátor (ValidationRule) , ale neúspěšně. Do pondělí to snad dořeším. Dále mám v datagridech a comboboxech jeden řádek navíc, který je prázdný, což vůbec nechápu co tam dělá, ale jinak to funguje celkem použitelně :-D

 
Nahoru Odpovědět 6.2.2014 16:41
Avatar
Jan Vargovský
Redaktor
Avatar
Jan Vargovský:

http://leteckaposta.cz/961208089

Umí to jen základ co jsem dělal před pár dny. Myslel jsem, že vylepším o víkendu, ale maturiták + ZOH udělaly svoje :D

 
Nahoru Odpovědět 9.2.2014 20:18
Avatar
Petr Domes (petrds):

Tak aspoň ty validace jsem dořešil
http://leteckaposta.cz/540692533

p4koo: dle zadání to má být ve WPF a ne ve WF :)

 
Nahoru Odpovědět 10.2.2014 2:34
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

p4koo - Mocky máš skvěle udělané, pokud jsem to správně pochopil, generují se náhodně pomocí dll knihovny. Zbytek aplikace je bohužel dost odbytý a není to WPFko. Snad tě soutěž tedy alespoň namotivovala k těm mockům.

MartinSakra - U osoby bych měl vybírat asi celou adresu, ne zvlášť Město, Jméno a ČP. Chválím validace, i když by měly být v modelech, ne v CodeBehind. Co se týče WPF formuláře, tak je jen naklikaný myší, chtělo by to používat kontejnery a relativní pozice, potom bude aplikace responzivní. Nenašel jsem procházení faktur.

Petr Domes (petrds) - Tohle řešení je pecka! Nějak podobně jsem si to představoval ve svých naivních představách. Umí to kompletně administraci, výpis, generování do PDF a aplikace obsahuje validace. WPF je dost pěkné, bindingy, gridy, usercontroly.

PDFko neumí česky, dá se to spravit dodáním řádku:

XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);

a tohoto parametru následně k fontům. Máš to trochu Czechglish (identifikátory jako selectedFaktura), chtělo by to psát buď česky nebo anglicky.

Placka je tvoje! S EF nemám takové zkušenosti, docela by mě zajímalo za jak dlouho se dá tohle udělat? Napiš si x o placku :)

Všem díky za váš čas a účast, vážím si toho a budu se těšit u příští soutěže.

Nahoru Odpovědět 10.2.2014 11:16
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na David Čápka
Jan Vargovský:

Používám to skoro všude, když pracuju s DB. Můžeš to stáhnout přímo z nugetu nebo skrz package consoli.

 
Nahoru Odpovědět 10.2.2014 12:50
Avatar
DreamKiller
Neregistrovaný
Avatar
DreamKiller:

Dobrý den, zkoušel jsem ten EF, ale vůbec jsem ho nepochopil. Plánujete na něj udělat tutoriály?

 
Nahoru Odpovědět 10.2.2014 15:22
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na DreamKiller
Jan Vargovský:

V ASP.NET určitě budou (nebo už jsou?), jakou techniku EF jsi zkoušel?

 
Nahoru Odpovědět 10.2.2014 15:56
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 37 zpráv z 37.