Building Intelligent .NET Applications 213
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.
Re:I prefer the real thing (Score:3, Insightful)
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.
I thought there might actually be some discussion (Score:5, Insightful)
Unfortunately, this is
If someone would actually enjoy a conversation about data abstraction, business application development, and advanced theory in
-Rick
IA ***NOT*** AI (Score:3, Insightful)
Re:I thought there might actually be some discussi (Score:3, Insightful)
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
Re:Slashdot is broken (Score:3, Insightful)
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. .net only windows. .net development environment costs a lot, java can be gotten for free.
-java runs on just about any OS,
-the
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.
Re:WTF, over? (Score:3, Insightful)
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.
Wha? (Score:1, Insightful)
I thought we turned our noses up at it because, coming from even simpler languages like Python and/or higher-level languages like Lisp, it offers nothing we didn't already have, and in many cases, less.
But now I realize that on slashdot, if I don't like
Meta: I have no idea how this made it to +5,Insightful. The post is itself a troll: suggesting that anybody who dislikes
Re:I thought there might actually be some discussi (Score:3, Insightful)
Platform, yes. (Although there is mono) Methodologies? no. MS has 'best practices' and templates, but you can code in any way you want. Yes,
"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
"And I'm still far from convinced that
When you get to code writing,
"I recommend that
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
Re:I thought there might actually be some discussi (Score:5, Insightful)
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
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
You're dealing with bad programmers then. There is nothing unique to
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
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
Speech Recognition (Score:2, Insightful)
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.
Only Snarky jokes and trolls.... (Score:3, Insightful)
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."
Re:IA ***NOT*** AI (Score:3, Insightful)
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'.