Post a Comment
I am REALLY looking forward to the css/javascript support. I don't think I have seen CSS done that well in an editor before, and 2k5s css is kind of lame.
LINQ looks hela-cool, but I'm already hooked on the excellent opensource http://www.subsonicproject.com/ for my object persistence needs. And while some of the control updates look nice, I just bought the devexpress ASPxperience set last week (and am completely in love).
He was talking about the CSS & Javascript intellisense, but I have a feeling you knew that anyway.
All the poster mentioned was CSS and JavaScript support, and quite frankly, Internet Explorer, Microsoft's development tools and proper, standard support of ECMA(Java)Script and Cascading Style Sheets are absolute polar opposites.
The hint of irony and sarcasm was absolutely spot on, and pretty well done.
Quite frankly, I'm distinctly underwhelmed by yet another new version of .Net that no normal person can keep up with. Microsoft simply have too many MSDN lunatics producing too many development tools no sane person can keep up with.
I wonder if there is a way to develop a web browser that has a plug in architecture for the CSS. That would allow CSS to improve asynchronous to IE releases, or any browser release... and if it was an Open Source project, we might see some significant improvements in support all together.
Quite frankly, I'm distinctly underwhelmed by yet another new version of .Net that no normal person can keep up with. Microsoft simply have too many MSDN lunatics producing too many development tools no sane person can keep up with.
Haha, so true. I recall listening to an episode of the .NET Rocks podcast recently, and they were talking about how it used to be possible (like back in the early days) for a person to know pretty much everything there was to know about a PC.
But now days, it's getting pretty much impossible just to keep track of everything in the .NET Framework itself. Makes me wonder if the people coding the .NET Framework ever sleep 
But now days, it's getting pretty much impossible just to keep track of everything in the .NET Framework itself. Makes me wonder if the people coding the .NET Framework ever sleep
You specialize in certain areas and that's it (for example, ASP.NET). For other stuff you use MSDN/Help. You don't get to claim you're an expert on everything.
"But now days, it's getting pretty much impossible just to keep track of everything in the .NET Framework itself."
The key to any software developer's job is knowing how to read documentation, and knowing where to look for said documentation. The rest comes with experience. I've been a professional .Net dev for 6 years now, and still run into new BCL classes on a weekly basis.
Concepts are always the most important part of the job, followed very closely by the tools you use.
Quite frankly, I'm distinctly underwhelmed by yet another new version of .Net that no normal person can keep up with. Microsoft simply have too many MSDN lunatics producing too many development tools no sane person can keep up with.
Huh? Where have you been? It's about frameworks & developers. Windows has been a platform that people *WANT* to program for, because Microsoft is constantly going out of their way to come up with better ways to solve business problems.
Would you rather have a K&R compiler, and a VT220? Oh sure it'd be easier, but is it realistic in 2007?
I agree... with out the extensive framework, implementing solutions would take a lot longer and be a lot buggier.
yeah, sometimes it is not "real" development because you are simply using tools that do the heavy lifting, but so what? is a carpenter not a real carpenter unless he/she uses a hand saw and a traditional hammer rather than a power saw and a nail gun?
Yeah, the framework is huge, but isn't that what MSDN is for? If you do not know how to do something, look it up.. you think doctors... even specialists can keep it all in their head?
the split between windows and Open Source has already lead to a specialist split. .Net will probably lead to a few more specializes... just like a rough carpenter specializes in getting the frame of a structure up fast and efficiently and a finishing carpenter focuses on putting up the trim and other small carpentry jobs, you will see specialties in development work. Sure, either carpenter can do teh work of their counterpart, but they can't do it as well or efficiently, so is true today with open source and .Net developers.
Microsofts support of javascript is worse then mozilla, but better then anything else. And as of IE7, their CSS support is pretty much where everyone else is
Anyone with half a brain can keep up with it, the last release was 3 years ago.
Edited 2007-11-20 03:58 UTC
Microsofts support of javascript is worse then mozilla, but better then anything else. And as of IE7, their CSS support is pretty much where everyone else is
Simply not true. Their JavaScript support has always diverged wildly, and the CSS support in IE7 solves none of the incompatibilities. CSS3 is simply not going to happen, and there are still parts of CSS2 that haven't been fixed.
Anyone with half a brain can keep up with it, the last release was 3 years ago.
Worrying about five different versions of .Net to target, with more on the way presumably, is not solving anyone's problems.
"Worrying about five different versions of .Net to target, with more on the way presumably, is not solving anyone's problems."
FUD. Target whatever version you want. Just get the client to install the version you use. You know, you can have all the .net versions installed without any problems.
FUD. Target whatever version you want. Just get the client to install the version you use. You know, you can have all the .net versions installed without any problems.
If only it were that easy. Not only do you need to test with that version, or test with all versions, .Net and your application do not stand by themselves. There is a veritable panoply of dependencies to take care of in addition to .Net, in addition to worrying about what framework is installed, installing a new framework if the one you want isn't there or simply assuming things are compatible. WinForms or Avalon? God knows. Why should one even need to pick? Hell, installation on Linux is beginning to look attractive!
This isn't FUD. This is happening today, and has been for some time. As Joel Spolsky once said about this, it's not 1990 any more.
Simply not true. Their JavaScript support has always diverged wildly, and the CSS support in IE7 solves none of the incompatibilities. CSS3 is simply not going to happen, and there are still parts of CSS2 that haven't been fixed.
You could say that about their javascript (or jscript as they call it). However, just because document.all exists, doesn't mean document.getElementById doesnt exist. I have had more problems with javascript and safari then javascript and ie.
As for CSS3, nobody supports it because its not that great a spec. CSS2 suppport is better, while not all of the rendering bugs were fixed in IE7, some of them were.
You get that with any VM language. (java is FAR worse)
Very funny.
First off, anything generated by VS.net 2k5 not only validates XHTML 1.0, but is totally cross browser. I have yet to have an issue with a built in ASP control rendering significantly different in firefox and ie. So any implications on poor standard support is completely unfounded, the code generation is on par with dreamweaver, and far better then anything else I have seen.
Granted, javascript intellisense isnt exactly revolutionary. However, look at the way it handles css here http://weblogs.asp.net/scottgu/archive/2007/07/25/vs-2008-web-desig..., and tell me what other environment comes even close?
I'd be inclined to say StyleMaster has been doing that for years, but obviously StyleMaster isn't an HTML editor, solely CSS. Anyone looking for a powerful CSS editor though that develops with tools other than VS.net, or develops on OS X, should probably check it out.
N.B. I bought the 4.x version at least a year or two ago*, and it seems I'm still up to date (free upgrades), though whether they're planning a new major release or not anytime soon I don't know.
http://www.westciv.com/style_master/product_info/index.html#xray
Off-topic, but the logo was designed by Jon Hicks of Firefox/Thunderbird/Miro fame :-)
* (edit) - 14 Dec 2005 21:32 to be precise, feh.
Edited 2007-11-20 12:50
While most "zomg Microsoft steals from everyone I cut myself"-type posts like this have no basis in reality whatsoever, this actually has some fact behind it:
http://rubydotnet.googlegroups.com/web/Home.htm
http://www.codeplex.com/irony
Well, Microsoft's business practice is along those lines. It's not really a bad thing. Other people do the research, bring stuff to market, and ultimately fail, or half-succeed. Microsoft watches, polishes and produces a better product based on what the competition has done. It's great business practice, and it does often produce good consumer products (not all of MS's software is garbage). I wouldn't call it stealing. It is more like refining. And we desperately need that in the software world.
While most "zomg Microsoft steals from everyone I cut myself"-type posts like this have no basis in reality whatsoever, this actually has some fact behind it:
http://rubydotnet.googlegroups.com/web/Home.htm
http://www.codeplex.com/irony
Why are you giving links to Ruby on top of .Net as a response to this?
LINQ == ActiveRecord. End of story.
I know I can always count on Segedunum to get his facts wrong:
LINQ == ActiveRecord. End of story.
I already commented on the vastly different approaches to those two.
As a complement, in general, there are a number of ActiveRecord implementations for .NET that you can use or variations on the theme.
But LINQ is not such a variation.
Another posted commented on LINQ and XPath and XQuery. Although you can certainly do everything XQuery can do with LINQ for doing XML processing, LINQ is not limited to XML.
The "XQuery-replacement" facade is basically using LINQ with a couple of XML construction and query classes. But LINQ is much more powerful, the pieces that make it up are the pieces that are bringing functional language features C#.
Miguel.
LINQ == ActiveRecord. End of story.
Wow, this is so wrong. LINQ is FULLY integrated in the languages, it is part of the syntax. That is why it's called "LANGUAGE INTEGRATED.."
You don't understand it and some research on the topic of LINQ is strongly recommended.
Edited 2007-11-20 19:06
LINQ info:
http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx
"It extends C# and Visual Basic with native language syntax for queries and provides class libraries to take advantage of these capabilities"
Microsoft already created the providers "LINQ to SQL", "LINQ to XML" + more.
You can create any provider you want, see an example here http://blogs.msdn.com/hartmutm/default.aspx "A LINQ provider for RDF files".
LINQ != activerecord.
Agreed.
And besides "LING to SQL" and "LINQ to XML", Microsoft has also created LINQ to Objects, which gives LINQ the ability to query any collection or object that implements IEnumerable. And there are already third party LINQ providers specializing in querying particular data (web queries, RSS feeds, etc).
And of course, there's PLINQ (Parallel LINQ) that automatically runs queries on multiple cores/cpus.
http://msdn.microsoft.com/msdnmag/issues/07/10/PLINQ/default.aspx
LINQ rocks. 
May I ask the question as to whether LINQ has a syntax that is the same across all database back-ends or is it specific to the database in question? If it is specific to a particular database then that sux from a migration point of view (which happens in the real world). I've just completed a government Postgresql to Oracle project and the database specific SQL in JDBC sux. They should have used Hibernate which has the same syntax no matter what the target is.
LINQ is actually built into the C# (and other .NET) languages, so it is necessarily the same for all backends. However, you do have the option of sticking in custom stuff yourself into the code generated by the backends. So by default it is the same everywhere, but customizable enough that you can make it non-portable.
MS hired the guy who does this http://www.subsonicproject.com/, which is basically rails type scaffolding for .net.
Anyone else get the feeling that a ms dev saw Ruby on Rails, and copied almost the exact functionality into vs .net in the form of linq? They've played it off as being so unique, when almost everything they have come up with is already in ruby on rails.
You seem incredibly confused.
LINQ in fact is the exact opposite of what Ruby on Rails does when it comes to databases. Ruby on Rails advocates the use of ActiveRecord, where the classes are mapped into a database.
LINQ takes the exact opposite approach: the database is at the core of an application and they have provided a way to use a SQL-like language to the database from C#. They do not use an OO to RB mapper, instead they try to get you closer to the bone while giving you compiler provided type checking.
That being said, it would be good if Microsoft incorporated the good ideas of Ruby on Rails into .NET. Hopefully the upcoming ASP.NET MVC will go a long way along those lines.
Miguel.
Visual Studio.NET has always been an unbeatable IDE (though lacking in some basic functionalities that IDEs like Eclipse have, such as maximizing an editor). They're intellisense has always been incredibly fast, and even though I'm not a big MS supported (spending most of my time using either BSD or OS X) I can't wait for this to arrive on my MSDNAA.
Good job!
Man, I am getting so sick of the bugs and weirndesses in Eclipse. It has a lot of cool features and promise, but it really has a knack for crapping out at bad times, getting into confused states and just generally being...weird. For example, I've had it convince itself that it couldn't find java.lang.Object. All I did was start it up. And somehow it got confused. I had to delete the project and create a new one (with existing source of course).
Yes, but then you have to deal with the fact that you're writing in Java.
> Yes, but then you have to deal with the fact that you're writing in Java.
I'm curious about what's so bad about Java? (since C# is much more similar to it than to many other languages and several of the core C# libraries obviously originate from the days when Microsoft had a Java.
Sure checked exceptions and such are a PITA, but it sure beats being hogtied to a single platform (sure it's got 90% desktops, but only ~50% servers, which is where the real consultancy money is). I hate .NET's Hungarian notation (the 'I' in front of every interface has a heritage back to FORTRAN dontyaknow) at least as much as you hate checked exceptions, but at least I can see why you might like .NET without feeling the need to imply it sux completely.
Could you give some examples ?
To my mind, C# is too much complex as compared as Java. I would agree if you made a comparison with Java 1.4, but Java 1.5 brought what Java was lacking (like enumeration, generics, ...).
Things like operator overloading, structures, the virtual keyword, ... from the C# world are, for me, useless and bring confusion when reading someone else code.
With Java (>= 1.5), there is just what is needed.
Unless you speak of the .NET library ?
Delegates have brilliant compiler support in C#. The helper classes are created invisibly by the compiler.
Regarding generics; from what I heard Java cheated there. It's "just" a compile time check so the type casting has to be done anyway.
Virtual and override are there for the same reason as C++ I guess. On non-virtual functions you don't go thru a function pointer in vtab.
I like the out things for arguments to a function. More to write but thats a cheap price for potential bugs.
Coming from C++ I was btw a bit disappointed at both languages when I realized generics is just about avoiding typecasts. On the other hand, I haven't seen a compiler so far that deals properly with templates. So perhaps it was an ok tradeoff.
I totally agree that Java grew up with the 1.5 release. I didn't even consider it before. I just miss the delegate sugar.
Virtual and override are there for the same reason as C++ I guess. On non-virtual functions you don't go thru a function pointer in vtab.
OK, I see your point, and you are right. On that matters, operations have an higher cost on Java.
OK, it would be nice to have that, it can prove to be useful for better code readability.
First, I found the idea very good, combined with the "events".
However, there is finally lots of things to do (declare the event, the delegate, create the delegate, be sure the event contains one delegate at least before firing it or there is a null exception, ...) so it is sometimes a bit painful to use. But it is only my opinion.
Virtual and Override keyword: Fragile base class problem is why they are there. In Java you don't know when a class is overriding your method.
Generics: Come on Java Generics are not real Generics. Its objects with dressing. Yes Java Generics will be fixed in a future edition, but why did they release it in the first place.
C# is actually a pretty good language that keeps evolving... Java needs to evolve more...
Java the language is garbage!
When Java the language came out it was good, yes it was. Now in 2007 it is garbage! Here are some case in points
1) Generics and erasure (yes it will be fixed in an upcoming release, but why do it in the first place.)
2) Just recently the idea of boxing, and unboxing came to Java
3) Java getters and setters are silly.
4) Still have not fixed the fragile base class problem
... and the list goes on...
C# fixed many of these things and then some. I am not saying that Java, and its environment is bad. On the contrary it is good. But Java the language is showing its age in a major way. Java should have included more Groovy or Scala features a long time ago. Java needs a desparate overhaul.
What's wrong with the getters and setters? What's wrong with generics? Can you be more specific?
As for the fragile base class problem, that isn't actually fixed in C#, they just try to make you a little bit more aware of the issue. To fix it requires proper design and care on the part of the programmer. A language cannot prevent you from making stupid architectural decisions.
> Java getters and setters are silly.
You don't know what you're talking about.
public void setLastName( string lastname )
{
if ( lastname.length() > 30 )
{
throw new IllegalArgumentException
( "lastname exceeds database col length." );
}
}
Or, would you rather send bad data to the database and throw a SQLException?
Visual Studio.NET has always been an unbeatable IDE (though lacking in some basic functionalities that IDEs like Eclipse have, such as maximizing an editor).
Maximizing an editor? You mean like full screen mode?
It is available in Visual Studio 2008. And it is also in Visual Studio 2005.
Funny.
No, not full screen mode.
He is referring to the nice little feature of Eclipse where you can click a small "maximize" button on a panel and make that panel take the whole window space.
While VS's full-screen mode does hide some of the other panels (still shows the "Pending chekins" panel on mine), it also hides everything else, meaning I can't copy-and-paste from another source, can't quickly switch to an output window, etc. In other words Eclipse has a better UI (and I use VS every day).
Please note that targeting 2.0 is NOT targeting 2.0 RTM. You will be targeting 2.0 SP1, which (depending on your application) can have significant ramifications.
This blog explains it in detail:
http://blogs.msdn.com/msbuild/archive/2007/10/09/multitargeting-aga...
I use vi
*, **
- Gilboa
* Even under Windows; Compared to VS.NET2K5 vim+ctags is like comparing a cargo 747 to a SR-71. You may do more with VS.NET2K5 but once you get the hang of it, vim is 1000 times faster...
** I write C code, so anything beyond VC6 is an over-kill for me. Sadly enough our IT department doesn't see it that way.
You haven't seen the power of IJW then. I modified a program to use SQL server to store it's data as blobs, with only minor changes... And of course the best part, is that with MSDE I could then have it mirror the database to another machine, and I had instant disaster recovery capabilities.
The real power is in the ease of use of the framework compared to the disaster that is MFC.
Just compare .net remoting to DCOM. It's brilliant.
I wouldn't open 16,000 files in a single vim session...
Come to think about it; I wouldn't open 16,000 files in -any- editor...
Never the less my ctags currently contains ~50,000 files. (/usr/include; /usr/src/kernels/linux-xxx * 2; a number of versions of my own driver/software/bsp/etc; a number of OSS projects; etc)
- Gilboa
I get the feeling that most people on here are posting false anecdotes and piles of poop rather than factual information.
If you cannot keep up with the developments, perhaps you are in the wrong industry? The developments are incremental over the period of 3 years since Visual Studio 2005. Each feature, and there are ONLY about 4-5 significant language/process changes, should take no more than half an hour to understand and a week or two to be productive in. For the grain in productivity and the general satisfaction coming from these features, perhaps you should be more grateful and spend more time doing some structured learning.
As for the open-source zealots who plug "I can do anything in C and Vim", yes you can but it has a higher miss-rate when it comes to reliability, maintainability, security and general quality control. The productivity is poor as well. I'd rather not waste my life re-inventing the wheel every 8 seconds. Try writing this in C with Vim in 45 seconds (even using any C library:
class A {
public static void Main() {
Dictionary<string, string> x = new Dictionary<string, string>();
x.Add("Key", "value");
Console.WriteLine(x["Key"]);
}
}
If you cannot keep up with the developments, perhaps you are in the wrong industry?
I can tell you don't develop software for customers. Installation and implementation issues take up the vast majority of your time, not development.
The developments are incremental over the period of 3 years since Visual Studio 2005. Each feature, and there are ONLY about 4-5 significant language/process changes
People are installing their applications on Windows target machines, not Visual Studio or .Net.
The productivity is poor as well. I'd rather not waste my life re-inventing the wheel every 8 seconds.
One word: ActiveRecord.
Try writing this in C with Vim in 45 seconds (even using any C library
What are you talking about C for? Have a go at writing that in Python, Ruby or even Java.
In reply to various comments:
a) I do develop customer-centric software! Lots of it.
b) ActiveRecord is POOR compared to LINQ. Its performance is horrible, it's impossible to test properly as the reference for the object tier is stored in the data tier and you are working blind at the object tier with the assumption that certain accessors are present. With LINQ, you are assured something is going to work AT COMPILE TIME.
c) Java doesnt' have an equivalent to LINQ. Python has SQLobject which doesn't even remotely compare (different model), Ruby has ActiveRecord which is totally non performant.
d) You don't need Visual studio to compile C# code - what total rubbish. csc.exe is present on ALL .Net installations (runtime!) in C:WindowsMicrosoft.NetFrameworkvWHATEVERcsc.exe and acts the same as GCC does on linux with respect to compilation. You can use cmd's type command and then use csc to compile. Idiots.
Will people stop arguing without facts?
Further rant: I have used Python (Django) and Ruby on Rails for some small projects but they just don't cut it.
ActiveRecord is POOR compared to LINQ. Its performance is horrible
There are a great many things in Ruby and Rails that are not very good performance-wise, PDF::Writer being one of them, but ActiveRecord isn't really one of them. Without some discussion about workloads etc. this doesn't really mean anything.
...it's impossible to test properly as the reference for the object tier is stored in the data tier and you are working blind at the object tier with the assumption that certain accessors are present. With LINQ, you are assured something is going to work AT COMPILE TIME.
How often have I heard that one? Getting an Intellisense drop-down box of table names, fields and accessors that the compiler can check and flag at compile time doesn't guarantee you anything ;-). If that is indeed what you mean. This is why we have these things called unit tests, that run and test actual code, and Ruby and Rails has pretty good support for them ;-). Much dynamic behaviour also becomes possible here, which is where Ruby gets its power for Rails development.
You don't need Visual studio to compile C# code - what total rubbish. csc.exe is present on ALL .Net installations (runtime!)
Why on Earth are you talking about Visual Studio and the C# compiler? I am talking about deployment, and the fact that I am installing my application on an operating system, not on half a dozen bloody runtime environments. The one target platform has disappeared, and I don't care how small the changes are.
Will people stop arguing without facts?
Hmmmmmm.
I have used Python (Django) and Ruby on Rails for some small projects but they just don't cut it.
Good for you. You mentioned something about facts?
Try writing this in C with Vim in 45 seconds (even using any C library:
class A {
public static void Main() {
Dictionary<string, string> x = new Dictionary<string, string>();
x.Add("Key", "value");
Console.WriteLine(x["Key"]);
}
}
How about Java using no editor at all?
Did that 45 seconds include starting up Visual studio and creating a new project?
$ cat > Test.java <<EOF && javac Test.java && java Test
> import java.util.*;
> public class Test{
> public static void main(final String args[]){
> Map<String,String> x = new HashMap<String,String>();
> x.put("Key","Value");
> System.out.println(x.get("Key"));
> }
> }
> EOF
Value
$ echo Wow!
Wow!
$
Edited 2007-11-20 15:54
Finally!
A Visual Studio that's actually meant to work with Vista!
Too bad I removed Vista because I couldn't use Visual Studio 2003 OR 2005...
Too little too late.
(for the record, YES both 2003 and 2005 supposedly work, but with an enormous laundry list of incompatabilites which made it worthless to try)
You see, the major problem here is actually Microsoft. I am not Linux geek nor Java guru, I am just talking in general.
When the OS is not stable enough to be in enterprise to serve 24/7, don't even go to the app stability. There is nothing to do with .NET and Java in this case but then when we talk about OS in enterprise, you can only go for non-windows platform, which leaves you Java.
I don't understand why people are saying the language is aging and needs some change or something, honestly, I don't see any points there. I wouldn't argue Java has its own problem but if you are a good developer, you should see that Java, the language itself, actually gives you everything you need for the enterprise.
Besides, .NET a basically a copycat of Java and everybody knows, but the worst part is they copied and made it worst.
I tried C# once and omg...I can feel the major clone of Java with minor difference from Java and have a feeling of "hey, we can't clone 100% because of legal issues, we, Microsoft, already have million number of lawsuit...".
The IDE is not that bad, but a bit bloated, 2003 was pretty good at that time.




