Laden...

Framework: MEF - lightcore - XY?

Erstellt von Oliver Stippe vor 10 Jahren Letzter Beitrag vor 10 Jahren 2.454 Views
O
Oliver Stippe Themenstarter:in
120 Beiträge seit 2009
vor 10 Jahren
Framework: MEF - lightcore - XY?

Hallo,

Lightcore
Lightcore Beispielprojekte
Managed Extensibility Framework (MEF)

ich sehe nicht die Vorteile der Freeware http://lightcore.ch/de/documentation/

Kann jemand einfach sagen, was die Vorteile, die Kriterien sind?
Die Beispiele laufen nicht, Namespace fehlen.
Muss man da was installieren?

Wann nehme ich diesen Framework?
Wann nehme ich MEF?
Gibt es noch andere?

Danke.
Vielleicht hat jemand ein prägnantes Projekt, wo man den Vorteil sieht.

Grüße Oliver

6.911 Beiträge seit 2009
vor 10 Jahren

Hallo Oliver Stippe,

Gibt es noch andere?

Ja. Z.B. List of .NET Dependency Injection Containers (IOC)

Zu den anderen Fragen kann/will ich nichts sagen - es ist auch viel Geschmackssache dabei.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

O
Oliver Stippe Themenstarter:in
120 Beiträge seit 2009
vor 10 Jahren

Hallo,
Danke.
Kannst du mit Deinen Worten die Vorteile solcher Container nennen?
Bezgl. LightCore hast Du ein gutes verständliches Beispiel?

Grüße Oliver

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo Oliver Stippe,

die Frage nach den Vorteilen ist zwar nicht unbeantwortbar, nämlich durch Entfernen von hardcodierten Abhängigkeiten die Warbarkeit, Flexibilität und (Unit-)Testbarkeit herzustellen oder zu erhöhen, aber sinnvoller ist es doch, nach dem Zweck von Dependency Injection zu fragen. Da solltest du dich bitte zunächst selbst einlesen, z.B.

Dependency Injection (DE)
Dependency Injection (EN)

Außerdem gibt es viele weitere gute Quellen unter den ersten Treffern von Google-Suche nach Dependency Injection.

Ein Dependency Injection Container nicht mehr als eine programmtechnische Umsetzung, um DI/IoC im Programm nutzen zu können.

Bitte lies dich vor weiteren Nachfragen bitte erstmal selbst gründlich ein, auch wegen [Hinweis] Wie poste ich richtig? Punkt 1.1.

herbivore

O
Oliver Stippe Themenstarter:in
120 Beiträge seit 2009
vor 10 Jahren

die Frage nach den Vorteilen ist zwar nicht unbeantwortbar, nämlich durch Entfernen von hardcodierten Abhängigkeiten die Warbarkeit, Flexibilität und (Unit-)Testbarkeit herzustellen oder zu erhöhen, aber sinnvoller ist es doch, nach dem Zweck von Dependency Injection zu fragen. Da solltest du dich bitte zunächst selbst einlesen, z.B.

Klar gibt es viele Quellen, die Frage ist halt wann nimmt man was.
Kriterien, Vorteile.
MEF
und LightCore
ist da snun ähnlich?

Schwierig für jemanden das Richtige zu wählen, den Einstieg zu finden,
wenn man mitInfos erschlagen wird.

Am besten das ist der Framework.
Mit dem kann man 5 Jahre arbeiten, dann muss man Schulungen etc. machen.

Grüße Oliver

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo Oliver Stippe,

warum willst du wissen, wann man was nimmt, wenn du anscheinend vor gar keinem konkreten Problem stehst? Wenn nur aus Neugier, dann finde es bitte wirklich selbst heraus. Alle möglichen Fälle hypothetisch durchzuspielen und das jeweils geeignetste Framework zu nennen, wäre viel zu aufwändig. Das ist ungefähr so, als wenn du fragst, für welchen Anwendungsfall benutze ich am besten welche Klassen aus dem .NET-Framework (und dann sind wir schnell bei den fünf Jahren, die eine solche Beschreibung kosten würde). Wenn du aber tatsächlich vor einem konkreten Problem stehst, dann beschreibe es bitte genau. Dann können wir dir vermutlich weiter helfen.

Lies dir auch DI/IoC in der Praxis (und korrekter Aufbau der zugehörigen Klassen) durch, vielleicht findest du darin ein paar Antworten auf deine Fragen.

herbivore

W
955 Beiträge seit 2010
vor 10 Jahren

Hi,

"Dependency Injection in .Net" von Mark Seemann führt recht gut in die Thematik ein und stellt verschiedene DICs gegenüber falls Du es in Buchform Dir erarbeiten willst.

5.941 Beiträge seit 2005
vor 10 Jahren

Hallo Oliver

ich sehe nicht die Vorteile der Freeware
>

Die Beispiele laufen nicht, Namespace fehlen.
Muss man da was installieren?

Die Vorteile einer bestimmten Komponente gegenüber einer anderen ist Geschmackssache und wird auch davon bestimmt, was man denn genau braucht und ob die Komponente das unterstützt.

Dafür braucht es aber zuerst ein Verständnis der Grundlagen.

So wie ich das sehe sprichst du jetzt direkt LightCore an. Was für Beispiele laufen nicht?
LightCore enthält einige Beispiele. Ich nehme an die MVC-Beispiele laufen nicht, dafür muss man ASP.NET MVC in der benötigten Version installieren, ja.

Vielleicht hat jemand ein prägnantes Projekt, wo man den Vorteil sieht.

Zum Unterschied von MEF zu IoC- / DI-Container liest du dich am besten im Netz ein, z.B. MEF (Managed Extensibility Framework) vs IoC/DI

MEF und DI-Container arbeiten unterschiedlich und können sich sogar ergänzen, da sie nicht wirklich miteinander in Konkurrenz stehen:

Es ist wirklich so das man verstehen muss und anschliessend beispielhaft anwendet. So werden einem dann die theoretisch verstandenen Vorteile offenbar.

Für die Grundlagen kannst du dich gerne in meine zwei Artikel einlesen:

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

O
Oliver Stippe Themenstarter:in
120 Beiträge seit 2009
vor 10 Jahren

Es ist wirklich so das man verstehen muss und anschliessend beispielhaft anwendet. So werden einem dann die theoretisch verstandenen Vorteile offenbar.

Für die Grundlagen kannst du dich gerne in meine zwei Artikel einlesen:

Hallo Peter,
doch nochmals eine kleine Verständnisfrage.

Ich suche einfach eine gute Erklärung, ähnlich dem MEF

In diesem Artikel wird der Umgang mit dem Managed Extensibility Framework (MEF) anhand einer simplen Anwendung demonstriert. Das Beispiel wird dabei so minimal wie möglich gehalten, damit das Thema leicht verständlich bleibt.

http://www.edvsz.hs-osnabrueck.de/fileadmin/user/huelsmann/
Vielleicht hat jemand eine Uni Vorlesungsscript.

Ich nehme an die MVC-Beispiele laufen nicht,
dafür muss man ASP.NET MVC in der benötigten Version installieren, ja.

Stimmt diese laufen nicht.

Was einfach hilfreich wäre.
Klassisch -- mit C# (händisch) -- LightCore
Dann sieht man die Unterschiede und könnte beurteilen, ob es hilfreich ist.


class PersonA();
class PersonB();
class PersonC();
class PersonD();

//Hauptanwendung
   
var pA = new PersonA() 
var pB = new PersonB()
var pC = new PersonC()
var pD = new PersonD()

//Ist schlecht, neue Klasse, neues Objekt, neue EXE, neu kompilieren.
//Besser  Interface

var p = new Person()

//Aber warum ist es jetzt das Problem den new Operator in der Hauptanwendung zu machen.
//Ich könnte doch da dann auch jede DLL reinlegen, die das Interface implementiert.
//Klar dann hat die Hauptanwendung Kenntnis davon.

//Jetzt wird eben die Erzeugung in der Assembly durchgeführt.
//Letztendlich habe ich doch keine Vorteile.
//Es gibt sicher welche, sonst wurde man es ja nicht machen.

//  >>Aber in PersonFactory selbst muss der Preis dann doch bezahlt werden:

interface IPerson { }
class Person : IPerson { }

void ChangeName(IPerson person) { }

IPerson person = PersonFactory.Create();

class PersonFactory
{
   public static IPerson Create()
   {
      // hier binden wir N Stellen im Code an
      // die konkrete Implementation von Person fest.
      return new Person();
   }
}

class SimplicissimusContainer
{
    public static T Resolve<T>(string typeName)
    {
        Assembly typeAssembly = Assembly.GetEntryAssembly();
        Type foundType = typeAssembly.GetType(typeName);
        T result = (T)Activator.CreateInstance(foundType);
        return result;
    }
}

IPerson person = SimplicissimusContainer.Resolve<IPerson>("WindowsFormsApplication1.Person");
person.FirstName = "Hans";
person.LastName = "Mustermann";


Grüße Oliver

Hinweis von herbivore vor 10 Jahren

Threads zusammengefügt

O
Oliver Stippe Themenstarter:in
120 Beiträge seit 2009
vor 10 Jahren
Framework: Lightcore - Beispiel

Hallo,
ich suche ein gutes Beispiel für
LightCore, C#, VS2010 und WinForm.

Kennt jemand eines?

Grüße Oliver