centur
  •  centur
  • 58.4% (Neutral)
  • YAF Camper Topic Starter
2010-10-24T16:43:38Z
I would like to add some custom functionality to YAF but I doubt it will be added to upstream ( due to very custom nature of changes). I decided to do this as separated modules, which should be injectable to YAF with some kind of IoC Container or using MEF. But I struck with some strange dillema - I cant find any lightweight assembly to inherit from. I could extract this making heavy changes to projects layout but this will ruint entire idea of extensibility - i cant easily apply trunk patches to my custom solution. I dont want to make incompatible branching but reference to YAF.Classes.Core (which require yaf.classes.config and .data assemblies) is a strong coupling - and i also would like to avoid that.

Is there any intensions to make some kind of "light" assembly with extendable interfaces or any other shift to easier extension development ?

For example - it would be cool to have YAF.Core.Interfaces assembly which should contain only interfaces with injections to eachother initializers (using IoC concepts). So anyone could reference to that assembly and implement some modules, which relying on yaf.interfaces and later, when injecting custom modules to main forum project - it will be initialized with actual YAF implementations of used interfaces...

Is there any reasonable problems with offered idea ? Or did I miss something in yaf solution which should help me to develop external pluggable module (custom processing of authorized users). I found only one point for such extensibility - inherit SimpleBaseModule or implement completely IBaseModule from YAF.Classes.Core. Did i miss something in yaf extensibility options ?
Sponsor
bbobb
  •  bbobb
  • 100% (Exalted)
  • YAF Developer
2010-10-24T19:49:54Z
There's a Modules folder in the YAF project. You can put every code there and YAF hooks it while loading using Reflection.
Jaben
  •  Jaben
  • 100% (Exalted)
  • YAF Developer
2010-10-25T00:33:59Z
centur wrote:

I would like to add some custom functionality to YAF but I doubt it will be added to upstream ( due to very custom nature of changes). I decided to do this as separated modules, which should be injectable to YAF with some kind of IoC Container or using MEF. But I struck with some strange dillema - I cant find any lightweight assembly to inherit from. I could extract this making heavy changes to projects layout but this will ruint entire idea of extensibility - i cant easily apply trunk patches to my custom solution. I dont want to make incompatible branching but reference to YAF.Classes.Core (which require yaf.classes.config and .data assemblies) is a strong coupling - and i also would like to avoid that.

Is there any intensions to make some kind of "light" assembly with extendable interfaces or any other shift to easier extension development ?

For example - it would be cool to have YAF.Core.Interfaces assembly which should contain only interfaces with injections to eachother initializers (using IoC concepts). So anyone could reference to that assembly and implement some modules, which relying on yaf.interfaces and later, when injecting custom modules to main forum project - it will be initialized with actual YAF implementations of used interfaces...

Is there any reasonable problems with offered idea ? Or did I miss something in yaf solution which should help me to develop external pluggable module (custom processing of authorized users). I found only one point for such extensibility - inherit SimpleBaseModule or implement completely IBaseModule from YAF.Classes.Core. Did i miss something in yaf extensibility options ?


Yep, all planned. 🙂 YAF will be SOA if I can find a way to fund my time working on this project.

But aren't very specific about what functionality you actually want, though. YAF v2.0 will use loose design, IoC, and extensible architecture -- but what do YOU want to do? Does it benefit the community? Do you want to help build v2.0 with your extensive knowledge of building SOA abstracted loose designs?
Jaben
  •  Jaben
  • 100% (Exalted)
  • YAF Developer
2010-10-25T02:01:08Z
Nevermind... I see you're intent: "custom processing of authorized users" Yeah, ultimately, you could just hook an event for that. Right now, no. I have less than 15 hours a month I can work on YAF due to resource/time restraints. A bit of a big deal to redesign the whole codebase with such limited time. I'd need more coders who had time and knew these concepts. Otherwise it will take me a year to just get the new EF data layer up and running.

Once again, you want to help? 🙂
centur
  •  centur
  • 58.4% (Neutral)
  • YAF Camper Topic Starter
2010-10-25T02:17:07Z
Jaben wrote:

Once again, you want to help? :)



Yep 😉. But same for me - my YAF customization is side project, so I will try to devote as much time as I could, but wont promise 40h week.

PS as leader of open source project - you are eligible for Resharper free license - I would recommend you to ask for one (if you didn't done that before) - great tool for refactoring. (Its not adv and i have no relations with JetBrains, exept I'm using licensed R# )
Jaben
  •  Jaben
  • 100% (Exalted)
  • YAF Developer
2010-10-25T17:45:09Z
Thanks for the tip -- been using Resharper for a long time now. Very useful tool indeed 😉

About Us

The YAF.NET is an open source .NET forum project. YAF.NET is supported by an team of international developers who are build community by building community software.

Powered by Resharper Donate with PayPal button

Project Twitter Updates

Copyright © YetAnotherForum.NET & Ingo Herbote. All rights reserved