Kom på ett tredje alternativ och kanske det bästa! :)
Att namespace och klass inte har nått med mappsökvägen att göra!
namespace [Client].[Application].Web.UI
{
public partial class ForumView
{
}
}
6 svar · 658 visningar · startad av doggelito
Hur döper ni egentligen era namespace och klasser?
Jag kan inte bestämma mig hur jag vill ha det, eller hur det borde vara! :OO
Låt säga att man har en denna filstruktur:
/AppRoot/Admin/Modules/Forum/View.aspx
Jag har då två alternativ till namn, kanske har ni fler! :)
namespace [Client].[Application].Web.UI
{
public partial class Admin_Modules_Forum_View [i]//alt. AdminModulesForumView[/i]
{
}
}
eller
namespace [Client].[Application].Web.UI.Admin.Modules.Forum
{
public partial class View
{
}
}
Finns det några direkta för/nackdelar med alternativen?
Kom på ett tredje alternativ och kanske det bästa! :)
Att namespace och klass inte har nått med mappsökvägen att göra!
namespace [Client].[Application].Web.UI
{
public partial class ForumView
{
}
}
namespace Company.Application.WebClient
{
}
namespace Company.Shared.Utitlies
{
}
namespace Company.Application.WebService
{
}
Det viktigaste är väl egentligen att du har rätt namespace på saker som ligger i undermappar tex. ska ju filer i application-root/SomeLogic ska ju i så fall få namespaces
namespace Company.Application.SomeLogic
{
}
Försök undvika _ (understreck) i namngivning av klasser och metoder. De fyller ingen som helst funktion. AdminUserSection tycker jag själv är lättare att tyda än Admin_User_Section. Du smutsar ner koden med _... IMHO
Enligt MS guidelines, om jag nu mins rätt :p
Så ska man döpa namespace till följande:
företag.produkt.subprodukt.osv
Tex:
Microsoft.Office.Word.Templates
Under Templates samlar man klasser som har med templates att göra..
Ska man följa MS guidelines när det gäller namn på klasser så är det efter PascalCalsing.. så inte "_" för " ", utan allt ska sitta ihop.
/Fredrik Normén
MVP - MEET -ASPInsiders
Hmm, jag är ändå lite förbryllad! :)
Om man tar exemplet Forum. Som jag bygger idag så skulle Forumet innehålla tre delar (om man räknar bort data access): BusinessObjects, BusinessLogics samt UI.
Det skulle då ge strukturen:
namespace [Client].[App].BusinessObjects
{
public class Forum
{
public int ID...
}
}
namespace [Client].[App].BusinessLogics
{
public class BLForum
{
public Forum GetById(int id)...
}
}
Men sen, en aspx sida som visar forumtrådar, vad heter den klassen och i vilket namespace läggs den?
Alla har väl gjort ett forum nån gång! :) Vad heter eran klass/namespace?
Den ligger ju i presentationslagrets namespace
namespace [Client].[Application].WebClient
{
public partial class _Threads : Page
{
protected void Page_Load(object sender, Eventargs e);
}
}
doggelito skrev:
Men sen, en aspx sida som visar forumtrådar, vad heter den klassen och i vilket namespace läggs den?
Alla har väl gjort ett forum nån gång! :) Vad heter eran klass/namespace?
Jag föredrar Domain Driven Design, så om vi utgår från det och jag ska skapa ett forum, så skulle det kanske se ut som följande:
Projekt och Namespace:
Nsquared2.Forum.DomainLayer <Projekt och root namespace>
Nsquared2.Forum.DomainLayer.Entities <folder i projektet och namespace>
Nsquared2.Forum.DomainLayer.Repositories <folder i projektet ochnamespace>
Under Entities skulle alla mina entiteter finnas, tex Thread, Post, User etc
Under Repositories skulle alla mina repositories finnas, du kan se Repository lite som som DAL.
Projekt och Namespace:
Nsquared2.Forum.PresentationLayer <Web sitens namespace>
eller bara Nsquared2.Forum
alternativ om jag har flera klienter:
Nsquared2.Forum.WebApplication (eller WebClient)
Nsquared2.Forum.WinApplication
Här ligger alla vyer (WebForms), tex User.aspx, Threads.aspx osv.
Skulle jag bygga efter "Windows DNA" där vi delar upp Presentation, Business och Data Access, så skulle jag ev ha följande namespace och projekt:
Nsquared2.Forum.PresentationLayer
Nsquared2.Forum.BusinessLayer
Nsquared2.Forum.DataAccessLayer