---
title: "Namnrymder, klasser och modellering"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/114857-namnrymder-klasser-och-modellering"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "OveRRidE"
published: "2004-11-01T12:45:16.000Z"
updated: "2004-11-01T14:56:39.000Z"
replies: 3
views: 265
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/114857-namnrymder-klasser-och-modellering"
---

# Namnrymder, klasser och modellering

## #1 — OveRRidE, 2004-11-01T12:45Z

Hej! :)

Jag funderade lite på hur man skall strukturera upp en lite större applikation när det kommer till namnrymder, moduler och klasser. 

Vi ponerar en VB-fil med tre fantastiskt väl namngivna namnrymder i;

```
Namespace1
   Module1
   Module2
   Class1
   Namespace2
      Class2
      Namespace3
         Class3
         Class4
      End Namespace
   End Namespace
End Namespace
```

Kan nu t.ex. Class3 använda metoder i Module1 och Module2? Hur mycket skall man egentligen klämma in i en fil? Kan jag distribuera min 'trädstruktur' av namnrymder mellan hur många olika separata komponenter (vb-filer) som helst? Kan jag utan problem importera Namespace2 på samma sätt som jag skulle importera Namespace3, eller måste det namespace som jag importerar alltid vara längst ner i strukturen i filen?

Permalänk: https://www.webforum.nu/p/114857

## #2 — Pace, 2004-11-01T13:53Z

Varför lägger du allt i en fil?
Jag lägger en class per fil (alternativt module eller vad det nu kan vara), vilket gör att jag får överblick redan när jag tittar på filerna. Namespaces representeras av mappar.

Åtkomstmöjligheterna representeras av om de är deklarerade "public" eller motsvarande. Det har inget med strukturen att göra. Du kan importera vilken class/namespace som helst, förutsatt att dll-filen ligger i din applikations bin-mapp.

Permalänk: https://www.webforum.nu/p/1474299

## #3 — OveRRidE, 2004-11-01T14:01Z

> **Pace skrev:**
>
> Varför lägger du allt i en fil?

Ja, det är ju det jag frågar. ;)

> Jag lägger en class per fil (alternativt module eller vad det nu kan vara), vilket gör att jag får överblick redan när jag tittar på filerna. Namespaces representeras av mappar.

Vad döper du filerna till då isåfall? *Namespace1.Namespace2.Class*?

> Åtkomstmöjligheterna representeras av om de är deklarerade "public" eller motsvarande. Det har inget med strukturen att göra. Du kan importera vilken class/namespace som helst, förutsatt att dll-filen ligger i din applikations bin-mapp.

Ja, men kan jag gå utanför mitt 'namespace-scope'? Alltså, om jag importerar enbart Namespace1.Namespace2.Namespace3, kan jag då komma åt Module1 eller Class1 som finns i Namespace1, om nu de är definerade som Public?

Permalänk: https://www.webforum.nu/p/1474306

## #4 — Gladh, 2004-11-01T14:56Z

En fil per klass, eller i .NET 2.0 så kan du ha en klass utdelad på flera filer. Men just nu så är rekomendationen en fil = en klass.

Filen döper du till samma namn som classen, alltså inget namespace i klassen.

Respektive namespace är antingen en underkatalog i ditt projekt eller ett helt nytt projekt.

Säg att du vill skapa en massa Utility som du vill använda då döper du ditt huvudnamespace till.

\[FÖRETAGETS_NAME\].Utility

och om du där i vill ha en mail utility som innehåller flera olika klasser så blir det:

\[FÖRETAGETS_NAME\].Utility.Mail

Detta namespace kan vara en helt egen dll, eller så kan du skapa en ny undermapp i din \[FÖRETAGETS_NAME\].Utility Solution. Jag rekomenderar dig dock att ha det som ett eget projekt.

Namespace har inget med vilka filer som du "importerar" till ditt projekt, detta görs med references.

Om du skirver
Using \[FÖRETAGETS_NAME\].Utility.Mail

Så betyder det inte att du har importerat denna dll till ditt projekt utan att du bara gjort så du slipper skriva ut hela namespacet varje gång du vill åt någon klass som ligger i  \[FÖRETAGETS_NAME\].Utility.Mail namespacet.

\- M

Permalänk: https://www.webforum.nu/p/1474337

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/114857-namnrymder-klasser-och-modellering
