Goals
Started by: Bob GrommesBob Grommes
On: 1173131420|%e %b %Y, %H:%M %Z|agohover
Number of posts: 7
rss icon RSS: New posts
Summary:
What need does Nvigorate fulfill better than the alternatives?
Goals
Bob GrommesBob Grommes 1173131420|%e %b %Y, %H:%M %Z|agohover

I found this project from a blog posting (the Daily Grind, IRRC) that said words to the effect that this "looks more like an ambitious project announcement than an actual product". Fair enough. But if this project is to attract contributors and move forward quickly enough to not join that Big Project Graveyard in the Cloud, some thought should be given to that yuccky topic of "marketing" IMO.

In the FAQ, you state "I was disappointed by what many other projects had to offer. The design approach I intend to follow should yield a cleaner architecture that offers users a lot more flexibility." It would be a great statement of purpose / goal for all of us if you could hold forth on that in a little more detail. What I hope you mean by this is that Nvirgorate will be simpler, more approachable, and easier to grok while still being powerful and useful. But how, exactly?

I note also your desire to be cross-platform between the Microsoft and Mono stacks. That is a great thing, although to be honest I haven't researched the alternatives enough to know if this is a point of differentiation or not.

Come to think of it … who do you see as your competitors and how will you best them?

I solicit comment on these topics because IMO these things need to be fleshed out and communicated in order to motivate people to join your effort in a significant way. It's fun to be in on the very ground floor of a new project … but there are a lot of them to choose from. Why is this the one for me (or anyone) to focus on?

Thanks!

unfold Goals by Bob GrommesBob Grommes, 1173131420|%e %b %Y, %H:%M %Z|agohover
Re: Goals
alexexmachinaalexexmachina 1173138544|%e %b %Y, %H:%M %Z|agohover

Thanks for asking these questions because they're ones I hope I addressed in passing but also, I've been working on this in some form or fashion for so long, I take for granted that the abstract language I use to describe some of Nvigorate's qualities don't really help new people get any feel for what Nvigorate is/will become.

I don't want to tear down the efforts others are putting into their framework, but let me just say that I've had several of the more popular projects recommended to me by people who heard I was working on a framework that did X. There is something to be said for not re-inventing the wheel for no reason. Unfortunately, I have yet to find a framework that I personally feel is up to snuff, but all of them have so much code in place already that it didn't feel appropriate for me to stick my big nose in and start telling them what needed to change. So instead of naming open source projects, I'll focus on aspects of those frameworks that I felt make them inferior.

  1. Many frameworks I've seen are extremely limited in what you can do with them. They are designed to force you into developing according to the architecture of the framework itself. While that may be fine to do internally at a large company who writes their own software, that's not a practical approach to take when making a general purpose framework for others to use.
  2. Most of the frameworks appear to have been designed for a very limited scope. I've often found that some of them will only work under very controlled circumstances. For example: Class Thingy in their framework might say it's a general purpose database interface class, but as it turns out, it's really only meant to be used by one of their other classes, so your chances of trying to adapt the database access portion for customized purposes are slim to none.
  3. One or two I've seen lean very heavily on some technology or fad. The library revolves around some mindset so much so that it almost feels like the project was done as a class exercise to reinforce a newly taught principle. While that may work great for canned, small scale applications, it generally won't meet the needs of your average enterprise-sized application or system.

Nvigorate takes on more of a foundational class library approach than does any other project I've had time to really analyze to date. The framework is more general purpose in that it provides common interfaces, utilities, abstract factories and functional singletons. While it will do things like provide a very easy-to-use, yet versatile database interface class, it will also offer some more advanced functionality like data binding and ORM. But the differentiating factor in places where Nvigorate and framework X fill similar roles, the focus of Nvigorate is to help the developer build a best-class data binding and/or ORM solution rather than providing them with a limited and canned solution which forces them to design and develop against someone else's design.

I intend to address this more as time allows. Right now, I'm trying to get the first little bit of code done so I can post it and let people have a look. So much to do, so little time :)

unfold Re: Goals by alexexmachinaalexexmachina, 1173138544|%e %b %Y, %H:%M %Z|agohover
Re: Goals
Bob GrommesBob Grommes 1173146967|%e %b %Y, %H:%M %Z|agohover

Thanks for the response, Alex.

I agree that most of the frameworks I've looked at seem over-engineered and bloated. Combining the BSD licensing with relatively self-contained function points plus avoiding idological axe-grinding sounds like a great combination. The ability to use part or all of the framework is very attractive to me.

Looking forward to that "first little bit of code"!

unfold Re: Goals by Bob GrommesBob Grommes, 1173146967|%e %b %Y, %H:%M %Z|agohover
Re: Goals
mechheadmechhead 1173270232|%e %b %Y, %H:%M %Z|agohover

Hi Alex,

I also came across your announcement at the daily grind. I think your general goal for NVigorate sounds very interesting, I'm not sure if I have the right level of experience to participate (5 years of Delphi, about 2 years of C#/.NET) but I'm definitely willing to give it a try. Being part of a project like this would be an excellent learning experience as well I think.

So now for the stupid question: When will you be posting your first code? Is this a matter of days, or weeks? Whats the biggest thing holding you from releasing? Is it actually finishing the code itself, or perhaps documenting it?

Sorry to sound like a nagging child here, hehe, I'm just very curious.

All in all, I really hope this project will take off, so I wish you all the best!

-Roland

unfold Re: Goals by mechheadmechhead, 1173270232|%e %b %Y, %H:%M %Z|agohover
Re: Goals
alexexmachinaalexexmachina 1173294255|%e %b %Y, %H:%M %Z|agohover

Hey Roland,

As far as right level of experience, I don't think that can be measured in years, so don't let that get in the way of participation. The whole purpose of this project is to benefit everyone who participates or just wants to use the code itself and the more people who put in their 2 cents, the better chance we have of creating something truly useful and unique.

Your question is not stupid, it's an excellent question. It will be a matter of days before the code is "up". What that means for now is that the code will get posted on a wiki page. Right now I'm waiting for the folks at SourceForge.net to review my project application to see if they'll grant us SVN space there. I would share my personal SVN instance with everyone except I can only grant full access (not just read) so it would mean anyone who wanted to could do anything to the source which makes me just a tad nervous since you never know what could happen.

Right now I'm doing 3 things. Finishing up unit tests for the first portion of the Reflector class, planning the next portion of the Reflector class to bring into the source and writing an XSLT script that takes the Xml document comments from the source code and turns them into wikidot's own markup syntax. This way I can put the developer documentation from the source directly into the wiki after applying the XSLT, this will save me HOURS of typing and editing.

I hope no one is afraid or shy to ask questions, this is a new project with only a little bit of info to go from so I understand that there are going to be a lot of questions. Questions are good, ask away!

Thanks for showing interest,

Alex

unfold Re: Goals by alexexmachinaalexexmachina, 1173294255|%e %b %Y, %H:%M %Z|agohover
Re: Goals
Bob GrommesBob Grommes 1173334809|%e %b %Y, %H:%M %Z|agohover

Alex,

Do you plan to target CLR 2.0, or at least the subset of that which the stable Mono release currently supports? Or are you initially going after CLR 1.1? There are an awful lot of 1.x projects that probably will not move to 2.x+ for a couple of years. If I were in your shoes I would probably target 2.0, however, since by the time Nvigorate is to v1.0 that will probably be the baseline.

—Bob

unfold Re: Goals by Bob GrommesBob Grommes, 1173334809|%e %b %Y, %H:%M %Z|agohover
Re: Goals
alexexmachinaalexexmachina 1173336813|%e %b %Y, %H:%M %Z|agohover

Great point Bob,

I'm sorry I hadn't addressed that earlier. The current code is 2.0 only. Initially my framework was based on 1.1 but I moved a lot of things over to take advantage of generics and so the code will target 2.0.

As for the differences between .Net and Mono, we will probably fork the code at some point for .Net and Mono support simply because LINQ support is a must (in my opinion). In fact, I'm hoping to take future LINQ integration into design considerations. As of Feb 15th, Miguel de Icaza was already talking about the advances they have on the C# 3.0 compiler, so I think it's possible they'll be rolling out LINQ support soon after M$ gets their 3.0 distribution to production.

So a lot of that rambling was to say that I agree with you 100%, targeting 1.1 would be a poor way to encourage adoption. Thanks again for your participation, I'm going to go update some of the wiki :)

unfold Re: Goals by alexexmachinaalexexmachina, 1173336813|%e %b %Y, %H:%M %Z|agohover
New post
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.