| 

.NET C# Java Javascript Exception

6
Ist wahrscheinlich eine blöde Frage, denn es hängt sich davon ab. Aber welche sind denn empfehlenswert. Ich will mich einfach nicht mit einem Rahmen herumschlagen sondern mich um die Aufgabe kümmern.
07.02.2011
tatjana 69 1 3
8 Antworten
6
Wir benutzen Ninject und/oder Funq. Funq hat den Vorteil dass alles über Delegates, sprich Lambda Ausdrücke, geht und dementsprechend performant ist.
07.02.2011
Logdog82 856 2 8
4
Ich würde Dir LightCore empfehlen

Gründe:

  • Nahezu genauso schnell wie native Instanziierung
  • Sehr kompakt, dadurch schnell zu erlernen
  • Macht genau das, was er soll: Kein exotischer Schnick-Schnack
  • Dafür aber ein paar sehr coole Features, zB dynamische Konstrukturparameter zur Laufzeit
07.02.2011
Golo Roden 2,7k 3 9
3
Wir arbeiten hier momentan mit StructureMap, ich kann es dir nur empfehlen :)
07.02.2011
BenWagner 204 3
3
codekicker.de verwendet das Unity Framework aus der Microsoft Enterprise Library. IMHO ist es ziemlich egal, welches IoC-Framework man verwendet, solange es relativ grundlegende Anforderungen erfüllt. Mit Microsoft-Bibliotheken habe ich aber immer gute Erfahrungen gemacht, so dass ich Unity gewählt habe. So sieht Unity in der Praxis aus:

//global types
builder.RegisterInstance(appSettings, new ContainerControlledLifetimeManager());
builder.RegisterInstance(appSettings.CkConnectionString, new ContainerControlledLifetimeManager());
builder.RegisterType<IWebEnvironment, WebEnvironment>(new ContainerControlledLifetimeManager());
builder.RegisterType<PerSiteResourceCaches, PerSiteResourceCaches>(new ContainerControlledLifetimeManager());
builder.RegisterType<IRepositoryProvider, CkLinqRepositoryProvider>(new ContainerControlledLifetimeManager());
builder.RegisterType<TagCacheHolder, TagCacheHolder>(new ContainerControlledLifetimeManager());
//builder.RegisterInstance<GlobalResourceService>(globalResourceService, new ContainerControlledLifetimeManager()); //why is this not registered?

//per request types
builder.RegisterType<HttpContextBase>(() => new HttpContextWrapper(HttpContext.Current));
builder.RegisterType<TimeService, SystemTimeService>();
builder.RegisterType<IRepository, CkLinqRepository>();
builder.RegisterType<CodeKickerDataContext>(() => new CodeKickerDataContext());
builder.RegisterType<IUserService, UserService>();
builder.RegisterType<IJobQueue, LinqJobQueue>();
builder.RegisterType<IMailService, MailService>();
//...

builder.Container.Configure<InjectedMembers>().ConfigureInjectionFor<CkLinqRepository>(new InjectionMember[]
{
new InjectionConstructor(
new ResolvedParameter<CodeKickerDataContext>(),
new ResolvedParameter<IConfiguration>()),
});
builder.Container.Configure<InjectedMembers>().ConfigureInjectionFor<PerRequestResourceService>(new InjectionMember[]
{
new InjectionConstructor(
new InjectionParameter<GlobalResourceService>(globalResourceService),
new ResolvedParameter<PerSiteResourceCaches>(),
new ResolvedParameter<IConfiguration>(),
new ResolvedParameter<FileStorageService>(),
new ResolvedParameter<CkConnectionString>()),
});
07.02.2011
Marvin Steppat 4,0k 1 4 8
3
Unity und Autofac, beide zu empfehlen.
07.02.2011
Norbert Eder 383 4
0
LightCore ist sehr cool. Nur leider gibt es "noch" keine signierte Variante.

Ansonsten nutze ich auch Unity, ist aber unter Umständen etwas oversized.

Generell solltest du überlegen ein losgelöstes interface zu verwenden dann kannst du den Container nachträglich austauschen

z. Bsp. CommonServiceLocator
09.02.2011
Gentlehag 1,0k 3 8
http://www.des-eisbaeren-blog.de/post/2010/02/09/LightCore-signiert.aspx
wurzelchen 23.03.2011
0
Der Thread ist zwar schon etwas älter - aber dass hier niemand Spring.NET erwähnt hat, wundert mich schon. Bin damit immer gut zurecht gekommen.

Daneben hab ich aber auch mit dem von Golo erwähnten LightCore gute Erfahrungen gemacht.
22.03.2011
Matthias Hlawatsch 13,2k 4 9
0
Vielleicht helfen die zwei Artikel über die IoC Benchmark:
http://www.codinginstinct.com/2008/04/ioc-container-benchmark-unity-windsor.html
http://www.codinginstinct.com/2008/05/ioc-container-benchmark-rerevisted.html
Sind zwar ein bisschen älter aber es dürfte sich nicht allzu viel geändert haben
23.03.2011
GerhardK 398 1 7

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH