Název aplikace + návrh databáze – Offtopic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Název aplikace + návrh databáze – Offtopic – Fórum – Programujte.comNázev aplikace + návrh databáze – Offtopic – Fórum – Programujte.com

 

20. 8. 2009   #1
-
0
-

Zdravím,
už před nějakým časem jsem začal uvažovat nad vytvořením systému pro správu (nejen) blogů a zaplnit tak jistou mezeru na trhu v oblasti .NET aplikací. Nyní jsem se k této myšlence vrátil a poupravil jsem databázovou strukturu. Nezahrnuje sice všechny mé myšlenky, ale prozatím ji nehodlám dále rozšiřovat. Uvítám však veškeré připomínky a návrhy. Diagram a objektový model -> http://img17.imageshack.us/gal.php?g=diagramq.jpg.

Stejně tak mě potěší, pokud vás napadne zajímavej název výsledné aplikace -> může, ale nemusí souviset s účelem aplikace a neměl by obsahovat slovo "blog".

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
NOclipus0
Newbie
21. 8. 2009   #2
-
0
-

To djanosik : To bude nějakej redakční systém či co? Nebo nějaké desktopová aplikace pro správu redakčního systému, třeba pomocí SOAP? Protože redakčních systémů používajících .NET je hodně - Blogengine.NET, Umbraco, Comunity Server...

Nahlásit jako SPAM
IP: 88.103.97.–
dannyk0
Věrný člen
21. 8. 2009   #3
-
0
-

Spis podle navrhu te databaze bych tipl, ze to ma byt spravce nekolika blogu. Jinak navrh nevypada spatne, ale otazkou je, co to ma vsechno umet a delat, ale na prvni pohled vypada v pohode.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
bukaj_0010
Věrný člen
21. 8. 2009   #4
-
0
-

djanosik
Sice mě žádné jméno nenapadlo, ale zkusil bych být tebou Web 2.0 Domain Generator[1]. Ten vysype toliko blbých jmen, že něco radši vymyslíš sám :o)

Návrh databáze se mi zdá docela standardní pro podobné služby. Jen bych asi pro stromy (kategorie, komentáře) spíše použil traverzování kolem stromu a celý ten kus diagramu kolem rolí se mi zdá podivný (k čemu role a skupiny, když uživatel může mít přiřazena přímo práva? Předpokládám, že práva je vlastně tabulka toho, co se smí – pokud uživatel/role nemá přiřazen(a) žádná práva, nic nesmí.). Také to vypadá, že vícejazyčnost nebude řešena. Správně? Když už to podporuje více blogů, tak tohle by se tam určitě hodilo.

[1] http://www.dotomator.com/web20.html

Nahlásit jako SPAM
IP: 88.101.128.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
21. 8. 2009   #5
-
0
-

Samozřejmě, má to být webová aplikace využívající ASP.NET MVC. Vytvářet další deskotovou aplikaci, by bylo nejspíš plýtvání časem.

To NOclipus : Závažným problémem všech jmenovaných a dalších CMS/BlogEnginů pro .NET je, že mi ani jedna z nich nevyhovuje :). A druhá věc je, že kromě Community Serveru, se kterým nemám ani trochu dobré zkušenosti (i když nevím, jak nová verze, která už se tak nejmenuje), žádný z nich nepodporuje vytváření X blogů v rámci jedné instalace. Existujou způsoby, jak to obejít, ale popravdě mě to moc neoslovilo.

To dannyk : Já bych jen nerad sepisoval seznam plánovaných funkcí (v hlavě toho mám celkem hodně), ale řekněme, že se časem chci přiblížit systémům, jako je např. Wordpress, MovableType, apod.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
21. 8. 2009   #6
-
0
-

To bukaj_001 : Nad traverzováním kolem stromu jsem taky uvažoval, ale troufám si říct, že tahle metoda je o něco rychlejší. O aktualizaci hodnot TreeLevel a TreePath se stará trigger při vložení záznamu a při updatu (pokud se změní hodnota ParentId) -> pro aplikaci je to zcela transparentní. Máš k tomu nějakej jinej důvod?

A pokud jde o ty role, myslel jsme to asi takhle. V průběhu vývoje bude určitě potřeba omezit přístup k některým částem aplikace. V ASP.NET se to standardně řeší jen s pomocí rolí (pokud je uživatel v určité roli, může něco udělat, jinak ne). Problém nastane, pokud je třeba některé role přejmenovat, přidat nové, apod. Aplikace to nemůže zaregistrovat, protože většina RoleProviderů (jakási abstrakce na zvoleným uložištěm) využívá k identifikaci název role.

Já jsem se tedy rozhodl primárně neřešit, v jaké je uživatel roli, ale jaká má přiřazena oprávnění (oprávnění lze dělit do skupin, ale nevím, jestli to tak zůstane) a přiřazují se především k rolím (vztahují se pak na více uživatelů) a pokud je to nutné/vhodné, pak je lze přiřadit i ke konkrétním uživatelům (nebudu pro jednoho uživatele, kterému chci např. dočasně přidělit nějaká práva, vytvářet novou roli). Možná je to zbtečně komplikované, uvidíme.

Vícejazyčnost ve smyslu, že lze lokalizovat UI, samozřejmě bude. Jen ještě nevím, zda se hodnoty budou ukládat do DB. Lokalizace obsahu řešena nebude (alespoň k tomu nevidím důvod).

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
marioff0
Expert
21. 8. 2009   #7
-
0
-

hned ma napadlo notesite ... celkom pekne nie??

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
bukaj_0010
Věrný člen
21. 8. 2009   #8
-
0
-

djanosik
[…] tahle metoda je o něco rychlejší […] Máš k tomu nějakej jinej důvod?
Benchmarky jsem na tohle nikdy nedělal, takže nevím, jak je to s rychlostí té které metody. Relační databáze se podle mě obecně na ukládání stromových struktur nehodí a traverzování kolem stromu se mi zdá jako nejmenší zlo. I když teď, když přemýšlím nad tím, jak různé operace provést s traverzováním a s ukládáním cesty v stromu, začíná se mi ukládání cesty líbit čím dál tím víc.

[…] role […]
Už snad chápu. Mně vždycky něco na takovémto ukládání rolí a oprávnění do databáze nevoní. I když stále mě nenapadá, jak to udělat elegantněji.

Vícejazyčnost ve smyslu, že lze lokalizovat UI, samozřejmě bude. Jen ještě nevím, zda se hodnoty budou ukládat do DB. Lokalizace obsahu řešena nebude (alespoň k tomu nevidím důvod).
Myslel jsem tu lokalizaci samotného obsahu, ne UI. Jinak lokalizaci UI bych do databáze nerval – na to jsou efektivnější způsoby (nevím, jestli má .NET podporu pro gettext, či má něco podobného svého; ale radši bych využil nějaký takový specializovaný nástroj, než databázi jako úložiště + si k tomu psát ještě vlastní kód pro obsluhu).

Nahlásit jako SPAM
IP: 88.101.128.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
21. 8. 2009   #9
-
0
-

To bukaj_001 : V .NETu se pro lokalizaci UI většinou používaj Resources (soubory *.resx). Existuje výchozí soubor např. Messages.resx a k němu soubory pro "každou" kulturu (Messages.cs.resx, Messages.en.resx, atd). Výchozí soubor se zkompiluje společně s projektem (ClassLibrary.dll), ostatní jsou uloženy v satelitních knihovnách (cs/ClassLibrary.resources.dll, en/ClassLibrary.resources.dll). Pokud někdo chce jen konkrétní lokalizace, může zbytek smazat. Správné resources se většinou volí podle kultury aktuálního vlákna, případně podle UserAgent řetězce u ASP.NET aplikací (automaticky, lze nastavit v konfiguraci).

Dokážu si představit, že někdo bude chtít lokalizovat stránky (Pages) a případně další části, takže to asi pořeším, ale u příspěvků (Posts) si nejsem moc jistej.

BTW: Dík za tip na ten generátor. Netuším, jestli bych si tam něco vybral, ale je to zajímavý :)

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
dannyk0
Věrný člen
21. 8. 2009   #10
-
0
-

Ohledne roli, skupin: Podle me to ma smysl a daji se tim jemneji ridit prava. Vyuziti to podle me ma, ale otazkou zustava, jestli to je az tak potreba.
Pred nedavnem jsem videl i zajimavy navrh systemu roli a prav, kdy role se daly dedit:



Permissions.addRole("User");
Permissions.addRole("Admin", "User");

dale se pridaly nejake zdroje


Permissions.addResource("download");
Permissions.addResource("clanky");

a k jednotlivym resources se prirazovaly prava


Permissions.addPrava("User", "download", "view");
Permissions.addPrava("Admin", "download", "delete");

Nejak takto to priblizne vypadalo. Podle me je to vcelku zajimavy navrh a pak uz neni problem kontrolovat pristupy k jednotlivym vecem.

Co se tyce lokalizace obsahu, tak to je podle me blbost a nema to smysl,ale upravy v db by byly v celku minimalni, takze zahrnout by se to dalo. Ohledne lokalizace UI,tak pouzit resources je pekna vec, ale podle me je to prilis velke omezeni, kdyz se vysledek zkompiluje do dll. Takhle by bylo lepsi pouzit externi soubor a pak ho nacist a lokalizovat sablonu.

Dale bych zkusil pridat moznost pluginu, ale to bych zavedl asi az pozdeji.

BTW: Co takhle nazev Redacto :o)

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
21. 8. 2009   #11
-
0
-

To dannyk : Hmm, to nevypadá špatně.

Ad Resoruces: Chápu. V interní aplikaci to není na škodu, ale tady by bylo žádoucí, aby kdokoliv mohl vytvořit vlastní lokalizaci a dát ji k dispozici ostatním, to při použití *.dll není dost dobře možné. Otázka je, zda zůstat u ResourceManageru, ale načítat nezkompilované resx soubory z nějaké složky a nebo použít jinej systém?.

Pluginy určitě ano, ale nejdřív musím domyslet architekturu.

BTW: Zajímavej název :)

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
dannyk0
Věrný člen
21. 8. 2009   #12
-
0
-

Ad Resources: Ja bych se na ty resources asi vykaslal a udelal neco vlastniho, protoze ne kazdy ma editor resx souboru. A ono udelat si nejaky vlastni mensi sablonovaci system, ktery by to prepisoval by nemel byt takovy problem.

Ad Nazev: Ze jo, taky se mi libi :D

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 24 hostů

Podobná vlákna

Grafický návrh aplikace — založil Peyton Sharp

Návrh databáze — založil Dragon

Návrh databáze — založil kucape2

Návrh databáze — založil Gooo

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý