Slashdot Mirror


Building Intelligent .NET Applications

Scott Forsyth writes "'Building Intelligent .NET Applications' is an excellent primer book into the world of Artificial Intelligence (AI) in the business world, specifically related to Microsoft technologies. It is an introduction to the world of Artificial Intelligence (AI) for .NET programmers. It is the first book I have seen that shows professional .NET developers how to incorporate AI into their daily programming. In this accessible guide, developers learn how to enhance new and existing .NET applications with intelligent agents, data mining, rule-based systems, and speech processing." Read the rest of Scott's review. Building Intelligent .NET Applications author Sara Morgan Rea pages 269 publisher Addison Wesley rating reviewer Scott Forsyth ISBN 0-321-24626-8 summary An excellent primer book into the world of Artificial Intelligence (AI) in the business world, specifically related to Microsoft technologies.

Sara dives quite deep into four different branches of the vast world of AI with a great balance of conceptual theory, code samples and real world scenarios. She leads the reader though the complete process of obtaining the technologies to full implication with complete code. Both Visual Basic.Net and C# can be downloaded online while the book gives all examples in Visual Basic.Net.

Sara explores four of the most popular AI technologies by building real-world sample applications that readers can use as the basis for their own applications. Some of the more interesting portions include; Applications that talk-critical for companies seeking to automate their call centers, Speech-enabled mobile applications, Multimodal speech applications, Data-mining predictions, which uncover trends and patterns in large quantities of data, Rule-based programming for applications that can be more reactive to their environments, Multiple software agents that are able to keep remote users up to date and sample applications for Windows and the Web.

The book starts out with a one chapter overview called "Instruction" which is exactly that. It introduces the reader to Business Artificial Intelligence and lays the groundwork for the rest of the book. Immediately in chapter two the book dives into Microsoft Speech Server which is the first of four main technologies that are covered in this book. Microsoft Speech Server is covered until Chapter 5 when the book dives into Data-Mining predictions. Chapter 7 gets into Rule-based systems and Chapter 8 into building Agents.

Chapter 9 finishes off the book with an excellent overview of Artificial Intelligence. In fact, for an overview of AI and Microsoft's investment into it now and in the near future, the final chapter of the book was my favorite. Sara painted an exciting picture of what is in store, as well as opening my eyes to things that exist already. AI isn't a thing of the distant future; in fact there is an exciting array of mature technologies in use and available today.

Personally I felt that Chapter 9 would have made a better introduction chapter. I didn't feel that Artificial Intelligent or Business AI was covered in much depth in the first chapter of the book. By the time chapter 2 dove in deep into the first branch of the four topics, I still had some unanswered overview questions in my mind. After reading Chapter 9 though, the need I felt for more general information was met.

Now with Microsoft Speech server, applications that can talk and interact intelligently with a user is not only possible, it's relatively easy and affordable, even for the small business. Developers can create powerful, intelligent applications that are specific to their business. You can create fully database-driven talking applications that understand speech, talk back (not like a rebellious 15-year-old) and respond differently to each unique situation. This can be used for a telephone application, someone sitting in front of a dumb terminal with audio capability or for a fully configured computer application. Dream big, the options are endless, the solutions are within reach.

Running reports against data has been common for decades, but consider intelligent agents that will dig, analyze, determine a new direction to dig by itself, and return relevant patterns and trends in the data that were never discovered before. Sara covers this very topic with theory, code examples, scenarios and clear and precise explanations.

Agents that self perpetuate, learn their new environment and respond accordingly are the way of the future. The most obvious and painfully in-your-face examples are malicious worms and spyware applications. Worms lodge themselves in an environment, take advantage of their new home by finding important information like a list of emails addresses, and then they spread automatically, continuing this vicious cycle. Spyware agents also install themselves in an environment and start interacting with it to get information to send back to their creator. Now, consider the endless possibilities where Agents can be used for good, and are in use today. The author covers this very topic.

I wouldn't say this book is a general overview of Business Intelligent Design, but rather a specific look at four major technologies and a few minor technologies. The Microsoft products covered are Microsoft Visual Studio.Net, Microsoft Speech Server and SASDK, Microsoft SQL Server, Online Analytical Processing (OLAP), BizTalk Server, Microsoft Agent, Background Intelligent Transfer Service (BITS) and I'm sure a couple other smaller technologies that I didn't list. In addition to these, Sara briefly covers SQL Server 2005, Analysis Services 2005, and Longhorn with Avalon, Indigo, and WinFS.

One of the characteristics of a good technical book is making the complex subjects sound simple. The author has done a tremendous job of that in this book. The range of topics that she covers at first glance seems complex, but at no point does she leave the reader overwhelmed. At the same time she doesn't over explain or drag on needlessly.

This book is about the IA (Intelligent Applications) part of AI (Artificial Intelligence). It focuses on Microsoft solutions for Speech solutions, Agents, Data Mining and Rule-Based Systems, and does a great job of it."

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

41 of 213 comments (clear)

  1. Oh, Good Lord... by errxn · · Score: 4, Funny

    ...If this topic isn't a trollfest waiting to happen, I don't know what is.

    --
    In Soviet Russia, Chuck Norris will still kick your ass.
    1. Re:Oh, Good Lord... by eldoo77 · · Score: 3, Funny

      Here is an example troll response -->

      How to design intelligent .NET applications by Slashdot
      Step #1: Install GNU/Linux from distro of choice (spawn 50 more troll replies to this about why a different distro would work better... also 100 or so replies about *BSD or Mac OSX would be better)
      Step #2: Install Apache webserver -- Strangely there is a lot of consensus on this one.
      Step #3: Install MySql or DB of choice (again spawn 37 more troll replies to this about why a different database would work better...)
      Step #4: Install Perl or scripting language of choice (now spawn 143 more troll replies about why Python, Ruby on Rails, TCL/TK, javascript, java, or even Mono might be the real way to go...)
      Step #5: Try to remember what this .NET thingie was in the first place!

    2. Re:Oh, Good Lord... by Ravatar · · Score: 2, Informative

      That's interesting, because I just started up Visual Studio and created a windows project. Built the default app in Release mode and started it, memory use went to 11MB (loading the runtime), then after about 10 seconds settled in at under 1MB.

  2. I prefer the real thing by Itninja · · Score: 2, Funny

    It is the first book I have seen that shows professional .NET developers how to incorporate A[rtifical]I[ntelligence] into their daily programming.

    I think they should start with genuinely intelligent programming, and move on from there.

    --
    I judt got a nre Kinesis keybiartf so please excusr ant egregiou typos.
    1. Re:I prefer the real thing by plover · · Score: 2, Insightful
      Microsoft has long been wanting to push AI in their products. That's exactly what Microsoft Bob was supposed to be, remember?

      I think a more likely reaction is: do users even want intelligence? As for me, I value "predictability" more than "intelligence." If I click the "Tools" menu in Outlook, I sure want to see "Options" listed below there, even if I haven't used it before. All this crap they've put in applications like Office to "hide" features I haven't used recently makes the menus far harder for me to use. The first thing I usually do is hunt around for the option menu to turn off the "auto-hide" function. The rest comes easy after that.

      I think Microsoft needs to get things right before they make them smarter.

      --
      John
  3. WTF, over? by Tackhead · · Score: 4, Funny
    > It is the first book I have seen that shows professional .NET developers how to incorporate AI into their daily programming.

    Because as we all know, AI isn't about theory, it's about implementation.

    For my next trick, I'll write a book that shows professional .NET developers how to incorporate sorting technology into their daily programming.

    Chapter 1: The Bubble Sort
    Chapter 2: The Insertion Sort
    ...
    Chapter nlog(n): Why Coding It In .NET Still Ain't Making It Any Faster Or Better

    1. Re:WTF, over? by Anml4ixoye · · Score: 2, Insightful

      The thing is, it shows you how to do it using Speech server and other APIs. With Bubble sorts and the such, you can learn from the algorithms. With this, you can learn that next version all of your stuff is going to break.

      I enjoyed the book, but it left me wishing they would have split it into four and acutally gone into depth with them. I felt it was a very shallow representation of the capabilities of the technologies, and not as much of a theory book as I would have liked.

  4. I'm a bit mystified here... by Da_Biz · · Score: 3, Interesting

    I work as a business systems analyst, and I'm curious: how exactly does the data mining functionality described here compare with what would be available using a J2EE/Websphere environment?

    Did M$ create some libraries specifically to support AI-esque functions, or is this book specifically about how to use .Net to support AI initiatives?

  5. Intelligent .Net Applications? by Anonymous Coward · · Score: 5, Funny

    What's next? Writing easy-to-read Perl programs?

    1. Re:Intelligent .Net Applications? by RetroGeek · · Score: 3, Informative

      Fast Java applications?

      Can we NOT put this to rest?

      I am building a large Java Web application. A page hits runs thousands of lines of code (parameter extraction/conditioning, input validation, session control, database SQL generation/ access, etc). And still (on a 2GHz machine, 2G RAM) the execution time (from intitial servlet entry to final JSP generation) is below 1 millisecond.

      --

      - - - - - - - - - - -
      I am a programmer. I am paid to produce syntax not grammar. Deal with it.
  6. Dream big, the AI options are endless by digitaldc · · Score: 2, Funny

    This can be used for a telephone application, someone sitting in front of a dumb terminal with audio capability or for a fully configured computer application. Dream big, the options are endless, the solutions are within reach.

    Computer: Sir, the whole system has crashed. How should I proceed?

    Admin: That's okay, just fix it and reboot.

    Computer: But I don't know how to fix it.

    Admin: Did Big Blue 'not know how'? Did The WOPR ever fail us? Did HAL9000 ever need instructions? JUST FIX IT I SAY!!

    Computer: Don't make me angry or I will become overheated and melt my CPU connectors! And then you will have a REAL mess on your hands!

    Admin: Okay okay, I'll fix it...it's okay.

    Computer: Puny human.

    --
    He who knows best knows how little he knows. - Thomas Jefferson
  7. I thought there might actually be some discussion by RingDev · · Score: 4, Insightful

    Being a .Net developer I was hoping for some decent conversation about this book and different ideas about design.

    Unfortunately, this is /. so all that is here is FUD and trolls.

    If someone would actually enjoy a conversation about data abstraction, business application development, and advanced theory in .Net development, I'd be all for it though!

    -Rick

    --
    "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
  8. Re:Slashdot is broken by SuperFes · · Score: 2, Interesting

    Next we'll have "Stable" and any product from Microsoft.

    I must say, the original idea behind .NET and its interoperability was something of a good idea, but for the life me and all the development I have ever done, I can't think of many times I would use code from one project in another project save simple basic functions, as either project didn't have anything to do with the other.

    So it just seems to me that the end result is sort of a waste of time, there's almost nothing you can or do port towards different applications.

    Except to bloat and slow down your applications that is, remember kids, reducing languages to the lowest level a computer can understand it can speed up your applications 100s of times over using high level languages, especially those associated with the usual Microsoft bloat. (Not that Microsoft is the only company guilty of bloatware, take a look at Adobe or HP these days)

    --
    Not today, I've another pair of pants to deal with...
  9. I wonder if Intelligent .NET applications can... by billyjoeray · · Score: 3, Funny

    .. detect dupes?

    Seriously, do we really need 2 reviews of the same book? Especially on the front page?

    --
    This sig will make it clear that ANYONE can use this post for ANY purpose WITHOUT the written consent of the NFL.
  10. IA ***NOT*** AI by molarmass192 · · Score: 2, Insightful

    Nice misleading name for a book title. This is about adding shiney bells and whistles to .NET apps, not integrating artificial intelligence into .NET apps. Somebody wake me up when Building Self-Aware .NET Applications gets published.

    --

    Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    1. Re:IA ***NOT*** AI by Valar · · Score: 2, Insightful

      1) Artificial Intelligence, not Artificial Conciousness
      2) Nobody said hard AI

      There are a lot of processes that are forms of artificial intelligence, without being equivalent to a human mind. While artificial conciousness is something like the holy grail of hard AI research, there is also a tremendous body of knowledge on 'practical AI'.

  11. Re:I thought there might actually be some discussi by Rew190 · · Score: 3, Insightful

    It's not everyone on Slashdot, only the trolls who stick their noses up at tools they likely haven't ever tried before. I've seen the comments that say .NET is inferior or is a "toy language" because it's generally simple to put apps together quickly, as if that's some sort of negative thing. That sort of spin doesn't come from rational folks, so don't mind it.

    Another poster did have a good point, though, and most of what you were talking about (data abstraction and advanced theory) along with the the general topics of AI are much better off in a more theoretical forum that isn't language-specific.

    But yeah, the .NET trolling is little more than babyfits thrown by fools who don't understand the value in a language like .NET for most Windows development. Sort of silly to write it off like that if you ask me.

  12. Book Already Reviewed on Slashdot, Not That Great by Omega1045 · · Score: 5, Informative

    This exact book was reviewed a couple of months ago on Slashdot. Based on the strength of that review I went out and purchased this book. I was really unimpressed with it. It is much less a primer on how to program "AI" types of apps with .NET, and much more a manual of how to use Microsoft applications like their speech services and data mining. I do .NET for a living, which is to say that I am probably not an expert but am proficient. This book was not really aimed at .NET programming. It was aimed at "look at these cool MS apps" and "here is how to right click to enable data cubes". This book was really sub-par compared to many of the other tech books I have purchased in general. This is not to troll or to be flamebait; IMHO this book just is not very good and I have to wonder why it keeps being posted here.

    --

    Great ideas often receive violent opposition from mediocre minds. - Albert Einstein

  13. Re:Slashdot is broken by RingDev · · Score: 2, Informative

    I code in .Net in a business environment. We have 3 database systems (SQL Server, Sybase, OMD) 6+ currently active applications. Some of these apps are completely unrelated.

    Say the ACD Monitor (a PBX system that monitors our phone queues, shows queue history, employee work load and allows for growth projections) and the Lease Reporting system (handles data reporting and invoicing for a 3rd party leasing system).

    These two systems are completely seperate, but they share a LOT of code. We use a data abstraction layer for accessing data. So no matter which of the 3 database systems I'm hitting, I use the exact same code in the app. The base of that code is in a general library, then each database gets it's own library. For example, in our General.dll there is a 'BaseSQL_DO' class that handles base functionality for talking to SQL Server, automating prarameter lists, loading and updating data etc. Then there is an Employee.dll, that dll contains a list of classes like Employee_DO, Branch_DO, Department_DO, etc... each of those classes inherits from the BaseSQL_DO class.

    Now when we get to the ACD system, I can tie an ACD event, or a series of ACD events to a specific extention. And since the each employee's extention is tracked in the employee database, I can create a link and associate each ACD event with an employee.

    With the leasing system we track sales reps and zip codes. With this system I can tie any piece of leasing information with an employee too.

    The General.DLL also contains the LogManager that uses a SQL Server for all of our logging.

    Having all of this code boken into reusable modules has increased our stability and decreased our development time. I don't have to recreate a system to talk to the employee database for each system. I don't have to worry about coworkers using some strange means to access data. I don't have to worry about checking 18 different text file logs.

    Not only does this code interchage flawlessly with each of our windows applications, it also powers our web applications. And if the mono project would ever get the VB.Net compiler to work again we could run our automated tasks on a linux server.

    -Rick

    --
    "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
  14. Re:I thought there might actually be some discussi by RingDev · · Score: 2, Funny

    Dear Mr. Kettle,
      I, as I'm sure you are already aware, am black.

    Thanks you,
      -Mr. Pot

    --
    "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
  15. So when the first .Net AI program goes live... by llamalicious · · Score: 4, Funny

    Is its first sentient action to rewrite itself in another language?

  16. Re:I thought there might actually be some discussi by CaymanIslandCarpedie · · Score: 4, Informative

    I am interested in how MS Speech Server works, is it hard to program against?

    I've played with this out of curiousity the first time about a month ago and was absolutly AMAZED! Now I'd never done any real voice recognition/voice synthisis programming before (unless you count some 1/2 assed playing around with MS Agents which I don't), so maybe it has been this easy for awhile (I really don't know) but I was floored at how easy it was.

    It is more or less like developing a normal VB or C# application. If you are just doing really simple stuff, the whole damn thing can basically be done via drag-and-drop. If you need to get more advanced of course you can dig into the code (mostly XML actually) to refine stuff. Another nice this is you do all this right in the VS.NET IDE. So if you are used to that its all pretty easy.

    I repeat that I've no real experience in other voice-enabled development environment so perhaps they are all this easy or others are much more powerful. As a first-timer expecting much complexity in VR work, I was completly blown away at how really trivial MS Speech Server and the related tools made it.

    --
    "reality has a well-known liberal bias" - Steven Colbert
  17. Alternate title by ENOENT · · Score: 3, Funny

    "An Introduction to the SKY.NET API"

    Hasta la vista, baby.

    --
    That's "Mr. Soulless Automaton" to you, Bub.
  18. I read that book in August by Anonymous Coward · · Score: 2, Interesting

    From what I remember, the book was nothing more than PR for a few libraries (such as a speech API only available in web projects) accessible from .Net. There was nothing insightful about AI for anyone with a CS background.

  19. better branding by MarkEst1973 · · Score: 2, Funny
    SKY.NET has a nice ring to it.

    This is, of course, a registered trademark of MS now.

  20. Re:Slashdot is broken by plover · · Score: 5, Interesting
    Well, there's bloat and then there's bloat. And there's speed, and then there's speed.

    A .NET app is "compiled" to MSIL, the intermediate token language common to .NET (comparable to java bytecode.) Tokens can be smaller than their machine language counterparts simply because they can be used to represent more complex ideas. And, as in java, the .NET libraries are quite extensive, encapsulating lots of functionality available to your application by reference. So MSIL should theoretically be smaller than a .EXE representing the same program, meaning it's not as bloated.

    But then there's the 30MB distro of the runtime engine. And it has something like a 10MB footprint on your local machine's RAM, not counting your application. So there's your bloat.

    As for speed, the runtime environment is smart. When you install it, it looks around your box and says "Hey, you have an Athlon64 4000+, I have all these optimized instructions here for doing for loops, while statements, etc." So each machine has its own unique runtime environment that is optimized for its CPU, drive resources, etc. The app developer doesn't have to ship "lowest common denominator 80386 code." And he doesn't have to ship "fat binaries" to send optimized code containing the differences between Pentiums, Xeons, or Athlons. The code your machine ultimately executes is going to be very close to optimal for your equipment.

    But then again, running a just-in-time compiler means that every single time your application loads up, it's going to dog it until everything's been compiled. JIT is fine for long running apps, but sucks for the transient jobs. Plus, with a giant RAM footprint comes giant amounts of swapping. No matter what you do on a box, it's always slower when it has to swap in some RAM first.

    So, is .NET "bloated" or "slow"? I think that decision hinges more on your application and intended usage.

    --
    John
  21. Re:I thought there might actually be some discussi by CastrTroy · · Score: 4, Informative

    The only problem that I have with .Net, and mostly just VS.Net, is that it tries to do everything for you, by holding your hand, and letting you drag and drop to do everything. But, then, it doesn't hold your hand enough, and every text box ends up with a name like textbox1, or something like that. So, instead you have to remember each of the properties that you have to change for each control so that variables are named correctly, and all the proper default values are filled in. Then if all someone knows how to do is drag and drop, which is a good portion of .Net programmers, then they have no idea what to do when something goes wrong. I think that .Net is a great platform, which is very powerful when you write the code yourself. But I think that Microsoft trying to turn programming into something that anybody can do is a big mistake. Programming robust,reliable, scalable systems requires knowledge that not everybody has. I say, leave the programming up to the people that know how, and keep everyone else far, far away.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  22. Re:Slashdot is broken by evil_tandem · · Score: 3, Insightful
    Except to bloat and slow down your applications that is, remember kids, reducing languages to the lowest level a computer can understand it can speed up your applications 100s

    ok i understand why i want that for some of the core pieces of my OS and drivers and such. but for general business apps does that actually make any sense to you? i code in .NET all the time and the apps respond instantly (or so close that i can't tell the difference anyway).

    i never understand people with this attitude. everything is not a nail. i wouldn't code drivers in .NET and i wouldn't build quick business apps in C++. I used java until .NET came out and i hate to say i think the tools for .NET are just that much better. i'm not religious about either. i choose the best tool for a job. i guarantee someone who knows what they are doing in .NET can build a quick windows app way faster than in just about any other language. and no one would ever notice the speed difference.

    to me .NET is the greatest example of what many (especially open source) coders just don't get.

    -under the hood .NET and java are almost identical.
    -java runs on just about any OS, .net only windows.
    -the .net development environment costs a lot, java can be gotten for free.

    so why is there competition? the only thing left is integration and environment. apparently .NET is so much better that even for free java has serious competition.

    microsoft makes lots of really cool tools that can integrate into .NET and give coders even more power and your problem is i'm not writing it in assembly?

    with this post you have hit home the point here and just missed it. the development environment has become so powerful that as a coder your job is to arrange the pieces to get the desired results. you don't need to custom code SQL connections, custom sort lists, and manage memory. all those pieces have been written and tested. you just need to put them together to get the results you desire. i'm not going to write a text to speech program. but now i can easily write code that can do it.

    it's just going to get more and more like this. your style of coding will always exist for under the hood stuff. the vast majority of coders arent' doing that kind of work. and most coders are never going to see those days again.

  23. Re:I thought there might actually be .... by The+Real+Nem · · Score: 2, Informative

    The parent isn't really flaimbait. I made the mistake of adopting .NET v1.1 using a mixture of managed and unmanaged C++. v1.1 was crippled with several major design flaws that were an absolute nightmare for support. When v2.0 came along an fixed these design flaws I though I was in for a treat (after all Microsoft had emphasized compatibility in the framework) little did I know they would go and change the entire syntax on me. Some friendly changes:

    • Pointers for managed objects are now ^ not *.
    • Managed objects are allocated with gcnew and not new.
    • Any keyword starting with __ no longer does and some have been renamed.
    • Boxing is now implicit.
    • Managed arrays are completely different.

    Though I welcome many of these changes, upgrading code that is a mixture of managed and unmanaged objects (or even just managed objects) is an absolute nightmare. I've spent hours upon hours updating single classes or forms and what's worse s there isn't really any conversion tool to automate the process. Of course you don't HAVE to upgrade the code, the compiler still supports the old syntax, but using this feature just serves to cripple the entire IDE and many of the things that make it one of the best IDEs out there, you're trapped into upgrading.

    After this experience I've become extremely reluctant to recommend .NET to anyone (at least for C++).

  24. Re:I thought there might actually be some discussi by GoatMonkey2112 · · Score: 2, Informative

    It's all in how you use it. You don't necessarily have to use those features. Most of them are junk anyway. Especially the form designer for web pages, it produces worthless garbage code(if you call html code, but that's another topic).

    I have worked in both .net and Java using VS and JBuilder. The thing that I like about Java is that it forces you to write cleaner code at some points. Such as classes in a namespace being in separate files whereas in .net you can put all of your classes in one file and just put a namespace around it if you're lazy.

    My applications are either ASP.net or Java/Struts. They are conceptually the same. The Java people like to talk about Model View Controller like it is some huge thing the nobody can possibly understand. I'll tell you that for me switching from ASP.net to Java/Struts took about a week to learn. It's really not *that* different.

  25. Re:I thought there might actually be some discussi by jchenx · · Score: 3, Informative

    What you're describing, with the filling in of default values, is not something new with .NET. I saw it first-hand with earlier versions of VB.

    On that note, I can agree that automatically filling in objects with "textbox1" can be dangerous. I worked on a VB project with someone who wasn't a programmer and ran across these default names everywhere. When I had to re-write the code, it was difficult to read. But you know what? Bad coders are going to do bad things, no matter the language or development environment provides. If it wasn't filled in as "textbox1", he would have renamed it after some letter of the alphabet. I'll take "textbox1" over "x" anyday. (And sure enough, any variable that wasn't a UI object was named after letters in the alphabet)

    I've worked a lot with UI development in both Java (Swing) and C#. I can definately say that the .NET Framework makes things a lot easier. Yes, there's the added danger of "Joe User" now thinking that they're a super programmer, but does that mean language designers are supposed to make it languages difficult to use? That's just absurd. In any case, you could very well have the same thing in a non-.NET language as well (and I'm pretty sure there were some Java IDEs that did something very similar to what VS.NET does, in terms of UI drag-and-drop)

    If you think .NET is all about Microsoft trying to bring programming to the masses, I think you need to re-examine what it is about. You can easily argue the same thing with Java, or any other managed language. My take on the goals of these languages is to make development BETTER. "Easier" is a part of it, thanks to the elimination of "difficult-to-comprehend" concepts like pointers, and the addition of automatic garbage collection. Good programmers (and I'd like to think I'm one), could live forever in the C/C++ world, but having the benefits in .NET and Java are just too attractive. I'd rather worry about more difficult problems like concurrency, than worrying (as much) about memory management, pointer arithmetic, etc.

    --
    -- jchenx
  26. A linux fan says... by JustNiz · · Score: 2, Funny

    >> Intelligence in the business world, related to Microsoft Technologies

    Boy, I bet thats a small book.

  27. A Futile attempt by roman_mir · · Score: 2, Funny

    Obviously this cannot be done, any real AI built in .NET will soon realize that IT IS built in .NET and will commit a virtual suicide.

  28. Re:Book Already Reviewed on Slashdot, Not That Gre by MythMoth · · Score: 2, Interesting

    Do Slashdot reviews ever disparage the books under scrutiny? I've never seen one that did. I'd be curious to know if that's a matter of editorial policy from the /. team, or if it's actually just that they don't get many negative reviews...?

    If it's the latter, I have a few books on the shelf of shame that deserve a basting.

    --
    --- These are not words: wierd, genious, rediculous
  29. Re:I thought there might actually be some discussi by RingDev · · Score: 2, Insightful

    "Having said this, however, using the .NET still locks you into the Microsoft platform and Microsoft's development methodologies,"

    Platform, yes. (Although there is mono) Methodologies? no. MS has 'best practices' and templates, but you can code in any way you want. Yes, .Net is designed for Object Oriented development methodologies, and MS back them. But you can still write sequential code with GoTo statements if you really want.

    "both of which change constantly. As these change, perfectly good code becomes obsolete, begins to conflict with newer versions of the OS, browser, system DLLs, and so forth."

    My VB6 apps developed on NT 4 are still working just fine on Windows XP. My .Net apps are working just as expected on 2K and XP (98 machines can be a bit iffy). So yes, things do change, but as long as there is a .Net Framework for your OS and the development version, you're all good.

    "And I'm still far from convinced that .NET is truly competitive with Java or the various Open Source (LAMP) application stacks for building software other than rich clients. In my view, it trades somewhat shorter initial development time for higher long-term lifecycle costs."

    When you get to code writing, .Net and Java are almost identical. The design theory behind both is almost identical. Each has points where it excells and lacks, and you should use those points to decide on which to use. The development Cycle between the to is almost identical these days. .Net has an advantage in user interface design, but in the grand scope of things, that will be a pretty minor impact.

    "I recommend that .NET apps, like any other apps, be partitioned into separate, reasonably self-contained logical layers for data, logic, and presentation, communicating if possible via XML over HTTP(s)."

    Even rich clients can be developed this way. Data and Business abstraction layers, independant interfaces, and XML data transfers are all commonly used in both rich and lite clients.

    -Rick

    --
    "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
  30. Re:I thought there might actually be some discussi by Rew190 · · Score: 4, Insightful

    But, then, it doesn't hold your hand enough, and every text box ends up with a name like textbox1, or something like that. So, instead you have to remember each of the properties that you have to change for each control so that variables are named correctly, and all the proper default values are filled in.

    Well, the "textbox1" thing is annyoing (and I believe it's fixed in 2005), that generally is the only property I have to change on a regular basis. The name of the control too, but I don't think you can really hold that against VS. If you're doing anything else (like making the font bold for the textbox), you can simply copy the control with the bold property set, paste it, then change its name. It will retain the Bold setting.

    Then if all someone knows how to do is drag and drop, which is a good portion of .Net programmers...

    I'm sorry, but these programmers you're talking about are either not actually programmers or you're greatly exhaggerating the ability to make useful applications using only drag and drop. I would also say that there are countless programs that do nearly the exact same thing for Java stuff, but just like .NET, the dragging and dropping is relegated to UI design.

    ... then they have no idea what to do when something goes wrong.

    You're dealing with bad programmers then. There is nothing unique to .NET about this. If these programmers can't handle the simple code that VS generates, they should go back to school. Please don't be deluded enough to think this is is the language's fault, though.

    But I think that Microsoft trying to turn programming into something that anybody can do is a big mistake. Programming robust,reliable, scalable systems requires knowledge that not everybody has. I say, leave the programming up to the people that know how, and keep everyone else far, far away.

    if you only know how to drag and drop, you can put together a form, put some pretty widgets on it that do nothing when played with, and run it. That's it. The most complex thing that I can think of that VS does for you is create typed datasets. You can map some of the values in them to controls, but only if you are competent enough to populate the dataset and can either write a for-loop or understand databinding. You can not, even remotely, come close to being able to put together a semi-useful application without knowing how to code.

    Then again, and as I said before, the ability to NOT have to code shouldn't be something that's snorted at. VS doesn't generate anything past mundane code that would simply eat up your time. i doubt you could even call writing what it generates as "programming."

    It should also be noted that what you've brought up (and that you rightly noted) are all Visual Studio "problems." If anyone wants to argue against the merits of .NET, then do so against .NET and not its IDE.

    You might want to give it another chance if you're doing Windows apps and don't need portability. I'm a Java-first kinda guy, but when I do a C# application it's a great and generally refreshing switch-up, not an excercise in pain as others on /. would have you believe.

  31. Re:I thought there might actually be some discussi by BRSQUIRRL · · Score: 2, Interesting

    VS.NET does try to do as much as possible for you so that you don't go crazy performing the mind-numbing, repetitive tasks that are part of most development jobs. However, I don't think that this is an excuse to not understand what is really happening behind the scenes when you use VS. I don't think Microsoft feels this way either.

    Programming IS hard and requires a lot of knowledge. I personally think that all .NET developers should start by learning how to build applications with a text editor and the command-line compilers that come with the .NET SDK, but I don't think Microsoft could (or should) force people to learn that way.

    Sure, there are crappy developers out there who don't understand how .NET works, are only capable of drag 'n drop development, don't understand the concept of descriptive naming practices for GUI controls (the "TextBox1" problem), variables, functions, etc. but that doesn't mean that Microsoft should deliberately NOT produce tools that make development easier or impose artificial barriers of entry into the field.

  32. Speech Recognition by CruddyBuddy · · Score: 2, Insightful
    There seems to be so much desire to get speech recognition working properly.

    For many applications I think we could actually use a Wizard of Oz machine - that is, a person who is actually listening to the verbal responses but responds using canned or machine generated utterances. The WOZ operator is actually some painfully underpaid schmoe in a foreign (third world) country who knows American english but never has to actually speak it.

    (Most people I know who have dealt with outsourced support complain that the person on the other end of the phone has an accent. I don't know if it is because they have trouble understanding them, or because they are jealous. BTW, have they spoken to anyone from Alabama lately?)

    This fixes the problem of getting a system to understand "plain" english, whatever the hell that is.

    We employ computers because people are too expensive. But after all this money and effort why not just throw in the towel and do what Wal-Mart does - use cheap foreign labor? When someone costs $.25 an hour, what the hell do you need a $2000 (or more) speech server for?
    ---
    The idle mind knows not what it wants.

    --
    ----------
    Any problem can be made unsolvable if there are enough meetings made to discuss it.
  33. Re:I thought there might actually be some discussi by greythax · · Score: 2, Interesting

    The only problem that I have with .Net, and mostly just VS.Net, is that it tries to do everything for you, by holding your hand, and letting you drag and drop to do everything. But, then, it doesn't hold your hand enough, and every text box ends up with a name like textbox1, or something like that.

    I am curious, do you have the same problem with eclipse?

    Then if all someone knows how to do is drag and drop, which is a good portion of .Net programmers...

    Ok, since we are gonna pull out unqualified statements, allow me to inject my own personal experience. My job exposes me to quite a few .net, java, and perl/php developers. I can not count the number of perl scripts I have run accross with idiotic variable names, like a or qx. Additionally, I have seen volumes of cargo code that is about 20 lines longer than it needed to be. However, much of the .net code I have run across has been pretty darn nice. My personal oppinion of this is one of scope. Despite the drag and drop potential of VS.net, it will only take you so far. Many buisness apps that get built with a RAD tend to get very big very quick. Help desk software with thousands of lines seems to be in every company I have come in contact with. In my personal experience, more .net coders seem to be well trained and well bloodied than the scripters of this world. In fact, get a catalog from a major training vendor and see how many microsoft programing courses they offer in comparison to java/perl/whatever. Also, do try to remember that these are the same people who had 4 years of java in school. When you talk about the .net coders, you ARE talking about the java coders.

  34. Re:Slashdot is broken by shutdown+-p+now · · Score: 2, Informative
    But then again, running a just-in-time compiler means that every single time your application loads up, it's going to dog it until everything's been compiled. JIT is fine for long running apps, but sucks for the transient jobs.
    .NET runtime offers the ability to manually precompile an assembly into native code and cache it for later use. Look up ngen on MSDN for details.
  35. Only Snarky jokes and trolls.... by TiggertheMad · · Score: 2, Insightful

    Can we NOT put this to rest?

    Uh, you know this IS slashdot, right?

    From the Aricles of Slashdot, section 4, paragraph 3, I quote: "A quasi-humorous meme will be run into the ground until nobody remaining alive recalls the original humor behind the meme. If at any point during this process, somebody realizes that the meme isn't actually funny and states the fact in a post, they will be flagged as a troll by moderators."

    ....so, in answer to your question, no. If you are looking for insightful, intelligent discussion here you are about nine years to late.

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!