čtvrtek 12. února 2015

Analýza systému do TFS

Areas

Určuje jednotlivé moduly aplikace. Je to kontejner na PBI které spolu logicky souvisí. PBI se rozčleňují podle toho jestli se týkají databáze, Business logiky, grafického rozhraní nebo testování.
Vytvářet stromovou struktůru pomocí PBI je špatný nápad proto že se stane potom Backlog nepřehledný při vyžším stupni zanoření. Navíc pokud nadřízené PBI je v jednom sprintu a podřízené v jiném tak to způsobuje zmatky v plánování jednotlivých sprintů. 

  • User
  • Settings
  • Company
  • Address
  • Persons
  • Order
  • Reporting
  • Statistics

PBI

PBI obsahuje popis daného problému. Na záložce StoryBords screanshoty s rozložením vstupních polí, pokud se jedná o UI, nebo UML diagram pokud se jedná o data. Případně vývojový diagram pokud se jedná o Business.
Na záložce Test Cases pak postup jak se zadání otestuje v UI nebo postup podle kterého se vytvoří unit test.

  • Analýza - pro danou areu je pouze jedno místo kde je zadání a požadavky
  • Data: UserTable - UML, seznam polí, datové typy, velikosti
  • Data: RoleTable
  • Business: UserRepository - seznam dotazů (EmployCountForCompanyById, ...)
  • Business: UsersController - seznam akcí
  • UI: LoginPage - sketch obrazovky, seznam polí na obrazovce
  • UI: RegistrationPage
  • UI: Vzhled tiskovky objednávky - sketch formuláře, seznam polí a podmínky kdy se pole zobrazují a kdy ne  
  • TC: LoginPage - 1. Zadám login, 2. zadám heslo, 3. Dám přihlásit, 4. jsem přihlášen

WI

Řešitel zaznamená postup jak daný problém vyřešil a kolik na něm strávil času. Pokud k vyřešení úkolu použil nějaké zdroje jak např. http://stackoverflow.com/ Je vhodné přidat odkaz na tento článek do WI.
Vyřešit: Registrace uživatele do systému 
Vyřešit: Tisk poznámky na tiskovce objednávky

Analýza systému v praxi

Tak co budeme dělat?
Systém na objednávky.
=> Area - Order

Co na té objednávce bude za informace?
Datum vytvoření, popis objednávky, kdo ji vytvořil
=> PBI - Analýza - Tabulka objednávky obsahuje sloupce (CreateDate, ...)
=> PBI - Data: OrderTable (CreateDate, Note, UserId)
=> Area - User
=> PBI - Data: UserTable ....

No a co s tou objednávkou bude systém dělat?
Vytvoří ji, umožní její editaci a půjde vytisknout
=> PBI - Busines - OrderRepository - GetList(), GetById()
=> PBI - Busines - OrderController - CRUD
=> PBI - UI - Seznam objednávek
=> PBI - UI - Karta objednávky
=> Area - Reporting

Jak zjistíme že to funguje podle požadavků?
No pokud vyplním všechna pole stisknu uložit, tak pokud příjdu znova a zobrazí se mi stejné údaje tak je to OK
=> TC - Otestuj: vytvoření objednávky - 1. ... 2. ... 3. ...

Jak bude vypadat ta tiskovka?
V hlavičce bude číslo objednávky.
=> PBI - Analýza - Tiskovka objednávky - V hlavičce se tiskne číslo objednávky
=> PBI - Analýza - Tabulka objednávky - Obsahuje ještě sloupec OrderNumber
==> WI - Vyřešit: Do tabulky objednávky přidat sloupec OrderNumber 
=> PBI - UI: Vzhled tiskovky objednávky
==> WI - Vyřešit: Tisk hlavičky na objednávce - hlavička obsahuje OrderNumber

No a teď mi kluci řekněte jak dlouho vám to bude trvat?
http://zbyneksulc.blogspot.com/2014/12/aspnet-mvc-postup-prace-casovy-odhad.html

Refactoring bez testů = sebevražda

Najdi deset rozdílů

return (entity.IsOutgoingPayment() ? "BV" : "BP") + entity.Date.ToString("yy");


return entity.IsOutgoingPayment() ? "BV" : "BP" + entity.Date.ToString("yy");


  1. BV15 nebo BP15
  2. BV nebo BP15

Proházet pořadí propert a seřadit je podle abecedy je taky dobrý nápad, ale může to mít vliv třeba na serializaci do XML nebo na vykreslení ovladacích prvků v automaticky generovaném GUI pomocí reflexe?

Správná odpověď je: Všechno je možné, ale zjistím to jakmile znovu spustím testy.


Zkuste se podívat na knihovnu, která by měla umět porovnat dva obrázky.
https://msdn.microsoft.com/en-us/library/hh191601.aspx
https://blogs.msdn.microsoft.com/domgreen/2009/09/06/comparing-two-images-in-c/

pondělí 9. února 2015

Reporting

Varianty


  • DevExpress reporting $599,-
  • Teleric Reporting $599,-
  • PdfSharp a MigraDoc je zdarma

Cena

Kurz ČNB USD ke dni 23.1.2015 je 24,013 Kč
Cena reportingu je tedy 14.384,- Kč

To odpovídám mezi 30 - 60 ČlověkoHodinám cca 4-8 dní práce.
Za 30 ČlověkoHodin se dá v MigraDocu vytvořit jednoduchý jednostránkový report a propojit ho se zbytkem aplikace.

Reporty v MigraDoc se tvoří seskládáním designu pomocí sekcí, odstavců a tabulek.

Určité problémy můžou vzniknout v situacích:
  • Stránkování
  • Přetékání textu
MigraDoc
Document
Section
PageSetup
Style

Font
Font písma. Barva, velikost, řez, název fontu

Format a  Alignment

Paragraph
Umožňuje vkládat text

TextFrame
Umožňuje vložení tabulky. Má již přednastavenu šířku i výšku

AddText
Vložení prostého textu

AddFormatedText
Vložení textu určitého stylu nebo řezu písma

Table 
Tabulka
- Limitace - řádek tabulky nemůže přesáhnout stránku

Cell
Buňka tabulky. Může me jí nastavit její šířku.

Row
Řádek tabulky. Můžeme mu nastavit výšku a barvu pozadí.

Borders (Visible, Size)


Shading 
Colors


Stránkování 

Footer

Zdroje:

ClickOnce

ClickOnce

Instalace jedním kliknutím

Umí instalovat WinForm, WPF, Console aplikace 
Neumí instalovat Windows Services, Websites na IIS, Drivery
Nedostane se do GACu, do registrů
Umí vytvořit asociaci s typem souboru a přiřadit mu ikonu

Alternativy:
  • WIX
  • Squirrel
  • InnoSetup - jednoduše se používá na jednoduché instalačky
  • InstallShield - s ním mám špatné zkušenosti:( 

Deployment

ApplicationDeployment.CurrentDeployment
Toto API poskytuje informace IsFirstRun, číslo verze, cesty k souborům a možnost stahování dodatečného obsahu.

Automatická aktualizace

Umožňuje nastavení zda se má kontrola nových verzí spouštět před spuštěním nebo po ukončení aplikace.

Publish

ClickOnce umožňuje nasazení pomocí těchto variant FTP, UNC (FileShare), WEB
Automaticky si incrementuje číslo verze nasazení

Nepotřebuje administrátorské práva

Pokud nepotřebujeme instalovat .NET framework 4.5.1 nebo např. SQL Server Express 2012 tak pro instalaci aplikace stačí pouze práva běžného uživatele

Signing

Aby aplikace při instalaci nezobrazovala varovné hlášení, je potřeba ji podepsat certifikátem od důvěryhodné autority např. Symantec, Thawte, Comodo

Zdroj:
http://www.pluralsight.com/courses/clickonce-deployment-fundamentals [2h 22m]
https://robindotnet.wordpress.com/category/clickonce-deployment/