Slashdot Mirror


Programming .NET 3.5

lamaditx writes "The world of the .NET framework is taken to the next level by the release of .NET 3.5. The intended audience of this book are experienced .NET programmers. There are no sections that tell you details about C#, SQL servers or anything like that. I don't recommend this book if you never worked on a .NET project and don't know how to set up a SQL database. You should be aware that the code is written in C#. You might use one of the software code converters if you prefer Visual Basic instead. I think the code is still readable even if you do not know C#. I appreciate the fact that the authors decided to use one language only because it keeps the book smaller. The authors assume you are using Visual Studio 2008. You don't necessarily need to update to 2008 if you are working with an older edition because you can use the free Express Edition to get started." Keep reading for the rest of Adrian's review. Programming .NET 3.5 author Jesse Liberty & Alex Horovitz pages 476 publisher O'Reilly Media rating 7/10 reviewer Adrian Lambeck ISBN ISBN 978-0-596-52756-3 summary Covers all main .NET technologies found in .NET 3.5 The table of contents is available from O'Reilly — together with a chapter preview — here. The book does not come with any extras but includes the usual free 45 days access to the book on Safari.

This book covers the key technologies in .NET. There are books on each of these technologies: Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), XAML, AJAX,C# and Silverlight already, but this book shows you how everything is connected with each other. As the authors note: "Our goal is to show you the 25% that you will use 85% of the time.". From my point of view this is good because I have a .NET 2.0 background and wanted to know what is new in .NET 3.5 and how things are connected.

The book is divided in 3 main parts. The first is presentation, which covers XAML, WPF and AJAX. The second describes how to take advantage of the design pattern support in .NET. The last part covers the business layer which includes LINQ, WCF, WF and CardSpace.

The first part starts with XAML. This is the eXtensible A The next main topic is using WPF which is the successor of Windows Forms. The authors explain how to connect data structures to the user interface which I consider to be one of the most important parts of using WPF. You will also find a lot of code and XAML layout descriptions.

The chapter on Silverlight was not very helpful to me. Silverlight is the competitor of Adobe Flash. Giving samples how to layout a Silverlight application is essentially the same as a WPF application thus it dives into more details of XAML. I am missing the real Silverlight message so this part did not meet my expectations.

The third technology you will learn about is AJAX which leads us away from the desktop client to a web client. The explanation how AJAX works is pretty good. The authors show you step by step how to create a todo list web-application with a database backend using ASP.NET and AJAX. Again, this does not cover all AJAX controls or ASP.NET but it shows you how the parts are interconnected and assumes that if you know how to handle one control, then you can also figure out how to handle all the others. Most web applications need some kind of access control. At this point the authors argue that it is faster to implement your own security tables instead of using the ASP.NET forms-based controls.My opinion is that you should never do something that is not correct to teach something else. There are always people who get it wrong in a way you did not anticipate. My recommendation: use the ASP.NET components and do not implement them by yourself.

The second part about the design patterns was surprising to me because I expected the common introduction to standard design pattern. The Model-View-Controller project implements the pattern for ASP.NET and allows developers to incorporate it easily. The advantage is that you get a comprehensive and easy to understand introduction how .NET supports design pattern implementation. I guess this will lead some developers from theory of design patterns to actually implementing them.

I consider the third part to be the real interesting content. It starts with LINQ which bridges object-oriented code to relational databases. You get to know the differences to SQL and also the advantages it provides by explaining new concepts. The examples are easy to understand and successfully make their point.

Windows Communication Foundation (WCF) covers the hot Service-Oriented-Architecture (SOA) topic. The authors explain what it is all about but you will need some knowledge about Web Services and XML to really get it. The introduction is rather short but more details are explained in the corresponding example.

The chapter about Windows Workflow Foundation (WF) starts with a short example how you implement a workflow without WF. After that you get to see how you do the same with WF. This way the necessity for WF become clear and you understand how to take advantage of this technology.

Card Space is the successor of Microsoft passport which was not successful as an authentication service with respect to user acceptance. This is also the key issue that decides on the success of Card Space. Maybe the improved interoperability will help. The chapter provides you with a short authenticate-yourself test and shows you how to offer Card Space authentication in your ASP.NET application.

The book is a good entry to the world of .NET 3.5 because it gives you an idea about every part and what it is good for. Maybe you do not need all of it for your job but at least you know that it exists and how it might be useful. I think it is reasonable that a comprehensive introduction to .NET 3.5 can not satisfy everybody because the range of topics is too broad. One can argue that this kind of information could also be retrieved from the net. I consider the book to be a better resource because it already summarizes the important information such that you do not drown in a flood of information.

There is also some criticism as I pointed out earlier. Maybe I am just a little picky about the details but if you print code download references into a book, they must be available. Most examples can be downloaded but the Alex Horovitz site was not reachable when I tried to access it. Another personal remark is that I do not like to see quotes from Wikipedia. Other people might think different about that so you just need to decide on your own.

I rate this book a 7. The authors scratch the surface of every topic and choose an appropriate style to explain it. You can tell that they thought about how to explain each topic on it's own and give you not just the "how" but also the "why".

Adrian Lambeck is a graduate student in "Media and Information Technologies" and worked with .NET for a few years.

You can purchase Programming .NET 3.5 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

224 comments

  1. Typo by Lacota · · Score: 4, Informative

    Pogramming? :P PROGRAMMING.

    --
    It is not a god that would do evil biddings, but only a mortal and its limited knowledge would let such atrocities exist
    1. Re:Typo by Anonymous Coward · · Score: 3, Funny

      It's slashdot, and it's a Microsoft tech. Presumably he meant to say Pogromming .NET 3.5

    2. Re:Typo by sakdoctor · · Score: 5, Funny

      Dovelopers, dovelopers, dovelopers!

    3. Re:Typo by Anonymous Coward · · Score: 1, Funny

      Yeah, Pogramming: The act of ramming Pogs. POGS

    4. Re:Typo by Anonymous Coward · · Score: 1, Informative

      Not to be confused with pogromming, which should be avoided.

    5. Re:Typo by nurb432 · · Score: 4, Funny

      Thats ok, lint will pick that up when you compile it.

      --
      ---- Booth was a patriot ----
    6. Re:Typo by er3s · · Score: 1, Funny

      Copy and paste inheritance!!! WAHOO!

    7. Re:Typo by BigGerman · · Score: 1

      from the word "pogrom" ;-)

    8. Re:Typo by gabrielius · · Score: 1

      someone is using Dvorak keyboard layout...

    9. Re:Typo by slapout · · Score: 1

      NEVER trust a programer who can spel.

      --
      Coder's Stone: The programming language quick ref for iPad
  2. Pogs by djdavetrouble · · Score: 2, Funny

    Behold, the Ultimate Pog!

    --
    music lover since 1969
    1. Re:Pogs by rhizome · · Score: 4, Funny

      .NET is back...in Pog form.

      --
      When I was a kid, we only had one Darth.
    2. Re:Pogs by Anonymous Coward · · Score: 0

      But .NET costs you your soul!

      And your soul doppelganger can be very useful with debugging/load testing in dream programming scenarios. Programmers that have sold their souls are at a great productivity disadvantage and are picked on by the other programmers who still have their souls.

    3. Re:Pogs by Anonymous Coward · · Score: 0

      I am sick of all these pogroms ;) and hate-mongering that the gentiles at M$ indulge in on against us free software folks.

  3. Is there a Hindi translation? by Anonymous Coward · · Score: 5, Funny

    I would like to send this to my programmers.

    1. Re:Is there a Hindi translation? by MiKM · · Score: 2

      You mean "pogrammers"

  4. recommended for advanced programmers by prestamospersonales · · Score: 3, Insightful

    this is a great book but is designed for advanced programmers only.

    1. Re:recommended for advanced programmers by Anonymous Coward · · Score: 1, Insightful

      Advanced programmers do not use C# nor .NET

    2. Re:recommended for advanced programmers by RightSaidFred99 · · Score: 4, Funny

      You just keep telling yourself that. If you wish hard enough and make enough "Micro$haft" jokes about how a super advanced processor "can't run Vista lolz" and how "nobody uses .NET" it will be true one day, little Johnny!

    3. Re:recommended for advanced programmers by TheCybernator · · Score: 1

      this is a great book but is designed for advanced programmers only.

      u mean Pogrammers !!

    4. Re:recommended for advanced programmers by eigenstates · · Score: 5, Insightful

      You know, after having had a go at scripting languages (Ruby, Python, PHP) etc. and trying to weed through the morass of Java libraries and excessively complicated deployment and Flex being a fscking joke- .Net/C# comes out the winner.

      It's tight, it's typed and cake to deploy. LINQ has potential for low memory use(fast) queries and Sliverlight seems to be much better than AS3/Flash because you get the cheat of direct access to WPF.

      eh. Not much of a zealot for any tech here- I would use Smalltalk if it would get the job done. Just a review and some thoughts.

      --
      quis custodiet ipsos custodes
    5. Re:recommended for advanced programmers by Massacrifice · · Score: 1

      You miss the real reason why it's all so much less complicated on .NET : There's only one platform to target, and that platform is Microsoft. You don't have to care about other platforms, because you _can't_ care about other platforms. Oh well, yeah, you can insert a Mono reference here, but as soon as you try to use it (I haven't, but I'm sure it works ok), you'll realize that you now face the same kind of complications that other cross platform languages face. I'm not saying .Net is bad or anything, just that the kind of peace of mind it provides has a price.

      --
      -- Home is where you eat your heart out.
    6. Re:recommended for advanced programmers by eigenstates · · Score: 1

      I don't think I missed that at all. I'd say if I had to choose an aspect of .NET that was it's weakest it would not be that. If I do a web app all of the worry about platform disappears- for the consumer.

      My consumer should not pay the price of having to consume Java, my coders should not have to pay the price of having to write for it and my sysadmins should not have to pay the price of having to maintain it. I would make the argument that the 'peace of mind' is specifically for me- the developer.

      And yes, Mono (works nicely, yes) is going to be a big nullifier in the development platform argument. So now(sooner) you have a strongly typed, modern language that can do what is needed very well, and yes, one way.

      --
      quis custodiet ipsos custodes
    7. Re:recommended for advanced programmers by shutdown+-p+now · · Score: 2, Insightful

      You miss the real reason why it's all so much less complicated on .NET : There's only one platform to target, and that platform is Microsoft.

      None of the reasons the GP mentioned in this post have anything to do with "one platform". He seems to be mostly content with C#-the-language, not .NET-the-platform. Java could have its own LINQ analog and type inference already, if only Sun (or Google, or IBM, or other of the big players) wanted it - which they don't. End result - talented language designers like Neal Gafter are leaving the Java scene and joining Microsoft to work on C#. And, given that Neal was the author of the most well thought-out proposal on adding closures to Java, it means that this feature will likely not make it into the language anytime soon - not until Java 8, if it will ever happen (by which time MS will already roll out C# 5.0, etc).

      Sad...

    8. Re:recommended for advanced programmers by johnlcallaway · · Score: 1

      Funny .. I've have had to analyze broken C# code (because the only guy who knew it left the company and everyone else writes in Java) and thought it was all a piece of shit and impossible to navigate. It's so nice to not have to deal with all the stupid file types and code spread out over programs and resource files and who knows where.

      I guess we all have opinions, no matter how unwilling we are to admit they are biased towards what we know best and against what we know least.

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    9. Re:recommended for advanced programmers by eigenstates · · Score: 1

      The stupid file types and not mentioning Java in the same sentence made me giggle- then appending the code being spread out over 'who knows where' made me erupt in cacophony of coffee spits and deep satisfaction(yes I emanate loud noises when deeply satisfied) that I gave up on Java the second time around for swing.

      WebSphere is a joy too isn't it?

      There is always only one place to look for code in C#/.NET.

      I highly recommend:
      http://www.charlespetzold.com/dotnet/

      --
      quis custodiet ipsos custodes
    10. Re:recommended for advanced programmers by Kintar1900 · · Score: 1

      My consumer should not pay the price of having to consume Java, my coders should not have to pay the price of having to write for it and my sysadmins should not have to pay the price of having to maintain it.

      Oh, hey, you might want to cover up, your bias is showing again.

      Exactly what "price" are you referring to? If you're using a web application, then your consumer has no price as you pointed out. If you've got an experienced Java developer (and if we're still talking about web applications), then your system administrators should have no measurable maintenance increase over .NET. Maintaining a Java install and a Tomcat or other servlet container is no more difficult for an experienced admin then maintaining a .NET and IIS install, and your experienced Java developer should be hiding any deployment complexity behind automated build and deploy tools, just like the Visual Studio IDE hides the complexity of building and packaging an ASP.NET application.

      I've been developing in Java since 1.1, and since I prefer small shops I've also ended up doing my fair share of .NET development and maintenance since the first release of .NET. I've deployed Java apps on Windows, Solaris and multiple flavors of Linux. I've rolled out both web-based and desktop (Swing) Java applications, as well as WinForms and ASP .NET applications. And I've had wonderful, painless experiences with both technologies in equal measure with the miserable, agonizing experiences.

      This debate boils down to the same thing most technical debates can be reduced to; the right tool for the right job. If your application development, deployment and/or maintenance sucks, then you should investigate your people and processes. They're more often at fault than the tools.

    11. Re:recommended for advanced programmers by eigenstates · · Score: 2, Insightful

      "And I've had wonderful, painless experiences with both technologies in equal measure with the miserable, agonizing experiences."

      Agreed. Completely. Perhaps I am just at a stage of being 'over' Java after its changing so many times at really fundamental levels.

      I like that there is only VS. I like that there is only IIS and only one (fundamental) .NET config. I like easy delegates...

      If I am biased, it's toward easy as opposed to 'for' M$.

      That's where I am now. Who is to say that will not change when the Evil Empire decides that Dictionaries are being deprecated and forget to tell anyone?

      And the price thing- it is much easier to write hideous Java code and put it on a poorly config-ed Tomcat than that is to do with .NET. That turns in to a price the user has to pay. And sometimes, especially with free(beer) software, the tools can be a bit busted. Tomcat/Apache is definitely a welcome exception to that.

      But in the end, realistically, yes, both can lead to bad stuff. Again, I agree with you.

      --
      quis custodiet ipsos custodes
    12. Re:recommended for advanced programmers by fireboy1919 · · Score: 3, Interesting

      Java could have its own LINQ analog and type inference already, if only Sun (or Google, or IBM, or other of the big players) wanted it - which they don't. End result - talented language designers like Neal Gafter are leaving the Java scene and joining Microsoft [artima.com] to work on C#.

      Well...Linq is sort of a hybrid thing, but it's mostly Microsoft finally adding an ORM language to .Net.

      Quite frankly, as a developer who uses both Java and .Net in my job (and am currently using .Net 3.5 sp1), Linq is an embarrassment.
      I have found the following problems:
      1) I cannot easily be sure which parts will run in the database and which in the VM.
      2) I have little control over how caching works.
      3) Does an extremely poor job of modeling relationships other than "Has A" and "Belongs To" (the very common "Has and Belongs to Many", for example, is missing).
      4) Some functions that work in BOTH the database and the VM don't work with Linq, or don't work reliably (examples I've found: shift operator, bitwise and when used with ulong).
      5) Almost all of the database functionality in Linq will not work with anything besides SQL Server.

      All of these reasons are why I'm sticking with Hibernate for Java, and NHibernate for .Net for as long as I can. Hibernate behaves predictably and reliably, and you can figure out what its doing when you have to and optimize queries that are taking too long, and you seldom have to worry about it failing in unpredictable ways.

      The only complaint I have with Hibernate is that you can't do subselects containing aggregate functions in Hibernate Query Language.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
    13. Re:recommended for advanced programmers by shutdown+-p+now · · Score: 4, Insightful

      As many others, you're confusing LINQ to SQL, LINQ to Entities / Entity Framework, and LINQ in general. LINQ to SQL is not a proper ORM, and is restricted to MSSQL. Entity Framework is a LINQ to SQL replacement that is a proper ORM, and is database-agnostic (there was an Entity Framework provider for PostgreSQL released recently, and more are in the works).

      LINQ in general is not an ORM. It can be used as a query language for an ORM, which is what LINQ to SQL is about (another example is NHibernate - the recent versions also support LINQ queries). But LINQ is also used in scenarios which do not have anything to do with ORM, or databases in general - LINQ to Objects/XML, to DataSet, and so on. LINQ itself is just a set of standard operators on lazy sequences, established years ago in the functional land - map, filter, fold, take etc - lifted as syntactic sugar into the language itself, with an extensibility API.

    14. Re:recommended for advanced programmers by gbjbaanb · · Score: 1

      generally the real reason its less complicated on .NET is because of Visual Studio. I had the pleasure of maintaining some VB.NET code very recently, and even with my very limited VB.NET skills (this was my first vb.net app!) it was kinda easy.. mainly because the IDE filled everything out for me.

      If I had to do it in notepad, I'd have been screwed. I'm not saying it is a good language as there was plenty of 'issues' in the class libraries I used, and it was a real PITA to remember to just forget about objects and let the GC work for me, but with the IDEs extreme help, it was pretty easy.

    15. Re:recommended for advanced programmers by fireboy1919 · · Score: 1

      Sounds like what you're saying is that Linq is just the language that goes along with an ORM mapper. Something like what HQL is capable of doing.

      In the rest of the programming world, one would make no such distinction. ORM=>ORM+API sublanguage.

      And I see no reason to make such a distinction here. It's not like Hibernate isn't capable of dealing with things besides databases. Why should we place an emphasis on that when talking about Linq to (*), but not when dealing with anything else?

      Even if we were...you've essentially *possibly* invalidated point #5. What about the other 4? Those don't actually have anything to do with ORM, but actually deal with using Linq as a language (vs using HQL as a language).

      Moving on, lets address your point:
      database-agnostic (there was an Entity Framework provider for PostgreSQL released recently, and more are in the works)

      If you actually have to make a new language variant for every single database, and it's hard enough that there wasn't one for the 10 most heavily used databases included with the initial launch, then it isn't even close to database agnostic. You can do almost everything you need to using standard, compatible-with-every-server SQL most of the time...but you have to be developing with that in mind.

      Out of the box, Linq to Entities works with SQL Server. If you go into VS2008SP1, and create a new Linq to Entities project, the only database option available is SQL Server. Everything else is still an unsupported add-on.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
    16. Re:recommended for advanced programmers by shutdown+-p+now · · Score: 1

      Sounds like what you're saying is that Linq is just the language that goes along with an ORM mapper. Something like what HQL is capable of doing.

      No, no, no!

      LINQ is not an "ORM language" Is map an element of an "ORM language"? Is fold? Of course not!

      LINQ can be used to build an ORM. It can also be used for many other things entirely unrelated to ORM or databases (in contrast, HQL is very specifically an ORM query language, not immediately usable outside that domain).

      Even if we were...you've essentially *possibly* invalidated point #5. What about the other 4? Those don't actually have anything to do with ORM, but actually deal with using Linq as a language (vs using HQL as a language).

      No, your points don't deal with "LINQ as a language" at all, because "LINQ as a language" is absolutely orthogonal to databases in general, kinds of relations (belongs-to / has-a) in particular, caching, and so on. What you were describing is LINQ to SQL - which, I agree, is rather crappy, especially when compared to proper ORM such as Hibernate (this is what your #1, #2, #3 and #5 are about). Entity Framework is supposed to alleviate that, though I still do not consider it as mature as Hibernate. Even so, it has its nice sides (I believe that they're right on track with the idea that plain objects with decorators/attributes are not the best way to initially model entities - you really need a dedicated ERD modelling language for that, the one where relations are also first-class, named, and explicit).

      Some functions that work in BOTH the database and the VM don't work with Linq, or don't work reliably (examples I've found: shift operator, bitwise and when used with ulong).

      This is not true. In plain LINQ to Objects, every single operator is supported, and any function call works. Without any limitations whatsoever. Because it actually, you know, just calls those functions?

      Once again, what you describe here is a LINQ to SQL limitation, not applicable to LINQ in general.

      If you actually have to make a new language variant for every single database

      You don't make a "new language variant". You have to make a "provider", which is entirely the same as NHibernate driver or (on a lower level) ADO.NET/JDBC driver. Microsoft has made a provider for their own database, now other vendors are delivering providers for their databases. Entity Framework infrastructure is designed to be extensible, so there's no difference between MSSQL provider supplied out-of-the-box, and third-party providers. LINQ-the-language is exactly the same in all those cases (just as it is exactly the same between LINQ to Objects, LINQ to SQL, and EF). C# compiler does not know nor care, and it's the one that defines LINQ syntax.

      You can do almost everything you need to using standard, compatible-with-every-server SQL most of the time

      Yeah? Try calling a stored procedure in a server-agnostic way. Or work with dates. Or concatenate two strings. Or get a substring of a string. Or limit the output of a query to the first N rows. Or create an autoincrementing field.

      If you think you know the answers for all of the above, then have a look at this comparison of different SQL implementations, and check yourself.

      And that's without even mentioning the subtle behavioral differences between locking (DB2, MSSQL) and MVCC (Oracle, Postgres, Interbase) database engin

    17. Re:recommended for advanced programmers by eigenstates · · Score: 1

      No sarcasm intended here- I am really happy to see these things get discussed intelligently. Maye some day we will get a fully platform independent, robust development language... thanks to all for a good talk.

      --
      quis custodiet ipsos custodes
    18. Re:recommended for advanced programmers by RightSaidFred99 · · Score: 1

      These are, of course, not issues with LINQ but issues with various providers for LINQ. In fact there is Linq support coming for NHibernate.

    19. Re:recommended for advanced programmers by fireboy1919 · · Score: 1

      This is not true. In plain LINQ to Objects, every single operator is supported, and any function call works. Without any limitations whatsoever. Because it actually, you know, just calls those functions?

      Okay, sure. I've never tried that; its fairly useless to me. Most of the syntactic sugar I need is in the database design. What I have tried, and the examples I had problems with, are from Linq to Entities.

      Yeah? Try calling a stored procedure in a server-agnostic way. Or work with dates. Or concatenate two strings. Or get a substring of a string. Or limit the output of a query to the first N rows. Or create an autoincrementing field.

      The "autoincrement" thing is necessary for creating new records in the database. That needs to be specified for any language variant. The other things mentioned here can be interpreted by the relational database. The advanced query language doesn't need to know what they are.

      This is true of nearly every operator in each language variant. The important thing isn't recognizing all the operators/functions and how they work; it's recognizing the difference between a function/operator and a table and field. If the ORM can do that, it has all it needs to convert queries from its language into pure SQL.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
    20. Re:recommended for advanced programmers by shutdown+-p+now · · Score: 2, Interesting

      This is true of nearly every operator in each language variant. The important thing isn't recognizing all the operators/functions and how they work; it's recognizing the difference between a function/operator and a table and field. If the ORM can do that, it has all it needs to convert queries from its language into pure SQL.

      I'm not quite sure what you mean, but my point was that there is no such thing as a "pure generic SQL". SQL generated for Oracle will not work for Postgres or MSSQL. You can probably have a very basic ORM that only uses a common subset of SQL for the stuff that it generates, and loads the rest of it onto the programmer; but that would mean that anything written using such an ORM is not really backend-agnostic. Entity Framework, in contrast, chooses to hide those SQL differences, which is why it needs backend providers that know what they are. Similarly, Hibernate also chooses to hide those SQL differences, which is why it needs backend drivers as well.

    21. Re:recommended for advanced programmers by @madeus · · Score: 2, Insightful

      I'm using and deploying C# .NET on Linux in a production environment right now, and I'm absolutely not a Microsoft fan and wouldn't have wanted to anywhere near Windows or Visual Studio prior to .NET and C#.

      Mono is absolutely amazing for cross platform development. I develop on Mac OS X, deploy on Linux (and other Unix platforms) and on Windows it it Just Works (TM). I'll admit the first time I ran an app on Windows (with .NET) that I'd developed on Mac OS with IIS I was taken aback with how flawlessly it worked. I've found the only target platform specific code I have is that which I knowingly and deliberately call (for example, to inspect the registry on Windows).

      I'm really loopy over the syntax of C#. It's very, very tight and both development and deployment for things like SOAP web service is ridiculously easy - and even more impressive with Mono than with using ISS to server the same content (which generates a lot of automatic documentation and examples for service).

      The only major issue I have with Mono right now is that it's not ready for widespread end user application deployment on Mac OS X for GUI applications - it's both unstable and not fully native. However it would still be absolutely fine on Mac OS X server software, code which is called from a Cocoa application (the road I think I am going to have to go down for the Mac version of the application I'm currently working on) or for bespoke / enterprise application deployment.

      Of course, I think it's important to mention to that Mono really isn't to .NET what WINE is to Win32 application compatibility - which is an understandable, if inaccurate initial conclusion to come to about it...

        While applications built with Mono in mind work great on both Mono and on .NET for Windows, .NET applications written on Windows with Visual Studio are necessarily going to work under Mono without issue, because it's easy to do platform specific code in Visual Studio, particularly when writing desktop software.

      So in that respect it's absolutely true to say .NET has issues, but when using Mono it works really well for cross platform application development (with the exception of the caveats mentioned for Mac OS X). Under Linux, I've had no such issues. I will say it takes a bit of work to deploy and package Mono applications for end user deployment, and for now shouldn't be taken too lightly (tools like mkbundle and macpack are great, but in practice can take some work to get up and running under a Windows environment in particular.)

    22. Re:recommended for advanced programmers by Ilgaz · · Score: 1

      All advanced programmers I know tries to be ready for true multiplatform future which is almost here and stays away from such single Vendor/OS technologies even including Apple stuff.

      I don't say they all sit and code in Java or Perl, they just try to be multi platform friendly as far as possible. They don't buy Mono team promises either.

      KDE 4 gives a good clue about future of computing. Of course, if you are Linux only guy, you will see it as a huge, bulky KDE. When you run it on Windows or OS X natively, you understand true value of it and true multiplatform frameworks like Qt.

    23. Re:recommended for advanced programmers by Froggie · · Score: 1

      Actually, I'd argue that the LINQ-to-SQL stuff makes it *easier* rather than more difficult to target different DBs. And the CLR VM clearly runs on other (Intel) platforms as part of Silverlight.

    24. Re:recommended for advanced programmers by Kintar1900 · · Score: 1

      Perhaps I am just at a stage of being 'over' Java after its changing so many times at really fundamental levels. I like that there is only VS. I like that there is only IIS and only one (fundamental) .NET config.

      I think again you're being biased to what you're most familiar with. Java has had two "fundamental" changes, when they rolled out 1.4 and again when Java 5 was released. Both of those were supposed to retain full backwards compatibility, but I ran into multiple apps in each case that simply didn't like the new VM. In my experience with .NET migrations, it was no different in the pain it caused when upgrading to 2.0 or 3.0. The pain was simply centered less around the runtime, and more around the upgrade in the IDE and its utter failure to properly convert old projects to the new version.

      And the price thing- it is much easier to write hideous Java code and put it on a poorly config-ed Tomcat than that is to do with .NET.

      Again, I have to disagree. I've seen nearly identical results between some boneheaded, thinks-he-knows-everything Java developer writing lousy code and doing a crappy job of configuring his J2EE+Tomcat app, and a similarly overconfident and undereducated .NET developer writing hideous VB.NET code and mis-configuring the IIS server.

      Obviously, YMMV based on where you've worked and what exposure you've had to each side, but speaking as someone who has worked with both Java and .NET since they were infants, they both throw temper-tantrums that can wreck your house, and they both typically do it due to parental neglect, not through inbreeding or birth defects.

    25. Re:recommended for advanced programmers by fireboy1919 · · Score: 1

      Hibernate also chooses to hide those SQL differences

      Wrong. Reread my last comment. You're perfectly free to use any function, aggregate, or other feature defined only within your database when you're using hibernate. The ONLY thing the ORM is doing is combining relational with OOP. It isn't binding you to some whole new language that limits the features you can use (other than the aforementioned lack of aggregates in subselects).

      It needs backend drivers to recognize the small portion of SQL that it actually uses to do such a mapping. Hiding the functionality of the database is well and good, but sometimes databases have fantastic functionality that you don't want to miss.

      I don't want to be bound by the lowest common denominator of database functionality when I'm writing my code, and if Entities always requires this, then it is certainly always going to be much less functional than the databases it supports...and so will not be used.

      --
      Mod me down and I will become more powerful than you can possibly imagine!
    26. Re:recommended for advanced programmers by eigenstates · · Score: 1

      Ha. Temper tantrums. Yes.

      And yes, biased toward familiarity and experience. But how would one make a decision without that kind bias?

      Or is this too existential for this thread?

      I understand bias implies a lack of objectivity- but at this stage with both technologies being (fundamentally) mature and capable of doing (nearly) the same thing, shouldn't I have an judgement based on previous interaction?

      This is too existential for this thread.

      --
      quis custodiet ipsos custodes
    27. Re:recommended for advanced programmers by shutdown+-p+now · · Score: 1

      Entity Framework allows you to call stored procedures, which, obviously, can use any advanced features of the DBMS. I do not know if there is any other way to access them, but there may well be.

      On the whole, though, my impression that, conceptually, EF does indeed try to hide those differences. For example, Microsoft said that there will be EF providers upcoming for some backends that are not relational DBMS at all (e.g. SharePoint). And I would not be surprised if some future version of MSSQL will support EF "natively", effectively turning into an object-oriented database.

  5. Pogramming, def: by CompMD · · Score: 1

    The act of doing a really bad job of gramming.

    1. Re:Pogramming, def: by Ethanol-fueled · · Score: 5, Insightful

      Not to be confused with Po'grammar, which describes the posting behavior of slashdotters.

    2. Re:Pogramming, def: by CODiNE · · Score: 1

      Nor confused with Pogrammer ... awesome programmers like myself who just can't get a job.

      --
      Cwm, fjord-bank glyphs vext quiz
    3. Re:Pogramming, def: by Anonymous Coward · · Score: 0

      Does this have something to do with the grammar one might expect from a certain lovable teletubby?

    4. Re:Pogramming, def: by nickruiz · · Score: 1

      I was thinking more along the lines of the state of our industry after this economic crisis. We'll all be reduced to po'grammers.

      Excuse me, sir, but do you have a coin for this po'grammer? All I've got is these rags and 255 lines of bytecode.

    5. Re:Pogramming, def: by Kingrames · · Score: 1

      Or Prog Farr, the ancient Vulcan programming language.

      --
      If you can read this, I forgot to post anonymously.
    6. Re:Pogramming, def: by liquiddark · · Score: 1

      Wouldn't that be Popogrammers? Which actually sounds like a cop's English course, but whatever.

  6. Spellink by HaloZero · · Score: 1

    Pogrammers need to spell korekktly - just konsistenetely.

    --
    Informatus Technologicus
    1. Re:Spellink by Anonymous Coward · · Score: 0

      vhy?

  7. Microsoft devs by Enderandrew · · Score: 3, Funny

    Microsoft devs who focus on .NET are known as pogrammers. Microsoft is right and the rest of the world is wrong. Better get on the bus.

    --
    http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
    1. Re:Microsoft devs by gbjbaanb · · Score: 1

      Surely that should be pogrommers? The reference here being specifically directed at any non-MS user.

    2. Re:Microsoft devs by Enderandrew · · Score: 1

      Apparently moderators can't detect sarcasm.

      --
      http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
    3. Re:Microsoft devs by TheQuantumShift · · Score: 1

      Depending on just where we're ramming those pogs, that actually sounds better than the vague fuzziness that "Developer" has become.

      --

      Shift happens. Fire it up.
  8. Anyone else see the cover and think... by Alpha+Whisky · · Score: 5, Funny

    How appropriate, it's a picture of a lame duck.

    --
    it's = it is

    its = belonging to it

    1. Re:Anyone else see the cover and think... by FooBarWidget · · Score: 0, Redundant

      It's not a lame duck, it's a cute duck.

    2. Re:Anyone else see the cover and think... by $RANDOMLUSER · · Score: 1

      "What's the difference between you and a mallard with a cold?
      One's a sick duck and I can't remember how it ends, but your mother's a whore."
      HA HA HA HA!

      --
      No folly is more costly than the folly of intolerant idealism. - Winston Churchill
    3. Re:Anyone else see the cover and think... by R3d+Jack · · Score: 1

      The first 5 for funny I've seen in a couple days! Good catch...

    4. Re:Anyone else see the cover and think... by Sponge+Bath · · Score: 1

      If it quacks like a duck and walks like a duck...

    5. Re:Anyone else see the cover and think... by LifesABeach · · Score: 1

      I can't help but think that if O'Reilly had titled the book to, "Mono 3.5" that the "gate" of the duck would not have been so "noticeable?"

  9. Lame duck? by wild_berry · · Score: 1

    Is the picture on the book supposed to be a limping/lame duck?

  10. Pog Ramming by sakonofie · · Score: 3, Funny

    There should be a space between pog and ramming. Back in my day, we used pog "slammers," not "rammers," but you can call 'em whatever you want samzenpus.
    Also, I am still confused as to what this has to do with Card Space. Is there a new crossover between pogs and yuugio/magic/pokemon? I hope so. I believe children nationwide will benefit from throwing large chunks of brass at the ground during school.

  11. Good Review by wrfelts · · Score: 1

    Thanks for the review Adrian! I'm also a .Net 2.0 programmer. Being employed doing 2.0 full time makes it hard to bounce around the net trying to find cohesive 3.5 examples and explanations (that aren't just hacks.) This looks like a good place to do the concentrated study that I need.

    1. Re:Good Review by Anonymous Coward · · Score: 0

      No - if you were a real programmer, you'd just read the API.

      But you do sound like a really bouncy puppy, so enjoy your Microshafting.

    2. Re:Good Review by mollymoo · · Score: 1

      No - if you were a real programmer, you'd just read the API.

      APIs? Real programmers don't use APIs they... oh fuck it.

      Good programming isn't about bravado. It's not about doing things the hard way because it makes you feel big and tough and like a "real programmer". That's not being a "real programmer", that's an inferiority complex.

      --
      Chernobyl 'not a wildlife haven' - BBC News
  12. Baby by nawcom · · Score: 0, Troll

    I think Pog Ramming is a new sex position that Balmer invented with his wife. He makes her bend over a chair and makes sum luvin' doggy-style; shortly thereafter he tosses her across the room. There is a story that goes around that says that Balmer is quite loud when he finishes, to quote exactly what he screams out like a pig: "I LOVE THIS COMPANY!"

    Thank you everyone, I'll be here all night.

    1. Re:Baby by jDeepbeep · · Score: 2, Funny

      Thank you everyone, I'll be here all night.

      ...and don't forget, the 8 o-clock show is the same as the 7 o-clock show

      --
      Reply to That ||
  13. MIT by tck44 · · Score: 1, Flamebait

    Lol, MIT. We have that at my university as well. It's entirely comprised of students who can't hack CS or CE.

  14. Mono 2.5 released by MosesJones · · Score: 0, Offtopic

    Meanwhile Mono struggles on a few versions behind pushing interoperability to the limits of 2006.

    Never got that project, never will.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
    1. Re:Mono 2.5 released by fredrik70 · · Score: 4, Informative

      actually, iirc, mono is compatible with all of .NET 2.0 and quite a bit of 3.5, so they aint that far behind, see: http://www.mono-project.com/FAQ:_General

      --
      if (!signature) { throw std::runtime_error("No sig!"); }
    2. Re:Mono 2.5 released by Anonymous Coward · · Score: 3, Funny

      mono is compatible with all of .NET 2.0 and quite a bit of 3.5, so they aint that far behind

      I hear that they're ahead in some areas, patent infringement for example.

    3. Re:Mono 2.5 released by Anonymous Coward · · Score: 0

      "Aint that far behind" come on, Mono has put a lot of effort on making the Windows Forms work while they do not even have the intention to implement WPF which is so much nicer it's not even funny. WinForms are lame and no one ever tried to build a serious client app in it while WPF is all the rage and has proved itself with stuff like the new Yahoo Messenger.

    4. Re:Mono 2.5 released by shutdown+-p+now · · Score: 1

      The problem is that "quite a bit" of 3.5 (+SP1) is, in fact, a very big bit: they're missing WPF, WCF, and WWF, as well as LINQ to SQL and LINQ to Entities.

      The only bits of 3.5 they seem to have are C# 3.0 language features in the compiler, and basic LINQ to Objects/XML/DataSet.

      Given that MS has just announced .NET and C# 4.0, yes, Mono guys are clearly falling behind.

    5. Re:Mono 2.5 released by OneSmartFellow · · Score: 0, Flamebait

      WPF, WCF, and WWF are mostly shit anyway.

      If you're stupid enough to try to use them in anger I feel pity for your customers.

      Believe me, I have tried to use them all. OK, so perhaps WPF is almost usable, but WWF is atrocious, and should never have been released. Get anything more complicated than a simple three activity workflow and all of a sudden the designer slows to a crawl. And I have a top spec machine. Dual core 3Ghz with fast SATAII disks and 4G RAM. The designer runs like a pig. When it does decide to display my statemachine workflows I can crash it by selecting *any* activity and double-clicking it. Absolute garbage.

    6. Re:Mono 2.5 released by shutdown+-p+now · · Score: 1

      I must admit I have pretty much zero experience with WWF (workflows? why bother, when I can code the same much faster?). But WPF is, in my opinion, much more impressive - at least it's the first UI framework from Microsoft that's built around data binding from ground up (which enables proper MVC/MVP). WinForms had data binding bolted on in later versions, and that really shows - there are quite a few corner cases where it just doesn't work, and then some more where it sorta does, but performance is abysmal. Not to mention some controls that are simply not databinding-aware at all (e.g. ListView), and general silly limitations on some features originating from the underlying Win32 API.

      WPF certainly has its rough edges in its present state - some performance issues that had only been resolved in 3.5 SP1, a fairly small selection of basic controls, text renderer not quite suitable for small fonts (such as Windows default one), and so on. But it's getting better fast, and it's already at the point where it has some advantages over WinForms for production projects, depending on what needs to be done. What's most important is that the base there is solid.

      WCF, now - what's wrong with that? Certainly much better than the old ASP.NET webservice model, and more standard-centric as well. Hostable outside IIS, too - at last. What's not to like?

    7. Re:Mono 2.5 released by Anonymous Coward · · Score: 0

      you're using Yahoo Messenger as an example of a serious application?

    8. Re:Mono 2.5 released by gbjbaanb · · Score: 1

      WCF.. apart from my pet peeve with it: its sockets implementation is 'specially optimised for great ECF to WCF performance', ie it doesn't provide any interoperable tcp/ip socket, its a layer on layer on layer technology.

      WCF runs on top of COM+, which was pretty poor for performance, which is layered on top of DCOM, on top of TCP/IP. Its queue connectivity - on top of MSMQ.

      I think there's the potential for it to be good, and its webservices is better than running ASP.NET webservices (but not as good as gsoap :) ).

      I'd prefer a nice, easy to use socket library with data transfer helpers, I think WCF will find its niche as a webservice provider, but no more than that.

    9. Re:Mono 2.5 released by shutdown+-p+now · · Score: 1

      WCF.. apart from my pet peeve with it: its sockets implementation is 'specially optimised for great ECF to WCF performance', ie it doesn't provide any interoperable tcp/ip socket, its a layer on layer on layer technology.

      What socket implementation did you find in WCF, even? It runs on top whatever is given to it - inside IIS, it uses IIS networking; when hosted in a .NET application, it uses System.Net sockets.

      And why would a webservice framework need "interoperable TCP/IP sockets", even? It is, by definition, operating on a layer much higher than that!

      WCF runs on top of COM+

      No, it doesn't. Where did you even get that idea? And why would web services run on top of an object-oriented remoting stack that does not even use HTTP?

      I'd prefer a nice, easy to use socket library with data transfer helpers

      If you need a socket library, then what's wrong with plain old sockets, and possibly NetworkStream + BinaryFormatter?

      If you want more than that, but still don't care about interop, there's .NET remoting.

      I think WCF will find its niche as a webservice provider, but no more than that.

      Well, and what else is it supposed to be?

    10. Re:Mono 2.5 released by gbjbaanb · · Score: 1

      Well, and what else is it supposed to be?

      Its supposed to be a complete communications framework for all kinds of IPC. I see from your post that you've only seen/used the webservice stuff, but there is more in the whole package. I think WCF is positioned as the main communications system for everything in .NET

      All my info comes from Juval Lowy's book (though probably with more stuff picked up here and there)

    11. Re:Mono 2.5 released by Ilgaz · · Score: 1

      a bit from that, a bit from this and we don't see a single .NET software being out there except some demo like media players.

      It is like every month, I see a software coded in .NET framework (not bad on Windows) and when I check, it is impossible to make it run on any other thing except windows.

      and I run Azureus (now Vuze) on 3 different operating systems and 2 different CPUs which has nothing to do with each other.

    12. Re:Mono 2.5 released by Ilgaz · · Score: 1

      VB6 was a complete shit and it didn't stop people from using it.

      I bet somehow MS makes it easy for Windows based developers to use those frameworks. I am betting on it knowing how MS works and how false their promises are along with those puppets supporting them.

    13. Re:Mono 2.5 released by shutdown+-p+now · · Score: 1

      Its supposed to be a complete communications framework for all kinds of IPC. I see from your post that you've only seen/used the webservice stuff, but there is more in the whole package. I think WCF is positioned as the main communications system for everything in .NET

      Interesting. I have always got the impression that Microsoft positions it as a replacement for the assorted set of remoting technologies they had before - COM+/EnterpriseServices, .NET Remoting, and ASP.NET Web services. But, from what I've read on MSDN, they just kept talking about using service-centric model in general, and HTTP web services in particular - certainly not something truly general-purpose. So I mentally catalogued WCF as "the new better way to do SOA in .NET 3.0+", but certainly not as replacement for good old socket streams, binary serialization, and .NET Remoting, and considered the rest just meaningless marketspeak that MS is usually so good at. Judging by what you say, I was wrong.

      Do you have any examples of other (non-service-centric) recommended scenarios of WCF use?

    14. Re:Mono 2.5 released by gbjbaanb · · Score: 1

      lol, no I think you were right... ignore the marketing message and stick to WCF as webservice only and you'll be fine. (until they deprecate it too in favour or XML serialised Biztalk connector objects :-) )

      I think it was supposed to be a replacement for all the other comms tech, from years and years ago, but I guess someone started work on it and then realised just how much effort it would be to repackage everything up (or figured out that they got a better "value-return-proposition" by just slapping a .NET wrapper on top, pretty much like the rest of .NET)

  15. I still don't get it... by Anonymous Coward · · Score: 0

    A book with a duck on the cover for pogs

    "Being employed doing 2.0 full time makes it hard to bounce around the net trying to find cohesive 3.5 examples and explanations"

    Perhaps a language which changes so drastically and so quickly should be avoided. Especially when that company is Microsoft, and especially when that stands a major chance of ruining all of your previous hard work.

    "Our goal is to show you the 25% that you will use 85% of the time." - exactly...

    1. Re:I still don't get it... by Mongoose+Disciple · · Score: 3, Informative

      Perhaps a language which changes so drastically and so quickly should be avoided.

      Eh, not really. New editions of .NET, for the most part, only add options and functionality; they don't break existing code. If you don't want to use generics, WCF, LINQ, etc. as they're introduced, don't -- they just present what amount to easier/cleaner options to achieve the same goals, in some cases. Instead of iterating through a collection and picking out the objects that match your chosen criteria, maybe you write a LINQ query to do it instead. The latter is less code and probably a lot easier on whoever has to maintain your code down the line (it's easier to read/understand/modify), but the former still works.

      I've spent a lot more time dealing with fallout from PHP 4 code that isn't valid PHP 5 code (for example) than I ever have with old-version .NET code -- and I spend a lot more time working with .NET code.

    2. Re:I still don't get it... by shutdown+-p+now · · Score: 2, Informative

      Perhaps a language which changes so drastically and so quickly should be avoided. Especially when that company is Microsoft, and especially when that stands a major chance of ruining all of your previous hard work.

      So far, MS has a pretty good track of backwards compatibility with .NET. C# in particular goes to great lengths to not break stuff. For example, one of the new features in C# 3.0 is type inference for local variables, similar to "auto" in C++0x. So, you can write:

      <b>var</b> list = new List<int>();

      And type of "list" will be inferred from the type of initializer. Now, "var", is a keyword here, but it's a special one. In theory, there might be an existing valid C# 1.x/2.0 program like this:

      struct var { }
      // ...
      var x = new var();

      In this case, "var" is just a user-defined type, and should be treated as such. And C# 3.0 compiler will do precisely that. The new meaning of "var" will only kick in if you don't have a type named "var" in scope, otherwise you'll just get the old explicit 1.x/2.0 semantics. MS calls that "context keywords". "Context" can be different in any given case - e.g. "var", as noted already, depends on types visible in scope; another context keyword, "partial", is only a keyword when it is immediately followed by another (normal) keyword "class". And so on.

      In fact, all new keywords that appeared after the very first version of C# are like that: "global", "partial", "where" and "yield" in C# 2.0; and all the new LINQ keywords ("from", "select", "let", "join" etc) in C# 3.0.

      Long story short, a CTP (that is, prerelease) C# 4.0 compiler can still compile any valid C# 1.0 program, with exact same semantics. Few other languages can boast the same level (Java cannot, for example, and neither can C++). I'd say that says a lot about commitment to backwards compatibility in this particular case.

    3. Re:I still don't get it... by FishWithAHammer · · Score: 1

      I can't think of any significant, remotely-close-to-good-practices .NET code that breaks in subsequent .NET versions.

      Of course, I'm also not a freetard, so I won't FUD that they'll stop adhering to this behavior.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    4. Re:I still don't get it... by exhilaration · · Score: 1

      I've had the same experience. Our .Net 1.x code runs seamlessly after importing it into the latest Visual Studio 2008. There are couple of clicks to run the conversion process, but that only changes the project metadata, not the C# code itself.

    5. Re:I still don't get it... by dbIII · · Score: 1

      If that is the case why do I need one different dot net library for every dot net application that I run? One needs v1, another v2, another v3 and now some things will be needing v3.5. Normally this wouldn't be a big deal however they are fairly big libraries and for some reason the applications never seem to include either a copy of the library or a valid link to download it. It makes installing MS Windows applications more painful than usual and to date all that I have seen are VB shareware quality no matter what youpay for them. I have to admit that I've only noticed the dot net stuff on the web when it crashes web browsers so I don't know much about the reliability there (and most likely have my opinion skewed by the buggy crap that crashes web browsers that probably would be buggy crap in any language). From the outside it appears that MS tried to reinvent something like Java badly and couldn't get away from the ever shifting VB mindset.

    6. Re:I still don't get it... by leabre · · Score: 1

      .NET Framework 1.x is completely different than 2.x, mainly because IL instructions and so on changed a bit with the introduction of Generics. They are relatively "sourcecode" compatible except where a few classes/methods/interfaces where marked obsolete by a replacement iteration/improvement that does require referencing a new assembly. But, for the most part, the new bits are completely optional and you can suppress the [Obsolete] compiler warning if you choose.

      With the addition of .NET 3.0 (WPF, WF, WCF, and CardSpace), is really built on top of .NET 2.0 and basically introduces new capabilities. There are no new compiler features or language features otherwise. If you don't use any of the .NET 3.0 features, then you do not need to install .NET 3.0. .NET 3.5 is built in top of .NET 2.0. They did change the compiler to have more language features and they did make significant performance enhancements in the JIT, but otherwise, it is .NET 2.0. You can actually use all of the new C# 3.0 features and target .NET 2.0 except the extension methods and LINQ (which requires the use of Extension methods). You can create projects that target the .NET 3.5 framework and still reference only .NET 2.0 assemblies as long as you don't use anything that's new to .NET 3.5 (or .NET 3.0).

      But it will be hard to do so because by definition, a .NET 3.5 application is something of Microsoft AJAX or WPF, WCF, WF, etc. Also, later .NET frameworks are cumulitive include everything previous, and are 99% backwards compatible. At least in the many multimillion line projects I've participated in, not one line of code has had to change for newer releases.

      As to whether .NET is buggy or not. I've noticed just as many JSP and Flash and PHP websites that were buggy and prone to crashing, too. Considering that I've mostly worked on large enterprise projects that must sustain tens of millions of transactions/page requests per day (I'm currently an architect for one that must sustain 400 million), .NET is quite capable. It is just as easy to write crappy .NET code as it is crappy Java code and PHP. .NET make the problem more visible by rendering an internal exception into the HTML stream if the developer does not handle the exception (very bad practice). In all, I don't think .NET is any more buggy than any other language. The framework is solid if not quirky or lacking in some areas. It is the programmers, ultimately, that write good or bad code, or adhere to standards and good practice or none at all.

      When you see buggy .NET applications, it is not because .NET sucks, it is because the programmer who wrote the application sucks.

      Thanks,
      Leabre

    7. Re:I still don't get it... by Anonymous Coward · · Score: 0

      The only thing that bothers me about .NET (and I was pleased to find out that the same opinion is common within Microsoft) is that they have a lot of .NET 1.1 legacy code, most of it core ASP.NET and ADO.NET, that does not make use of generics.

      Of course this is due to the fact that they want to avoid breaking backward compatibility wherever possible. If .NET 2.0 had been the first release all of ASP.NET and ADO.NET would be a lot simpler.

      Look ad XmlSerializer's lack of support for generic lists. In theory it should work, as IList implements IList, but in practice it refuses to serialize any generic collection. Modern code needs to use generics all over the place. Of course you can use ContractSerializer but that means switching all your webservices to WCF. WCF has it's own list of horribly painful bugs and quirks (who the hell decided that PreserveObjectReferences should not be configurable??)

  16. Silverligth by sskagent · · Score: 1

    XAML, AJAX,C# and Silverligth

    Silverligth?? Sounds like some creepy relation of cthulhu

    1. Re:Silverligth by uberjack · · Score: 1

      Silverligth?? Sounds like some creepy relation of cthulhu

      They just might be. They both have quite a few followers and are equally hideous.

  17. I clicked by Anonymous Coward · · Score: 0

    I clicked just to see what Pogramming was.. boy was I disappointed..

  18. You know..... by Seakip18 · · Score: 5, Insightful

    It's a sad day at Slashdot when more people would comment on a typo than offer criticism about a book. So let's fix this.
    It explains some of the newer things 3.5 brings but does it deal with their actual implementation with business logic or otherwise? From what I've gathered, LINQ sounds like craziness in terms of being able to keep SQL maintained.

    Roll with that.

    --
    import system.cool.Sig;
    1. Re:You know..... by Anonymous Coward · · Score: 0

      Those are the only criticisms they can come up with for .NET :)

      I can come up with plenty but I'm a .NET dev for the most part.

    2. Re:You know..... by shutdown+-p+now · · Score: 2, Informative

      From what I've gathered, LINQ sounds like craziness in terms of being able to keep SQL maintained.

      LINQ to SQL is no different in concept than Hibernate's HQL, or any of the other dozen self-designed query languages. Well, except that it's "language-integrated".

      Nor is it limited to databases. A project I work on has none, but uses LINQ heavily for queries on plain object collections and XML. It really cuts down on boilerplate code (but then again, those who have been using Haskell or ML, and know what "map" or "fold" are, should not be surprised - that's what LINQ, in fact, is).

    3. Re:You know..... by dedazo · · Score: 1

      LINQ sounds like craziness

      The beauty of features like LINQ being added to .NET is that they're case studies on FOSS double standards, because if that had been added to Java or Python, everyone and their little sister would be screaming to the four winds how totally cool it is and LOLOL, Microsoft doesn't have it.

      Certainly anyone daring to utter the word "craziness" in conjunction with that fresh and exciting new feature would be considered a troll and dealt with accordingly by the unwashed masses of syntactic sugar-hungry Java developers.

      --
      Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
    4. Re:You know..... by BRSQUIRRL · · Score: 4, Informative

      I blame Microsoft for perpetuating this misconception, but LINQ (at its core) has nothing to do with SQL or databases.

      I too am a little skeptical about LINQ-to-SQL, the implementation of LINQ that allows querying/manipulating SQL databases. But basic LINQ -- the idea of overlaying the .NET class library with a set of generic query operations and then providing new programming language keywords to twiddle them -- is pretty cool. For example, LINQ can work over in-memory collections of objects or XML documents, which allows you to replace lines and lines of arcane search loops with a single LINQ query statement that is infinitely easier to understand and maintain.

    5. Re:You know..... by Anonymous Coward · · Score: 0

      LINQ sounds like craziness in terms of being able to keep SQL maintained.

      If your queries are in LINQ, you won't have to "keep SQL maintained".

    6. Re:You know..... by Anonymous Coward · · Score: 0

      I agree with your first paragraph, but the review is of the book, not the .Net framework.

      (BTW Linq is the opposite of craziness, it is the single most innovative and useful technology I have seen during my 10 years as a developer)

    7. Re:You know..... by CodeBuster · · Score: 4, Insightful

      LINQ sounds like craziness in terms of being able to keep SQL maintained.

      You have to look beyond SQL and see the real value of having an abstract in-language query facility which can be remapped, using any number of methods from XML configuration to dependency injection, to any data source which supports LINQ. This is no more complicated than the previous state of affairs in many high level languages with generic data table and grid objects or strings built up as queries. The genius of LINQ is that it compliments the better solutions while replacing the inferior ones and providing some additional goodies, lambda expressions for example. LINQ stands for Language Integrated Query and is NOT just LINQ to SQL (although Microsoft has promoted the hell out of that implementation). Sometimes it pays to look beyond the hype and see what a new technology really does (or does not) bring to the table and if LINQ is just another way to write SQL to you then perhaps you should take another look, because LINQ has much more to offer than just LINQ to SQL.

    8. Re:You know..... by Cyrcyr · · Score: 0

      Every day is a sad day on slashdot, seen from the eyes of a Microsoft.

    9. Re:You know..... by shutdown+-p+now · · Score: 1

      The idea of LINQ as a general-purpose query language that can either be compiled directly as an expression, or parsed at runtime by an expression parser depending on the type of the object it is applied to, is also quite sound. After all, why should there be a difference in the query language between a set of in-memory collections, and a database? So long as both are considered relational sources with corresponding operators, it seems natural to treat them the same.

    10. Re:You know..... by coolGuyZak · · Score: 1

      for quite some time, that did occur, at least for the linq-to-collection functionality. Other languages call that functionality 'list comprehension'.

    11. Re:You know..... by ClosedSource · · Score: 1

      Is HQL statically typed?

    12. Re:You know..... by Draek · · Score: 1

      The beauty of features like LINQ being added to .NET is that they're case studies on FOSS double standards, because if that had been added to Java or Python, everyone and their little sister would be screaming to the four winds how totally cool it is and LOLOL, Microsoft doesn't have it.

      Prove it.

      --
      No problem is insoluble in all conceivable circumstances.
    13. Re:You know..... by dedazo · · Score: 1

      Other languages call that functionality 'list comprehension'.

      Being a relatively decent Python developer, I can tell you that LCs are not even in the same ballpark as LINQ, although of course that's one of its applications.

      I suppose there might be a language out there that has something similar, but that would certainly not be the mainstream 'P' languages or Ruby.

      --
      Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
    14. Re:You know..... by shutdown+-p+now · · Score: 1

      Yes, it is statically typed, though probably not in a sense you mean here - since HQL exceptions are (typically) hosted as plain string literals within the host language, the type verification only happens when they are processed by the HQL parser - which is run-time from the point of view of the application as a whole. LINQ, in contrast, is type-checked at compile-time, since it shares the type system with the host language.

      Anyway, how is it relevant to the original issue?

    15. Re:You know..... by shutdown+-p+now · · Score: 1

      Sometimes it pays to look beyond the hype and see what a new technology really does (or does not) bring to the table and if LINQ is just another way to write SQL to you then perhaps you should take another look, because LINQ has much more to offer than just LINQ to SQL.

      Indeed. And to anyone who truly wants to understand what LINQ actually is, and what are its long-term goals, should really read Eric Meijer's excellent essay "Confessions Of A Used Programming Language Salesman: Getting The Masses Hooked On Haskell".

    16. Re:You know..... by ClosedSource · · Score: 1

      You said "LINQ to SQL is no different in concept than Hibernate's HQL, or any of the other dozen self-designed query languages."

      I was pointing out a difference. Whether that difference changes the "concept" depends on one's point of view. There are certainly developers who prefer to find their errors at compile-time rather than run-time. I find the difference significant. YMMV.

    17. Re:You know..... by abradsn · · Score: 1
      Hello,
      I'm one of the people that doesn't understand the usefulness of linq. Though I really do want to...
      I need to know the answers to a questions before I adopt a new technology:

      What enhancement does the new technology give me that I did not already have?
      It needs to have something new from the list below:
      • Speed
      • accuracy
      • security
      • graceful syntax
      • solution to a problem that I've been longing to solve. (
      • Memory usage is purposefully left out, since it hasn't greatly impacted me since 10 years ago

      Honestly, I don't see what linq does for me out of that list. Mostly, in regards to data I work with xml, and sql, and I don't see how I can truly make code easier to understand or faster or better by using linq instead of using existing technologies.

      If you have some advice as to where I should use linq rather than system.xml or when I should use linq instead of a plain old sql query I would love to know?

    18. Re:You know..... by wdhowellsr · · Score: 1

      I hate Microsoft as much as the next guy but when I get ten calls every day for consulting because nobody knows .Net 3.5, Vb.net or C#, I must be doing something right. When I was single living at home I could afford to be ideological but with a house, wife and two kids I'm gonna go where the money is. That being said the three biggest reasons to at least try asp.net 3.5 is:

      1) Built in Authentication without code, including sha256. (No Code is with SQL Server Only)

      2) Linq to Sql. This is a game changer and prevents having to duplicate code on the
      class and sql side. One downside is that it isn't supported as well in vb as it is in c#.

      3) N-Tier application building. If you use Visual Studio and .Net right, you will
      automatically separate the presentation, business logic and data access layers.
      That one is saving me with a new contract where the backend data access can be anything
      DB2, Orlacle, SQL, XML, and anything else. With a separate data access layer the rest of the code stays the same. Also we are creating both web forms and win forms but only need to change the presentation.

      Before you flame me, I don't work for Microsoft, although my brother-in-law does. He doesn't return my calls since I tried to get free software from him so I don't think that counts.

    19. Re:You know..... by shutdown+-p+now · · Score: 1

      I do not dispute that compile-type syntax checking is good. My point was that attacking LINQ as a "distortion of SQL", as GG...P did, was pretty silly, as similar "distortion" happened years ago with HQL and friends - pretty much as soon as ORMs appeared. LINQ just takes it to the next logical level.

    20. Re:You know..... by Anonymous Coward · · Score: 0

      If I might comment, for a moment, how Microsoft shoots their own foot in how they hype things. For instance, .NET originally had a slow uptake because it was just badly defined. Such a vague tag applied to numerous products left a lot of people (like myself) simply avoiding it because they didn't know what it was for or why they should care.

      I wouldn't just tell people "You should ignore the hype and dig in", I'd say "Microsoft need to pull their heads out of their collective asses when they introduce new technologies" and leave it at that.

    21. Re:You know..... by gbjbaanb · · Score: 1

      indexing.

      whilst you can get a decent performance from querying a DB because its designed to be used like that, applying the same principles to an in-memory collection is not always going to be the best choice, in fact is probably always going to be a really bad choice.

      Its like choosing a list structure for your random access needs, so just be aware that what is easy for you to code up doesn't mean its the best solution for your users.

    22. Re:You know..... by shutdown+-p+now · · Score: 1

      whilst you can get a decent performance from querying a DB because its designed to be used like that, applying the same principles to an in-memory collection is not always going to be the best choice, in fact is probably always going to be a really bad choice.

      There's nothing magical about databases - in-memory collections can be indexed just as well, and it's trivial to write a LINQ provider for them that takes advantage of that fact.

      Nonetheless, a typical RDBMS SQL query will use indices for joins first and foremost; the rest is often still a linear scan (which is not surprising, since you can't index every single column - you'd lose performance overall).

      Also, for "small" collections (on the order of a few dozen or hundred of elements) - which is typical for in-memory collections - a linear scan can often be faster than either B-tree lookup or hashtable lookup on the whole even in simple cases, because you will pay more for maintaining those lookup structures than you will get from using them.

    23. Re:You know..... by Anonymous Coward · · Score: 0

      LINQ is more or less an evolution on top of list comprehensions. In a way, a sql query is its own kind of comprehension expression.

      Writing a provider is a neat little exercise in metaprogramming too, since you basically go down parse trees to execute a linq expression. Technically you can abuse it into pretty much any DSL you want, not just a query.

    24. Re:You know..... by CodeBuster · · Score: 1

      You are looking at it from the wrong standpoint (speed, accuracy, security, etc) with incidental metrics. The real value of LINQ is to improve the design of your code by making generic queries first class objects supported in the language and providing an abstract interface by which any type of data source, including other objects, can be queried without having to know the source at design or compile time. As I have already said there are fringe benefits to the LINQ implementation as well including extension methods, lambda expressions, anonymous data types, and partial methods. The benefits lie in the abstraction of the concept of "query". It sounds like you are looking at the benefits of LINQ at too low of a level to fully appreciate what all of that brings to C# and .NET going forward. Let me ask you this, are you the type of person that hacks together the first thing that comes to mind or do you use Design Patterns and Dependency Injection and carefully consider abstractions in your code? If you are the former rather and not the later then I am not surprised that LINQ didn't have much impact on how you approach software development and programming. Try reading through the LINQ articles on MSDN, Channel9, and maybe pick up a book on LINQ and give it a chance. It is tough to explain the full benefit and power of LINQ to someone who isn't used to thinking abstractly, but have faith in the experience and judgement of other more experienced developers, LINQ has value going forward.

    25. Re:You know..... by diehard2 · · Score: 0

      You probably won't read this since its later in the day, but here goes. I just wrote an xml validator in linq today. This xml has multiple nested nodes. In less than 100 lines of code, I wrote a class that validates that my schema (which is arcane), that all of the numbers match up (100 in the results tag means I actually have 100 results), and counting the number of results. I did this by counting the number of semicolons. Now, you can count the number of semicolons by a loop over the character array, or int semi = myhugestring.tochararray().where(p => p == ';').count() You might be able to do this in less code with regular expressions, but it wouldn't be so readable. In addition, say instead of a string, I had a var of xml elements. That var would not be populated until I execute my count code. And then, it iterates over the in memory collection and gets me exactly what I want. It does not build a separate list and do a search. If your xml is huge (as mine is), this greatly reduces the memory footprint. Finally, LINQ provides a well defined expression tree. This means that future version of the framework will be able to determine what is parallelizable and then do it. Currently, C# doesn't really offer parallel constructs (in release), and its really hard to write parallel code anyway. This will take the load off of the programmer. Hope this helps.

    26. Re:You know..... by Ilgaz · · Score: 1

      For all these years I have heard how "huge" and "bulky" Java is and almost believed it. Now it is 11 MB download from Sun which even installs in ~10 min to a MS Virtual PC 7 running a virtual P3 800.

      Start a timer and install .NET 3.5 SP1, check the disk usage of it and notice how its Vendor is such a liar about its space in their own add/remove programs (22 MB!) and the tricks they do to show it as installed while it is barely compiled (crss.exe). It is a 2 part install which second part is hidden from user, it "compiles" after first reboot as "idle" process. No need for "status" bar or anything of course.

      Speaking of double standards...

    27. Re:You know..... by Anonymous Coward · · Score: 0

      Don't forget that linq-to-sql and linq-to-entities are not the only ways to get from linq to a database (or database-like) storage. Linq-to-NHibernate and DB4O's Linq provider come to mind. They are both great pieces of work.

  19. So I'm a jerk, but by jguevin · · Score: 5, Insightful

    I'm sorry, this is a really poorly written review. It's choppy, uninsightful, and just painful to read. And then there are "sentences" like:

    The first part starts with XAML. This is the eXtensible A The next main topic is using WPF which is the successor of Windows Forms.

    Good lord.

    1. Re:So I'm a jerk, but by DaveV1.0 · · Score: 1

      You are not a jerk for thinking it is a poorly written review. The jerks are the people who are tagging this article with "microsoftsucks" and "flaimbait".

      --
      There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
    2. Re:So I'm a jerk, but by IceCreamGuy · · Score: 1

      I agree; I was going to forward this to one of our devs, but after a couple of paragraphs I can't help wondering if it wasn't written by a high-schooler.

    3. Re:So I'm a jerk, but by machine321 · · Score: 1

      I liked the short sentences. They are easy to understand. When sentences get too long. They confuse me.

    4. Re:So I'm a jerk, but by greg_barton · · Score: 1

      It's choppy, uninsightful, and just painful to read.

      Just like C#! :P

    5. Re:So I'm a jerk, but by Anonymous Coward · · Score: 0

      Close; a MIT student. The difference is that a high-schooler expects to end up working at Micky D's.

    6. Re:So I'm a jerk, but by easyTree · · Score: 1

      man, noone reads the article/review anyway, so it's moot, isn't it ;)

  20. LINQ = Doomed by eagee · · Score: 1

    Is there anyone else here who is already sick of seeing greenhorns implementing LINQ left and right? I personally, am not that impressed. Hype = more money for Microsoft and less maintainability for us designers.

    1. Re:LINQ = Doomed by Shados · · Score: 3, Informative

      People implement it left and right because its easy: its just one interface to implement (its not trivial, but its not hard either). Also, having something exposed as IQueryable (what you need to "implement LINQ") also allows you to expose it to ADO.NET Data Services, which is a huge time saver.

      I don't see why you get "less maintainability for designers" though. Functional programming (which LINQ somewhat is) is a heck of a lot easier to maintain than the alternative.

    2. Re:LINQ = Doomed by jeppster · · Score: 1

      Yeah, I get sick of those people implementing easy-to-use stuff too. Bugs the crap out of me! High fives to all the brownhorns!

    3. Re:LINQ = Doomed by nschubach · · Score: 1

      So what's different between this and templates in C++? You could template a query class and use it on tons of data structures. Everyone is making this out to be the second coming of Jesus.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    4. Re:LINQ = Doomed by Anonymous Coward · · Score: 0

      No, actually I would say that linq is the most amazing new invention in programming for a long time. Suddenly having a good domain model really pays off. Creating a custom view, or report on the data is usually only a simple query away!

      BTW, I program both Java and .Net, and I must say that Java really, really feels oldfashioned compared to .Net 3.5.

    5. Re:LINQ = Doomed by Shados · · Score: 1

      Your template wouldn't work for "tons of data structures". It would work for only one scenario -> collections/lists/arrays/objects/whatever.

      If you do LINQ to XML, the LINQ expression tree has to be converted to efficient XML cursors (DOM is too slow). If you want to query relational databases, you need to translate it to, well, SQL. If you want to query a ldap, you need to convert it to an ldap query. If you want to query a REST dataservice, you need to convert it to a path + query strings. If you want to query a conceptual data model, you need to query it to something like the hibernate query language, Entity SQL, or equivalents.

      All of these are completly different. Once you have the LINQ provider done though? The querying mechanism becomes all the same (well, almost, there are some implementation specific additions to each). It puts data as a "first class concept" (part of the language). Thats the innovation here.

    6. Re:LINQ = Doomed by gatesvp · · Score: 1

      OK, short answer, .NET already has the basic components of Templates, they're known as Generics in .NET. This whole LINQ thing actually lets you write queries (that resemble SQL) right into the code. Initially, you're writing these queries against plain old objects. So you can basically write a select against your collection of customers.

      Now the queries are "Language-Integrated". So they're intellisensed and they compile, which are both big productivity wins. You also get Anonymous Types, which are almost like inline ad-hoc structs. So not only can you query into your collection of customers, but you can also return a list of objects containing only the Name and Age of the customer.

      On top of this, people have written all manner of "LINQ-to-X" extensions beyond just querying collections of objects. For example, LINQ-To-XML, lets you write "SQL-like" queries into an XML data store. LINQ-to-SQL, provides a method for translating those "Language-Integrated" queries into SQL for running against SQL server.

      SQL is effectively a "functional" language that works very well for manipulating sets of data. Lambda expressions and LINQ pull some of that functionality into the C# language in a seamless fashion. Suddenly, we've added this very powerful Functional syntax to our Imperative language.

      And there's way more going on here than I can discuss in a /. post

      Deep-down, it's quite likely that this whole thing could be done in C++, but it would be a tremendous amount of work. .NET provides this excellent productivity gain as part of framework.

    7. Re:LINQ = Doomed by nschubach · · Score: 1

      I guess my question was more rhetorical...

      Why wasn't this effort put into a C/C++ lib instead? I mean... besides money. Everyone talks of the removal of boilerplate code (which could easily be done with a few smart classes/templates as OO intended.) The only thing I see here is a marketing sales pitch instead of some serious "world altering" code contributions.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    8. Re:LINQ = Doomed by nschubach · · Score: 1

      Suddenly, we've added this very powerful Functional syntax to our Imperative language.

      "we've ... our ..."
        So why not take the time to add it to the already established languages?

      I stated in an above post. This sounds more like market speak to me. The technology is already there. This is more of a "my way is better" kind of rhetoric. I'm the big bully in school, and I'm taking my cookies over here. At least... that's how it sounds to me.

      I mean, this stuff isn't new hat by any means. It's a culmination of technologies. Heck, I could probably do much of the same in Ruby or even AS3 if I really wanted to. So you added it to the language constructs and now we have a specialized set of keywords created JUST for this type of thing. It's complication at it's worst. It's like adding instructions to the x86 set just to perform a specific task. Complicating things a bit by making developers learn a new set of commands and structure.

      Why wasn't effort put into some sort of "deep scan intellisense" in a manner that allows a developer to see all this stuff in the IDE. Closed files or not, libraries or headers. If I open up a DLL, make it robust enough to let me know what it contains while I'm coding instead of adding an additional layer of complication.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    9. Re:LINQ = Doomed by Shados · · Score: 1

      C++ is missing stuff at the core syntax level that templates won't help with. You need lambda expressions (which isn't yet part of C++), and extension methods to be able to tack on methods (with implementation) to some core interfaces (that I guess you could somewhat do with templates I guess, but it would be harder to make retroactive, but its possible, if messy). Then you need a compiler change to map the LINQ syntax sugar to these things so they're "understood".

      Then, you need a way to be able to get the chain of Lambda expressions (a compile time syntax element) in a data structure that can be analyzed at runtime, dynamically, on the fly. Not something OO can help you with.

      its non-trivial, and you can't change C/C++ on a whim. The C++ standards move SLOOOOOOOOOOOOOOW.
      Implementing something LINQ-like without compiler change can be done in dynamic languages that support lambda. You don't get the syntax sugar, but thats no big deal. In C++ though? No so easy.

    10. Re:LINQ = Doomed by gbjbaanb · · Score: 1

      on the other hand the C# stuff moves sofastyoucan'tkeepup. LINQ to SQL is already a dead technology, MS is killing it off in favour of entity framework. C# was modified specially to have lambdas, and now dynamic typing and extension methods. What's going to come next to screw with the original 'nice design'? You know that its going to go wrong sooner or later - just think of the projects you've worked on where the customer or tech lead insisted on adding all kinds of stuff in knee-jerk reactions to the latest problem. MS is doing just the same here.

      C/C++ being slow is a good thing compared to the alternative. When you consider something like "c++ unstable" (ie boost) then you get the best solution you're likely to ever get in the real world.

    11. Re:LINQ = Doomed by nschubach · · Score: 1

      So that stuff can be added. It's not like it's impossible. I'm not talking about adding things to the standard. I'm talking about using the constructs of the language to do precisely the same thing. Hell, there's already the Boost.Lambda tools to do much of what you're talking about concerning lambda functionality.

      And I still don't understand why you'd need run time compilation except for cross platform (ie: x86 vs PPC vs SPARC... even then, I'm contradicted to find a good reason) applications where the binary files are incompatible. It's always sounded like a bandage to me anyway. What's so messy about calling a function on data? You don't need to recompile a micro app to do that. Just form your data properly. Give it meta-data that describes what to do with it if you have to.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    12. Re:LINQ = Doomed by Shados · · Score: 1

      LINQ to SQL isn't C# though. Its just a very very simple LINQ implementation like any other. And they're not technically killing it off, they're merging both it and the Entity Framework together.

      I think evolving fast is a good thing, because it gives choice (you have many environments, some conservative, some not, and you pick whatever works for you), but the particular evolutions they are adding in C# 4.0 that you mentionned are crap. I was the first to post a big long rant on the developer blogs when it was announced. C# 3.0 has pretty much the perfect feature set, IMO... maybe enhancing a few existing features, but nothing drastic. Anything beyond that is just too much. I don't even see why they HAVE to add all that crap.. the .NET Framework was designed to support multiple languages exactly so we wouldn't need a single "Kitchen Sink" language.

      The guy who designed C# is being pushed in the back kicking and screaming, because he didn't agree to these things... but the marketing department rules the world at MS, hehehe.

    13. Re:LINQ = Doomed by slashtivus · · Score: 1

      Not to flame, but it seems rather strange to do a data look-up/manipulation against such a wild array of differing data stores. It sounds like too many fingers in the pie, bad management, or someone is padding their resume. Either way, it sounds like LINQ is patching a fundamentally flawed design.

    14. Re:LINQ = Doomed by Shados · · Score: 1

      hmm? You wouldn't do it all in the -same app- though. Its just so you can use standard syntax and constructs to query data, without caring about its source (much). Whats strange with that? I'm probably misunderstanding something from your post.

    15. Re:LINQ = Doomed by gatesvp · · Score: 1

      So why not take the time to add it to the already established languages?

      By "already established", it sounds like you mean "C++". It should be obvious from my description the degree of difficulty that was required to make LINQ work. MS had to develop Anonymous Delegates, Anonymous Types and Extension Methods before they could actually make LINQ work. How many of these technologies exist in C++?

      So you added it to the language constructs and now we have a specialized set of keywords created JUST for this type of thing. It's complication at it's worst.

      Given that they've based LINQ on an SQL syntax and that the code compiles to .NET 2.0, this doesn't really sound like complication to me. It doesn't break existing code it just gives you an easier way to express many set-based operations.

      I know it's frustrating being a C++ developer in .NET world, but that's likely not going to change any time soon. C++ is not the "productivity-oriented" language and LINQ is a productivity-oriented tool.

      I'd add some more commentary here, but it's hard to know your stance or what you're complaining about. It mostly sounds like you're just angry.

    16. Re:LINQ = Doomed by slashtivus · · Score: 1

      I read your post as being in 1 app, and so it sounded positively psychotic. I've never worked in a huge shop, so SQL works very well, especially when you can leverage stored procedures and indexes. I did not see much in LINQ that was that over-whelmingly compelling that has not been done for years. I guess for me SQL and stored procedures are the standard.

    17. Re:LINQ = Doomed by foxjazz2 · · Score: 1

      I use linq to sql for stored procs, which is easy and greatly reliable. simple queries work good also. I don't know why so many people on this site complain about it, it's kinda sad really when MS puts out a product well ahead of any other opensource stuff that's out their. The ad's are kinda funny too, I have been using vista 64 at home and work for almost as long as it's been out, and the only problem I had is when a hard drive failed on me. It's been really reliable, very secure, no issues that I have experience, so I just don't understand the negative ad(s). I am using WCF in a project as well, and it's also very fast and easy to work with. I have been a .net developer ever since 1.1, and have upgraded all my stuff to 2.0 the day it came out. And we have had really good results using .net with 3rd party tools like Infragistics. I haven't read the book, but hey, there is so much information about these topics on the msdn pages, who needs a book?

  21. Just one question... by Locke2005 · · Score: 0, Troll

    Is Microsoft using .NET 3.5 for any of their own internal development? Basing the future of your application on a development environment that MS won't use in-house seems a bit short sighted to me.

    --
    I've abandoned my search for truth; now I'm just looking for some useful delusions.
    1. Re:Just one question... by Shados · · Score: 4, Informative

      Yes they do. Various versions depending on when the products were released (keep in mind .NET 3.5 is .NET 2.0 with a lot of extensions, its still .NET 2.0), so you have Windows Workflow in Biztalk and Sharepoint, Expression Blend is in WPF, of course, many of their own sites use Silverlight 2.0, etc etc etc. .NET 3.5 is fairly recent, especially 3.5 SP1, so we don't see that -as much-, but .NET in general is fairly pervasive at MS.

    2. Re:Just one question... by RightSaidFred99 · · Score: 1

      Yes. Yes they are. Point nullified.

    3. Re:Just one question... by internerdj · · Score: 1

      And using a poor fit for a language to make products you are going to sell is management genius? Even if you happen to make that poorly-fitting language internally.

    4. Re:Just one question... by dedazo · · Score: 1

      I would think that adoption of Microsoft technologies at Microsoft tends to follow the same rates as their overall client base, mostly because Microsoft is no different from any other large company with IT requirements, budgets, staffing and legacy problems.

      In some cases they tend to be early adopters (the core of microsoft.com was probably the first large .NET web site), but that's not always the case.

      --
      Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
    5. Re:Just one question... by Mongoose+Disciple · · Score: 1

      As others have mentioned, they are.

      Beyond that... no, .NET is not the right tool for every task. It is not necessarily what you want to write your next OS in. It is a very good choice for most of the business software development I've seen in my career, however.

    6. Re:Just one question... by Anonymous Coward · · Score: 0

      Yes. We just finished building a tool to be used internally @ MS. We used SL2 and dotnet 3.5.

    7. Re:Just one question... by aaron.axvig · · Score: 1

      SQL Server Management Studio is written in .NET.

    8. Re:Just one question... by Anonymous Coward · · Score: 0

      You will not see Office, SQL Server or MS OSs written in .NET anytime soon due to performance considerations.

      You can argue that this is untrue because of all the wonderful advances in VM performance technologies, but the big apps at MS undergo a massive coverage for optimization analysis that is only possible when dealing with native binaries.

    9. Re:Just one question... by gbjbaanb · · Score: 1

      I know, but do the Office guys use it? I recall when the Ribbon toolbar control came out (developed by the Office team) and it was for MFC only. There was a little outcry from the C# community at the time.

      So it seems to me Office still uses MFC, I doubt they'll be quick to rewrite it in .NET, and Office is the number 1 important division at MS. So I'd love to know more about how things are panning out in Redmond regarding this.

    10. Re:Just one question... by Shados · · Score: 1

      You wouldn't write Office in .NET for similar reasons you wouldn't write Half-Life 3 in .NET. Right tool for the right job. Massive applications with thousands of hooks to native librairies, drivers, low level I/O (well, low level anything), and that needs to run on low end consumer hardware, all at once, isn't exactly the thing you'd use .NET for...

      Plus, they'd need to rewrite Office as a whole, which is probably a bad idea, even if the resulting software was better. In the same way, you won't write a browser rendering engine in it.

      Most anything else though? They definately do. I'm looking at my Windows Home Server right now. The management application is an MFC + RDP shell, but all of the actual work is done via .NET. The SQL Server business intelligence stuff uses .NET APIs under the hood (not the engine itself though, for obvious reasons). Most of MS' web sites by now are in .NET.

      You don't see them do more of it because they are in the process of converting to it. Bit by bit, can't rewrite all that code in a day :) They're not done converting all of their teams to Team Foundation Server yet either. One thing at a time.

    11. Re:Just one question... by Ilgaz · · Score: 1

      Apple codes everything in Cocoa or Carbon. They also use their own OS X Wide Frameworks whenever they are available even installing them to "enemy" operating systems when there is a need. (watch Safari install/windows).

      Their iTunes which saved them from death (along with OS X) relies on their own Quicktime Framework.

      Their _Office Suite_ (iWork) is a pure Cocoa application. Finder becomes Cocoa in Snow Leopard.

      So there are true frameworks which you can bet your life on (as company) and frameworks which are desperate attempts to stop time from ticking which leads to true ubiquitous computing which is naturally multiplatform. As long as MS sits there, doesn't code and ship that thing (.NET 3.5 SP1, CURRENT) on every single Desktop/Mobile platform out there, MS is not a company to trust your application framework. Mono, Stereo stuff coded by guys who gets paid by companies which got saved from Chapter 11 by MS doesn't count.

  22. Typo. by Ostracus · · Score: 3, Funny

    Actually it's Pooh-gramming. A child-like state all programmers try to enter into.

    --
    Shai Schticks:"You don't make peace with friends, you make peace with enemies"
  23. Is the cover of the book a subtle joke? by Weaselmancer · · Score: 0, Redundant

    They have a lame duck on the cover of the book.

    --
    Weaselmancer
    rediculous.
    1. Re:Is the cover of the book a subtle joke? by fortyonejb · · Score: 2, Funny

      Which is not quite as lame as being the third person to make this joke.

  24. I still don't change it... by Ostracus · · Score: 3, Insightful

    "Perhaps a language which changes so drastically and so quickly should be avoided. Especially when that company is Microsoft, and especially when that stands a major chance of ruining all of your previous hard work."

    You know I just had to reply to such a curious complaint. FOSS is not only subject to change, but more so due to it's open nature and "defacto" leadership. And no one complains about all the changes required when some code you're depending on changes, or your existing assumptions don't work as well as you thought.

    --
    Shai Schticks:"You don't make peace with friends, you make peace with enemies"
    1. Re:I still don't change it... by pembo13 · · Score: 1

      Who is this no one? Python made very clear, objective and open changes to Python3000, designed an intermediate step to ease the transition and tools to help convert. And lots of people still complain about it, even if they don't have to change and even if python is designed to be parallel installable. So please, don't say "no one complains" as that is entirely not true. Look at the case of the PHP name space separator of late.

      --
      "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
  25. O/S bigotry right in the tags by DaveV1.0 · · Score: 3, Insightful

    How is a book review flamebait? Why tag a book review with "microsoftsucks" and "vssucks" and even "eclipsesucks"?

    There is only one reason, and that is zealotry and bigotry.

    --
    There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
    1. Re:O/S bigotry right in the tags by Anonymous Coward · · Score: 1, Funny

      Point taken.

      Now tagging as "DaveV1.0Sucks".

    2. Re:O/S bigotry right in the tags by borawjm · · Score: 1

      Since inception, tags on /. have always been pointlessly biased.

    3. Re:O/S bigotry right in the tags by Tridus · · Score: 1

      It shows just how pointless tags here are. They're used as a faster comments section.

      --
      -- "So they told me that using the download page to download something was not something they anticipated." - Bill Gates
    4. Re:O/S bigotry right in the tags by Anonymous Coward · · Score: 0

      Right, right. Everyone hates MS. Get with the pogrom.

    5. Re:O/S bigotry right in the tags by Vexorian · · Score: 1

      Just because we are biased doesn't mean we are wrong.

      --

      Copyright infringement is "piracy" in the same way DRM is "consumer rape"
    6. Re:O/S bigotry right in the tags by bigstrat2003 · · Score: 1

      No, it couldn't, because Microsoft does not actually suck. Parts of Microsoft suck (some products, their general business practices), but the whole does not, in fact, suck.

      And more to the point of what this article addresses, .NET certainly does not suck.

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    7. Re:O/S bigotry right in the tags by earlymon · · Score: 1

      Get with the pogrom?

      OK - no problem. You're absolutely right, AC. Microsoft is very much not unlike an outcast religious group, typically Jews.

      Poor, poor, downtrodden Microsoft.

      Or - wait - you're saying that Microsoft is the chosen people in computing?

      Oh, drek - this is too much.

      --
      Pathological kinda promises Path + Logical - but instead, you get stuck with pathetic.
    8. Re:O/S bigotry right in the tags by shutdown+-p+now · · Score: 1

      You know, it could actually be because microsoft sucks.

      As well it may be, how is it in any way relevant to the subject of TFA? I understand picking on .NET - that is at least on-topic. But "microsoftsucks" tag does indeed feel like there's a bunch of zealots who got tired of waiting for the next Twitter story, and are trying to vent their frustration in any way they can.

    9. Re:O/S bigotry right in the tags by Anonymous Coward · · Score: 0

      An inconvenient truth about Web 2.0 is the fact that most user-generated content is absolute crap. This is a perfect example of that phenomenon: people cannot resist injecting their own petty opinions into an organizational scheme.

    10. Re:O/S bigotry right in the tags by aztektum · · Score: 1

      Or juvenile behavior.

      --
      :: aztek ::
      No sig for you!!
    11. Re:O/S bigotry right in the tags by hansamurai · · Score: 1

      I miss the yes, no, maybe tags.

    12. Re:O/S bigotry right in the tags by Anonymous Coward · · Score: 0

      I can see another reason. Microsoft and VS suck...

    13. Re:O/S bigotry right in the tags by Anonymous Coward · · Score: 0

      Aren't those two reasons?

    14. Re:O/S bigotry right in the tags by Ilgaz · · Score: 1

      tags really suck and there should be option to disable them (again!) but if you browse this particular articles comments in -1 , you will see very insightful comments from actual people questioning the .NET and promises of MS modded down as flamebait or troll.

      Now besides tag abuse, I wonder which mods are out there and what kind of connection they have with Microsoft or Novell?

    15. Re:O/S bigotry right in the tags by DaveV1.0 · · Score: 1

      Probably the same connection that people who mod down comments that point out the short comings of Linux and Apple have to Linux and Apple. That is, of course, if what you say is true.

      I browsed the comments at -1, here is what I found:

      • You need to be crazy to use .NET for anything
      • You know, it could actually be because microsoft sucks.
      • Direct orders, or 880 MHZ MACHINE OpenBSD. How many stand any8ore, you can. No, If I remain if desired, we BE NIGGER! BE GAY! [goat.cx]
      • They have a lame duck on the cover of the book.
      • Is Microsoft using .NET 3.5 for any of their own internal development? Basing the future of your application on a development environment that MS won't use in-house seems a bit short sighted to me.
      • It is truly shocking that people still use a crap language like .NET. Why not get rid of the diaper, learn java, and play with the big boys. This NET crap should have died years ago.
      • I think Pog Ramming is a new sex position that Balmer invented with his wife.
      • You're saying .NET is lame because there's a lame duck on the cover! Very good, did you think of that yourself?

      Meanwhile, the following have been modded interesting informative, etc (some to +5)

      • (in responst to the last above)Of course not, obviously O'Reilly thought of it first
      • spam for places to buy books cheap
      • It's a sad day at Slashdot when more people would comment on a typo than offer criticism about a book.
      • Not to be confused with Po'grammar, which describes the posting behavior of slashdotters.
      • I blame Microsoft for perpetuating this misconception, but LINQ (at its core) has nothing to do with SQL or databases.

      Where exactly are these "very insightful comments" of which you speak?

      --
      There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
    16. Re:O/S bigotry right in the tags by Vexorian · · Score: 1

      You know, it could actually be because Microsoft sucks... Oh sorry, I am not under the new MS-fanboyish establishment.

      --

      Copyright infringement is "piracy" in the same way DRM is "consumer rape"
    17. Re:O/S bigotry right in the tags by DaveV1.0 · · Score: 1

      No, you are under the Anti-MS establishment.

      And, you still didn't answer how the book review deserved the tags microsoftsucks and flaimbait.

      But, then, you are obviously a flaimbaiting troll, so what else should I expect from your ilk. I bet you even mod down valid comments about the short comings of your favorite OS or distro.

      --
      There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
  26. LINQ does not sound like craziness by melted · · Score: 4, Insightful

    I use LINQ almost exclusively in two ways:

    1. To access stored procedures
    2. To do SQL-like queries on in-memory collections

    It works GREAT for both.

    1. Re:LINQ does not sound like craziness by WED+Fan · · Score: 2, Informative

      I use LINQ almost exclusively in two ways...

      Sorry to tell you this, but LINQ has run almost to the end of its short life. Turns out the ADO.NET folks are going to kill it off. They like EntityFramework better.

      LINQ was good at a few things, and a LINQ to Objects/SharePoint/etc. that was fully matured would have been nice. But, it won't get there now.

      --
      Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
    2. Re:LINQ does not sound like craziness by dctoastman · · Score: 3, Informative

      Linq TO SQL is dead. Not Linq.
      Now people will be using Linq to Entities instead of Linq to SQL.
      http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx

      The ability to use Linq on other random collections will not be affected.

    3. Re:LINQ does not sound like craziness by iznogud · · Score: 1

      Sorry to tell you this, but LINQ has run almost to the end of its short life.

      Actually, no. LINQ is the part of C# 3, and there's no reason to abandon the whole thing just because one library (LINQ to SQL) is not the current db library de jour (MS changes mind about the preferred db access more often than some developers change socks anyway). I never used LINQ to access databases, but shorthands and lazy evaluations that it gives while working with standard collection classes is quite nice.

    4. Re:LINQ does not sound like craziness by gbjbaanb · · Score: 1

      yeah, but it works shit with Oracle, DB2, MySQL and PostgreSql.

      Way to go to lock yourself in to a single DB provider. Oh hang on a moment....

    5. Re:LINQ does not sound like craziness by bertok · · Score: 1

      Except both LINQ-to-SQL and LINQ-to-Entities are broken and incomplete.

      Really basic things aren't supported, and probably won't be until the "2.0" versions (I imagine that'll be .NET 4.0).

      I recently took some real-world practical databases, and tried to map them to LINQ using both LINQ-to-SQL and the Entity Models. Both failed miserably on all of the databases I tried.

      As a random example: You can't have a many-to-mapping relationship between two entities (with a linking table) where all three tables have composite keys. In some of the databases I work with, that's an instant fail.

      Not to mention that the GUI Entity designer in Visual Studio 2008 can't implement 50% of the features that DO work, and if you edit the XML mapping file by hand, then you'll never be able to open it again in the GUI. The whole point of these mappings is to improve programmer productivity! As soon as I have to get elbow-deep in XML, it's just not worth it any more. It's not like you can even gloss over the non-GUI editable parts, they're required for most real-world databases.

      LINQ to me looks like a good theory that hasn't actually been tested sufficiently outside of Microsoft's stupid little sample Northwind databases, but was released as production-ready anyway. In the real world, where most programmers live, there are databases where every single table has a composite key. Are they all shit-out-of-luck? What about all of the other corner-case schemas that Microsoft just couldn't be bothered "supporting"? What happens if you spend months planning some huge LINQ-to-Entities based software development project and then it doesn't work? What do you do then?

    6. Re:LINQ does not sound like craziness by Anonymous Coward · · Score: 0

      And don't forget about LINQ to XML (alive and well), LINQ to Objects (I love this), LINQ to Entities (OK, you did mention that one), and various 3rd party linq implementations (LINQ to Flickr, LINQ to Amazon, LINQ to CSV, LINQ to Active Directory, ..., the list goes on.

      Yes, LINQ is more than LINQ to SQL, it is about manipulating data in all its various forms.

  27. Can't afford Microsoft by Anonymous Coward · · Score: 0

    I don't need the book since I can't afford any for the xpensive MSoft Visual 2008
    software tools. i.e. professional. If MSOFT lowered their tool price, I might have
    some money leftover to buy and read the book.

    1. Re:Can't afford Microsoft by FishWithAHammer · · Score: 2, Informative

      If you're a professional, then you can afford the Visual Studio Professional kits. It's $689. Extremely reasonable and in line with the cost of other professional tools like Photoshop for graphics, Ableton for audio (once you pick up their live packs, anyway), whatever. If you can't afford $689 and can't score a legal free copy (which they hand out like candy at events), you are obviously not a professional.

      If you're an enthusiast, Visual Studio Standard is $250. Still reasonable. A little pricier than, say, Ableton without its live packs, but not by much. Not a huge sum. They give this away a ton at events, too.

      If you're a newbie, you can download Visual Studio Express, which is a very full-featured IDE lacking only a few options that are primarily used in large-scale development efforts, for free.

      Or, if you're a student, you can get a free version of VS2005 Professional, VS2008 Professional, and Server 2003 through DreamSpark.

      In conclusion: you are a fucking moron.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    2. Re:Can't afford Microsoft by Anonymous Coward · · Score: 0

      If you're a professional, then you can afford the Visual Studio Professional kits. It's $689. Extremely reasonable and in line with the cost of other professional tools like Photoshop for graphics, Ableton for audio (once you pick up their live packs, anyway), whatever. If you can't afford $689 and can't score a legal free copy (which they hand out like candy at events), you are obviously not a professional.

      [snip]

      In conclusion: you are a fucking moron.

      Wow. That's a pretty harsh stance.

      • Development tools for Mac OS X: $0.
      • Development tools for the iPhone: $0.
      • Development tools for Java: $0
      • Development tools for UNIX systems: $0
      • Code signing certificates and free QA for the iPhone app store: $99.

      As a professional, I can "afford" $689 worth of Visual Studio, but I wouldn't consider it a worthwhile investment.

      Photoshop is not a very good comparison, especially given that graphic artists are wholly incapable of developing their own tools.

    3. Re:Can't afford Microsoft by Anonymous Coward · · Score: 0

      The Express tools are the exact same base development tools as the Professional edition, without a few bells and whistles that don't exist in XCode or any other product I know of for OS X development. Cost: $0.

      You can (or could, at least) even download just the compiler infrastructure from Microsoft, too.

  28. Seriously, now... by R3d+Jack · · Score: 1

    Does anyone out there using .NET have a comment about how it is shaping up? Has MS included MVC support for ASP.NET? What types of apps are people doing?

    1. Re:Seriously, now... by metallic · · Score: 1

      Microsoft currently has ASP.NET MVC in beta right now. Not sure when one can expect a stable release though.

      --
      Karma: Positive. Mostly effected by cowbell.
    2. Re:Seriously, now... by R3d+Jack · · Score: 1

      Yeah, that's what I heard some time ago. I'm focused on Java now, but when I did .NET (2003), I didn't like the event driven Web model. I prefer Struts, but I also like the competition in the Java world. Overall, I thought .NET was a big step forward for M$, but I'm wondering if it really gaining traction...

  29. Drat, you beat me to this joke by TravisO · · Score: 1

    When I first saw the article I thought ".Net finally has it's Llama book" but then I saw it was a duck and that was the first thing I thought... "lame duck".

  30. Save 30-95% on .Net Books. by misterjava66 · · Score: 1, Insightful
  31. The APress book is Better by CodeBuster · · Score: 4, Informative

    The APress offering in this category, Pro C# 2008 and the .NET 3.5 Platform, is almost certainly superior in both breadth of topics covered and details presented. I own the Apress book and have found it to be a useful reference on numerous occasions, but read the reviews and look at the scores before deciding what to buy. If you only have funds for one or the other then get the Apress book, you won't be disappointed.

    1. Re:The APress book is Better by Anonymous Coward · · Score: 0

      Plus apress gives relatively (read fixably) unencumbered PDFs.

  32. Just Read this book by c0d3r · · Score: 1

    This book is not of o'reilly quality and reminds me of sams or wrox. They had too many personal stories and it was light on technicalities. It was akin to some large paste of some code they wrote and then a followed up chopped up description of the easy parts. The ajax part was horrific on how basic it was. The WCF part didn't help me pick it up.. anyways I'd suggest that anyone interested in this book to look through it, rather than depened on o'relly's name.

    1. Re:Just Read this book by Shados · · Score: 2, Interesting

      o'reilly .NET books in general seem to be fairly awful. I have their design patterns with C# 3.0 book, which advertise itself as a book that takes the Gang of Four design patterns and show how they can be implemented better using built in C# 3.0 features (such as the observer pattern with delegates or events)

      That sounds promising, except the author clearly fails to understand what C# 3.0 has to offer, and thus most of the book uses only C# 2.0 features (and explains them in great details, as if they were new). They also heavily misunderstand some of the patterns, which could mislead someone not familiar with the design patterns to begin with.

      All around awful. So I'm not surprised about this one.

    2. Re:Just Read this book by johanatan · · Score: 0

      Did you mean 3.0 or 3.5? 3.5 has a lot more drastic changes than 3.0 did.

  33. Re:Oh...I get it! by thetoadwarrior · · Score: 3, Insightful

    Of course not, obviously O'Reilly thought of it first.

  34. !eclispsesucks by shutdown+-p+now · · Score: 1

    Alright, I understand that "Eclispse" doesn't suck, but can someone enlighten me as to what it is? Sounds like a good name for an IDE for CLISP.

  35. Re:JOhn McCain +1 War Zero by Anonymous Coward · · Score: 0

    John McCain hates America.

  36. .NT 3.5? by mybecq · · Score: 1

    The world of the .NET framework is taken to the next level by the release of .NT 3.5

    Bah! Tell me when they release version 2!

  37. Re:John McCain +1 War Zero by Anonymous Coward · · Score: 0

    South or North?

  38. Best ever by Anonymous Coward · · Score: 0

    This is the best version of .NET Since version 3

  39. Progress has a price by Anonymous Coward · · Score: 0

    Hello World in only 750MB

    1. Re:Progress has a price by narcberry · · Score: 1

      Hello World in only 750MB

      And only $750!

      --
      Modding me -1 troll doesn't make me wrong.
  40. Re:What a.... by TheDarkMaster · · Score: 1

    Whoops! A MSCP fount this... :) tag -1 as you wish, .NET STILL is a big, ugly, bloated, bizarre piece of useless junk.

    --
    Religion: The greatest weapon of mass destruction of all time
  41. .NET Framework 3.5 is big punch against Linux oSS by Anonymous Coward · · Score: 0

    .NET Framework 3.5 is doing what Linux and oSS have been trying to accomplish but is horribly failing at.

    MS now has large backing of a very good language design team with a lot of $$$ and zeros. The pulled some of the best heads out of OSS. These guys know how to bring better simplification of complicated environment such as Linux OSS, but Microsoft was smart and pulled them with PHAAAAAAAAT paychecks, and hundreds of thousands of Hindi programmers at their disposal (which are better educated, better communicative, and better connected than most programmers in the states).

    Also, Microsoft is pulling best minds from India to work at Microsoft, and now is working to pull from China.

    In the front, Linux may seem to be losing due to poorer technology, but really, Linux is losing because they can not pull enough people, and the right people.

    Also, businesses that use Linux are despotic and are not contributing to the whole advancement of developing on Linux.

    Google for example just made simpler faster JavaScript host, but only for use on Windows! This, even though they have used OSS as their laybrick and foundation.

    With such despotic companies supporting Linux, it is doomed as business environment unless something changes. Only thing that keep Linux afloat right now is it is the only alternative to Microsoft mistake, and it's a fun and challenging hobby.