Az osztály, az összetevő és a vezérlés közötti választás
A .NET-keretrendszer összetevőinek fontos jellemzője, hogy támogatják a tervezést. Ez azt jelenti, hogy az összetevő osztály használható egy gyors alkalmazásfejlesztési környezetben, például a Visual Studio alkalmazásban. Hozzáadhat egy összetevőt a Visual Studio eszköztárhoz, vagy húzza át egy űrlapra. A fejlesztési felületen is dolgozhat vele. Megjegyezzük, hogy az IComponent típusok alapvető támogatása a tervezési idő alatt beépül a .NET-keretrendszerbe; a komponensfejlesztők nem kell további erőfeszítéseket tenniük ahhoz, hogy kihasználják a fejlesztés során támogatott alapfunkciókat.
A komponens elhelyezhető (elhelyezve) egy tartályban (a koncepció később kerül meghatározásra ebben a részben). Ha a komponens egy szubsztrátumra kerül, akkor a tartályon keresztül kapcsolódik az aljzaton keresztül (a koncepció később kerül meghatározásra ebben a részben), és kérheti és átveheti a tároló szolgáltatásait is. Annak érdekében, hogy az erőforrások szabadon maradjanak, amikor a tároló megsemmisült, a konténernek végre kell hajtania az IDesposable felületet. A Dispose módszer végrehajtása során a tartálynak fel kell szabadítania az általa használt valamennyi erőforrást, és felhívnia a Dispose módszert az összes benne lévő összetevőre.
A fészkelés logikus szinten valósul meg, és lehet, hogy nem rendelkezik vizuális ábrázolással. Az adatbázis-összetevőket tartalmazó köztes szintű tároló olyan fészekelés, amely nem rendelkezik vizuális megjelenítéssel. A vizuális fészkelés a Windows Forms Designer és a Visual Studio Web Forms Designer esetében figyelhető meg. A vizuális fejlesztési felület olyan tartály, amely egy űrlap-összetevőt tartalmaz (a Webes űrlapok tervezője esetében egy oldalelem).
Az összetevők képesek vagy nem támogatják a távoli interakciót. Azokat a komponenseket, amelyek támogatják, referenciával vagy értékkel vannak összekapcsolva. A rendezés folyamata magában foglalja a tárgyaknak az entitások határain túlra történő átvitelét, például alkalmazási területeket (könnyű folyamatokat), folyamatokat, sőt gépeket is. Ha a rendezést referenciaként hajtja végre, létrejön egy proxy, amely távoli hívásokat hajt végre az objektumon. Ha a rendezést érték szerint hajtja végre, az objektum sorozatos másolatát a megfelelő határon keresztül küldi el.
A rendszererőforrásokat körülfogó távoli interakciót támogató összetevők mesterkedése nagy, vagy különálló példányként létezik, referenciaként kell végrehajtani. A komponensek alap-osztályozása, melyeket referenciaként sorolunk fel, a komponens. Ez az alaposztály végrehajtja az IComponent interfészt és örökli a MarshalByRefObject osztályt. A .NET Framework osztálykönyvtár számos összetevője a komponens osztályból származik. beleértve a Control (a Windows Forms vezérlők alaposztályát), a WebService (az ASP.NET használatával létrehozott XML webszolgáltatások alaposztálya) és az Időzítő (az ismétlődő eseményeket létrehozó osztály).
A távoli interakciót támogató komponenseket, amelyek egyszerűen megőrzik az államot, értékként kell végrehajtani. Az olyan összetevők alapkategóriája, amelyek értéknövelése a MarshalByValueComponent, a MarshalByValueComponent. Ez az alaposztály végrehajtja az IComponent felületet, és örökli az objektumosztályt. A .NET Framework osztálykönyvtárának csak néhány összetevője származik a MarshalByValueComponent osztályból. Minden ilyen összetevő a System.Data névtérhez tartozik (DataColumn.DataSet.DataTable.DataView és DataViewManager).
Az értékekhez és referenciákhoz rendelt objektumok alaposztályai az Object és a MarshalByRefObject, de a megfelelő származtatott osztályok nevei a MarshalByValueComponent és a Component. Az elnevezési logika az, hogy a leggyakrabban használt típusnak egy egyszerűbb neve van.
Ha a távoli komponensek közötti interakció nem várható, akkor nem szabad örökölnie a komponens osztály alapvégrehajtásából; ehelyett az IComponent felületet közvetlenül kell végrehajtani.