Posted By: Zeus | Dec 16th, 2008 @ 1:19 AM
page 1 of 1
Comments: 14 | Views: 1215
Zeus
Zeus
Why is the caption missing??
http://codebetter.com/blogs/karlseguin/archive/2008/12/15/oxite-oh-dear-lord-why.aspx

I tend to agree on the complexity issue .... why are there so many projects, and why are the controllers sooo huge. I have worked quite a bit with MVC from Preview 1 and I have never felt the need to over-complexify the code like this.

I also agree with his point on code consistency .... don't you guys have internal guidelines for how you code ?
vesuvius
vesuvius
Das Glasperlenspiel
I have not looked at the source, so cannot really comment, but disliked the use of Linq to SQL immediately. It is not scalable, and you know immediately that you are in workaround territory, with best practices not being adhered to.

Only a courageous architect would use Entity Framework at present, so hopefully they have things sorted out in VS2010. Linq is great with XML and POCO objects, and databases only for small projects.
stevo_
stevo_
Human after all
How do you know linq to sql doesn't scale? because thats what you've been told? I find people ultimately must think that linq looks too good to be true.. and while it has some limitations, it also has some advantages that aren't realistic for people to do.. I personally think linq to sql is can be pretty lightweight and can do simple tasks very fast compared to frameworks like nhibernate... I used to think nhibernate was really neat, but now I find it pretty ironic because I find I have to do a lot of work to get the framework to do its job.. its out dated technology and for me at least is phasing out in favour of technology designed for what we have available today.. nhibernate / hibernate of course wasn't designed with technologys like linq in mind.. and the after thoughts are nice but ultimately 'hacks'.

/counter-rant
vesuvius
vesuvius
Das Glasperlenspiel
I know it does not scale because I have written n-tier distributed applications, and the code with Linq to SQL gets very hard to maintain very quickly. It does not scale because like the Entity Framework it only addresses the connected environment (the next version will have disconnected capabilities.

This is an impediment because in this day and age of pc/laptop/phone/pda all disconnecting and then updating, an always connected ORM does not scale.

It also does not scale because it is dead. I would hate to be the one that pushed for Linq to SQL only to find out that support has been stopped. There is no way any architect worth his salt takes gambles with multi thousand/million projects with tech that lasts as long as the flavor of bubblegum.
Dr Herbie
Dr Herbie
Horses for courses
There was a codebetter entry yesterday that suggests that Oxite is open to XSS attacks ...


Yesterday as I was reading over Oxite's source code with Damien Guard (this is not to pick on them - just an illustration how easy it is to let stuff slip), I entered this in to the URL field of the comments:

"><script>alert("ha ha ha I suck");</script><a href="

And wouldn't ya know it - it worked perfectly - popping up a really annoying message every time I opened the page up. This happened every time, because the database saved the comment, then planted my nasty script every time the page loaded - this is called "passive script injection".



Oops!

Herbie.

I haven't looked at Oxite yet.  Maybe it deserves some trashing.  But the CodeBetter folks really do over-criticise others and over-sell themselves.

As for scaling... what do you think a blog system needs to scale to?  That codebase handled a high profile site just fine, and I'm sure it will handle pretty much everyone's blog site.  That's what it was designed for.  Scale of the magnitude you're talking about just ain't gonna happen here.  So, why over design it?

The controllers do sound like they may have been poorly implemented.  It sounds like business logic creeped in.  However, for folks new to the pattern implementing something under a deadline, that's not really unexpected, now is it?
vesuvius
vesuvius
Das Glasperlenspiel
Indeed blogs are relatively simple, but this is being touted as a CMS as well. At some point you will want to target the metaweblog API or have it disconnected, much the same that windows live writer does. It is when you need to do this, that the unecessarily complex workarounds creep in.

I also say this about dinner now, which is now de facto in Microsoft demos. It is a wonderful bit of tech, but daunting when you first countenance it. I like to keep things simple, and must have overwelming reasons to raise abstration layers. Too many people are afraid of SQL, which is a purer functional programming langauge than C# and it's lambdas. Once you know SQL well, all this => type syntax appears somehow inferior.

Also, because your object count is already inflated using Linq to SQL, it is just not so easy to understand. This is what I mean by scalability. It is good to begin with, but as soon as you want something a little more expansive, then  you have problems.

I also don't think there are very many programs written today that will not want to target web services in a disconnected manner, simple applications or not.

I do agree with code better over selling, almost sensationalist writing, but they to create a healthier balance. Criticism is good.
The CodePlex site just says "This is a simple blog engine written using ASP.NET MVC, and is designed with two main goals:" with no mention of being a CMS.  The "marketing" site does say "Oxite was developed carefully and painstakingly to be a great blog sample, or a starting point for your own web site project with CMS needs."  I read that as "this isn't a serious CMS package".  I highly doubt anyone would expect this to scale beyond something more complex than the Mix site it was designed for, and Microsoft certainly hasn't advertised it as anything but what it is.  Scaling is a non-issue here, unless you plan to do something with it that wasn't intended, at which point you're on your own.

I can't agree with you about SQL either.  SQL is certainly a nice language.  However, it's not any more impressive than any other list processing mechanism.  The problem with SQL used in application development is the impedence mismatch.  LINQ to SQL isn't an ideal solution by any means, and EF isn't there yet either, but there's still a lot to like about either one of them over using SQL, depending on your needs.
vesuvius
vesuvius
Das Glasperlenspiel
I'n not a complete blockhead by the way. I picked up a ten year old SQL book a while back, and was reading through it a few days ago. Pretty much the same stuff that was happening in 1997, is what is happening now in SQL. There is a consistency about it I like. Rather than the "use datasets, no use nHibernate or is that Linq to SQL or Entity Framework" mumbo-jumbo.

It just seems to me that tackling the impedance mismatch, i.e. a general purpose programming language, and a language only concerned with persistance like SQL just keeps on failing. For every new solution, there are as many drawbacks, and if you just bite the bullet, and head for the server i.e. SQL you end up in better shape. If all your data access code is in stored procedures, you have to worry less about concurrency on your client machine, be it paralled for loops or lambdas because this will happen on the server. Since SQL is a functional programming langauge, it will scale well on a many core server.

OK I know this is diverging from Oxite, but I prefer the old in this regard rather than the new. I'm just getting tired of new things that introduce more headaches further down the road.
Never even hinted that you were blockhead.

You and I will agree to disagree about the impedence mismatch problem.  "Just going to the server" in reality only means that I'm dealing with the impedence mismatch with adhoc and repetitive code.  *shrug*
vesuvius
vesuvius
Das Glasperlenspiel
I know you did not Big Smile

You are correct about the monotonous coding, and people thinking it surely must be easier than this. EF could be good in a few versions time, we will have to wait and see.
figuerres
figuerres
???
How do you get "it's Dead" ?
"It also does not scale because it is dead. I would hate to be the one that pushed for Linq to SQL only to find out that support has been stopped. There is no way any architect worth his salt takes gambles with multi thousand/million projects with tech that lasts as long as the flavor of bubblegum."
here is what they said:
"We’re making significant investments in the Entity Framework such that as of .NET 4.0 the Entity Framework will be our recommended data access solution for LINQ to relational scenarios.  We are listening to customers regarding LINQ to SQL and will continue to evolve the product based on feedback we receive from the community as well.

Tim Mallalieu
Program Manager, LINQ to SQL and Entity Framework

"

Ok I Get the "Recomended ..." so they are not pushing it for mainstream.
but they did not say "All support has been terminated"

I do *HOPE* they can stick with EF and not have some new tech 3 years from now...
I like the "LINQ" and the Sql part is good for some things....
I will look at EF and see what it does better than LINQ to SQL and then I will be going in any new directions...
HumanCompiler
HumanCompiler
Compiling humans...and code
We fixed the XSS bug about the same time that article went up.  We're pushing up a new release tomorrow that has a bunch of changes rolled up (included the XSS bug, which has been available if you download the latest changesets since the weekend).

I could discuss the rest here, but I'll let you all duke it out.  More fun that way.
La Bomba
La Bomba
Boing!
"I could discuss the rest here, but I'll let you all duke it out. More fun that way"

Lame cop-out. Let's hear the rest.
page 1 of 1
Comments: 14 | Views: 1215
Microsoft Communities