Building Intelligent .NET Applications
Bill Ryan writes "Sarah Morgan Rea's "Building Intelligent .NET Applications" is a book for those that get easily bored with mainstream development topics. Essentially, it's an in depth discussion of 3 niche technologies that came directly out of Microsoft Research (Microsoft Speech Server, Microsoft Analysis Services and Agents). The majority of the book is comprised of discussions of the first two technologies with roughly 12 pages being dedicated to Agents. It's finished off future Microsoft technologies "Avalon" (now known as the Microsoft Presentation Framework), Indigo, WinFS and Longhorn. Fortunately, since no one really knows when Microsoft will deliver each of these and what they will ultimately look like, she spends under 10 pages on them." Read the rest of Bill's review.
Building Intelligent .NET Applications
author
Sara Morgan Rea
pages
270
publisher
Addison-Wesley
rating
9
reviewer
Bill Ryan
ISBN
0321246268
summary
One of the things that makes this book great is that each of the areas discussed receive very little discussion elsewhere. If you want to use Microsoft Speech Server, you are essentially confined to using the SDK documentation, the MSDN newsgroups or an occasional blog post out there. Analysis services has a little more documentation but if you were looking to do any serious A.S. development, you're still pretty hard pressed to find comprehensive resources on how to use it.
These two areas comprise roughly 80% of Sarah's book. The discussion on Speech Server comprises a little over 100 pages and does an excellent job showing you how to get Speech Server up and running and how to use it. She starts out slowly and walks you through the Speech SDK, then moves on to creating Grammars, creating Prompts, creating Transcriptions and Extractions, using the Telephony modules and debugging/performance tuning your applications. Another nice touch is that she spends a good bit of time discussing more agnostic elements of speech and telephony development, S.A.L.T. in particular. Within the discussion throughout, there's a good bit of attention paid to configuring Speech Server and the problems people are typically confronted with when they create speech enabled apps. However she does a pretty good job of balancing the introductory material with more advanced topics for although she does spend a lot of time on setup and configuration, she also goes as far as showing you how to use Speech Server from a PDA.
As far as speech (the topic goes), it would be helpful if the reader had some familiarity with the core concepts involved (such as SALT, Grammars etc.) but even if you didn't, this book would still help teach you a lot of what you'd want to know. The intended audience is clearly intermediate to advanced developers but newbies will definitely find quite a bit of valuable information in it.
The next section discusses Artificial intelligence in the context of Analysis services. If you aren't familiar with relational database concepts, then it's probably a little above your head, but most people buying this book aren't running into relational database theory for the first time.
Chapter 5 starts with using Data Mining to create predictions. It starts with getting things set up, moves onto building the data mart, and then finally 'training' the model. This discussion is pure gold in my humble opinion.
The next chapter moves on to applying those predictions. Not really much to say here without getting overly technical but essentially this chapter is a walk through of what you'd do after you had your data mart built and trained, essentially, how you'd maintain it and continue to refresh the information.
This is followed by a chapter titled "An Evolving Database". Again, this is pretty technical in nature so it's hard to describe without bogging you down in jargon. Suffice to say that everything about this section is cool++; .
The book then discusses Agents, which are cool but probably don't have that much applicability in most people's day to day lives. If you want to learn how to use them (as well as the Background Intelligent Transfer Service), then she provides everything you need.
Finally things wind down with a discussion of Microsoft's upcoming technologies, Microsoft Research, Artificial Intelligence in general (as well as many resources on where to learn more), a glossary, bibliography and finally the index. Discussing any one of the areas that she touches upon here (neural networks, Fuzzy logic, natural language processing, machine learning etc.) could comprise an entire book. That's where the beauty of this book comes in - instead of discussing the subjects one at a time, she creates a series of walk through examples where she creates specific scenarios and shows you how to address them using each respective technology.
If you're bored and want to dive into some really cool subject matter, this book is a must have. If you want to learn more about Speech technology in general and Microsoft's implementations of it in particular, this book is a must have. If you're interested in artificial intelligence again, you'll find this book to be superb. If you just want to learn about subject matter that's been discussed over and over again, like creating Winforms or drawing with GDI+, then this book probably isn't up your alley."
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.
One of the things that makes this book great is that each of the areas discussed receive very little discussion elsewhere. If you want to use Microsoft Speech Server, you are essentially confined to using the SDK documentation, the MSDN newsgroups or an occasional blog post out there. Analysis services has a little more documentation but if you were looking to do any serious A.S. development, you're still pretty hard pressed to find comprehensive resources on how to use it.
These two areas comprise roughly 80% of Sarah's book. The discussion on Speech Server comprises a little over 100 pages and does an excellent job showing you how to get Speech Server up and running and how to use it. She starts out slowly and walks you through the Speech SDK, then moves on to creating Grammars, creating Prompts, creating Transcriptions and Extractions, using the Telephony modules and debugging/performance tuning your applications. Another nice touch is that she spends a good bit of time discussing more agnostic elements of speech and telephony development, S.A.L.T. in particular. Within the discussion throughout, there's a good bit of attention paid to configuring Speech Server and the problems people are typically confronted with when they create speech enabled apps. However she does a pretty good job of balancing the introductory material with more advanced topics for although she does spend a lot of time on setup and configuration, she also goes as far as showing you how to use Speech Server from a PDA.
As far as speech (the topic goes), it would be helpful if the reader had some familiarity with the core concepts involved (such as SALT, Grammars etc.) but even if you didn't, this book would still help teach you a lot of what you'd want to know. The intended audience is clearly intermediate to advanced developers but newbies will definitely find quite a bit of valuable information in it.
The next section discusses Artificial intelligence in the context of Analysis services. If you aren't familiar with relational database concepts, then it's probably a little above your head, but most people buying this book aren't running into relational database theory for the first time.
Chapter 5 starts with using Data Mining to create predictions. It starts with getting things set up, moves onto building the data mart, and then finally 'training' the model. This discussion is pure gold in my humble opinion.
The next chapter moves on to applying those predictions. Not really much to say here without getting overly technical but essentially this chapter is a walk through of what you'd do after you had your data mart built and trained, essentially, how you'd maintain it and continue to refresh the information.
This is followed by a chapter titled "An Evolving Database". Again, this is pretty technical in nature so it's hard to describe without bogging you down in jargon. Suffice to say that everything about this section is cool++; .
The book then discusses Agents, which are cool but probably don't have that much applicability in most people's day to day lives. If you want to learn how to use them (as well as the Background Intelligent Transfer Service), then she provides everything you need.
Finally things wind down with a discussion of Microsoft's upcoming technologies, Microsoft Research, Artificial Intelligence in general (as well as many resources on where to learn more), a glossary, bibliography and finally the index. Discussing any one of the areas that she touches upon here (neural networks, Fuzzy logic, natural language processing, machine learning etc.) could comprise an entire book. That's where the beauty of this book comes in - instead of discussing the subjects one at a time, she creates a series of walk through examples where she creates specific scenarios and shows you how to address them using each respective technology.
If you're bored and want to dive into some really cool subject matter, this book is a must have. If you want to learn more about Speech technology in general and Microsoft's implementations of it in particular, this book is a must have. If you're interested in artificial intelligence again, you'll find this book to be superb. If you just want to learn about subject matter that's been discussed over and over again, like creating Winforms or drawing with GDI+, then this book probably isn't up your alley."
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.
more like .nut! haha
I had no idea!
I'm glad Microsoft Research comes up with such brilliant innovations. I'd be impressed with a Speech Server if they developed the speech technology. However, Microsoft bought up the Lernout & Hauspie company and improved speech since. Slapping an RPC interface onto a speech synthesizer = research? I LOL at the future of American research!
The computing world has long standardized on C++/Java. Writing to a dead and platform specific technology is not very smart.
You are just wasting time for yourself, or the people who replace you, when your stuff gets migrated to Linux.
Step 1: get a brain.
"Start! Run! Cee-Emm-Dee! Format! Cee-Colon Slash X, Slash, U, Slash Y! Enter!"
And now you get to write a book on rebuilding intelligent .NET applications...
Then the anti-evolutionaries can be sued for patent infringement.
"It is a greater offense to steal men's labor, than their clothes"
as "is comprised" in the English language.
e.g.
A banana is composed of pieces.
The pieces comprise the banana.
Although there seems to be an exception for every rule in English, this is one rule with no exceptions.
And to everyone else, don't invoke Godwin's Law on your first reply, okay?
OK, so if I start building 'intelligent applications' (Intelligent Desgin, anyone?) using these new discoveries from Microsoft Labs will I be running the risk of a lawsuit?
IANAP, but my good friend is. He's a huge Linux guy, but unfortunately (as a lot of Slashdotters I'm sure) programs for a Windows-only firm. He's since started using .NET, and swears by it now. He says it is incredibly easy to build applications with it. I trust his judgement, because he's an incredibly talented programmer, and also programs in C/C++, Perl and is a huge database guy as well.
.NET for a site that gets 20,000 hits a minute, but you also wouldn't want to use C++ or Perl to integrate Windows-only applications with Active Directory, either.
It all comes down to the best tool for the job. I'm sure you wouldn't want to use
Step 1: Yes, get a brain. Don't use a hammer on a screw.
It is pitch black. You are likely to be eaten by a grue.
Only with the word "not" can that be a logically correct sentence; otherwise, it's an oxymoron.
"Avalon" (now known as the Microsoft Presentation Framework
A very small nitpick, but for the record, it's Microsoft Presentation Foundation.
Maybe it's just me, but "Avalon" was a much cooler name.
Tech, life, family, faith: Give me a visit
for not being a IANAP. I Am A Penis and I have a hard time sometimes. Most people, though, understand. Occasionally, people call me a Dick! But really, IANAD!
oxymoron n. pl. oxymora (-môr, -mr) or oxymorons A rhetorical figure in which incongruous or contradictory terms are combined, as in a deafening silence and a mournful optimist.
I'm a signature virus. Copy me to your signature so I can replicate, and introduce your own mutations so I can evolve.
1. The second most important technology priority (after security) for CIO's is Business Intelligence.
2. Not only that, but the most important business priority for them is business process improvement
If they had a chapter about Mono compatibility, I might consider the book.
Who moved my sig?
Building Intelligent .NET Applications
;)
Isn't that an oxymoron?
Slashdot has been shilling every skank Microsoft framework, language, and 'technology' for months now. It is an eyesore to those of us who have come here for free software news. Moderators, why do you accept these submissions? Don't you see that you are polluting hacker culture? Are you succombing to pressure by Microsoft's advertising dollars?
an ill wind that blows no good
Are you sure you can use the word "intelligent" when talking about anything to do with .NET?
I've been coding for Win32 for about 10 years now. I still prefer Visual C++ 6 over any of the .NET versions. The .NET Framework seems to be a giant hog that sits on top of the other Win32APIs. If the .NET Framework was integrated into the operating system maybe it would be more seemless and less bloated. Or maybe it would just make the OS bloated...
.NET bloat, but with so many other graphical platforms around these days (OS X, KDE, Gnome, Plain old X) I think people should be spending their time looking for a more long term solution to their GUI development needs.
These days I try to stay away from technologies that lock you into a certain platform. The two major down sides to this are development time and usability.
Maybe this book gives some tips on how to reduce
Hopefully someday there will be a free universal extensible light weight API for developing desktop applications. Until then we'll have to compromise.
Grrrrr... don't bother me, I'm thinking.
Sounds like another '.NET for idiots' book.
Honestly, you can build smart applications with the emacs editor and 5 years experience 'fooling around' with code. Why does everyone want to become a brilliant programmer from day 1? Takes time you know.
Here's a free guide, shorter, more enlightening and language agnostic: Teach yourself programming in 10 years.
asshOle to othe7rs
So a trollish comment gets a 3 for being Funny?
If this had been a Linux story and I typed in the same thing I'd have gotten whacked big time.
Cogito Ergo Sum
Well aparently this is a good book if you're chosing a programing platform that is application oriented. I'd like to know if there is anything in the book about making intelligent (efficient) .Net applications.
If there is any part in that book on how to make .Net code not consume all the resources in testing server I'll buy one right now.
"Will the highways on the Internet become more few?" -George W. Bush
Another nice touch is that she spends a good bit of time discussing more agnostic elements of speech and telephony development, S.A.L.T. in particular.
Erm... either "agnostic" doesn't mean what you think it means, or, more likely, you don't understand that SALT is about as "agnostic" as .NET or NTFS. SALT is part of the MS "ecosystem."
Go to http://www.w3.org/Voice/ to learn about "agnostic" standards for speech.
You can't even BUY this book from B&N! Why not save yourself some money by buying the book here: Building Intelligent .NET Applications. And if you use the "secret" A9.com discount, you can save an extra 1.57%!
Instead of fixing their hugely bugging drivers, shit opengl performance, broken & terrible install/uninstall, shit for Linux drivers, ATI spends their time in a circle jerk with .net to come up with the crapola that is CCC. Flash over substance.
Intelligent .NET applications... Is that an overstatement? We have some .NET applications at work and although some work pretty well, they are always fixing them.
[%] Cingular Ringtones
Now that's what I call a contradiction in term.
.Net, but some other, slightly more predictable technology.
If you're intelligent you don't build in
What's next?
Reasonable Al-Quaida Terrorists?
Goody Twoshoe CIA Interrogators?
Guantanamo Bay Beachpartys?
We suffer more in our imagination than in reality. - Seneca
This book has nothing to do with writing desktop applications. It is about writing apps that use artificial intelligence. In particular, it covers how to do so using the .Net framework.
.Net is "bloated", you have apparently never used KDE or Gnome!
What you seem to misunderstand is that there is no such thing as a framework that is both complete and lightweight. Sure, you can use just bare Xlibs and Athena widgets and make a simple, ugly application where you have to write most of the UI code. However, most of us want to write apps, not UI code, meaning that the framework should handle as much of this for us as possible.
Any framework that handles most of the work for you is going to be large. If you think
dom
Honestly, I have been developing web applications for some time and granted I use C#, but I've never been opposed to someone using Java, or PHP, or Oracle. My personal experience has been that every language has a slight edge in some regard, but they all do the same thing. There is a much greater difference in the talent of programmers than in the language being used. If you pitted Steven Hawking in an Enzo Ferrari vs. Michael Schumaker in a Ford Taurus, who would win the race? I mean honestly. Mark me flamebait or troll I don't care, but all this Windows vs. Linux high school propaganda has got me sick of Slashdot. The original post was a book review on developing .NET. It wasn't a, "Why anything except MS sucks" book review. Can we please stay on topic and get the ever-increasing in size chip off the linux community's shoulder? Thanks.
Be sure to remember the Programmers Prayer
Sorry clown, Java is the top language/platform in new engineering positions right now. And it continues to grow.
As someone else pointed out already, ASP.NET has already overtaken Java for web development. For dynamic content, Java has been almost completely replaced by Flash and dynamic HTML. And for desktop applications, Java is non-existent in the real world.
The people using Delphi out there are simply desperate to find anyone else who knows anything about it to help out.
Can't do it, can you?
.NET.
A recent performance test of some floating point intensive code I did earlier this year showed an over 3x slowdown when run on
(Sorry -- have to post anon -- don't want to get in trouble...)
"Intelligent .NET" -> It's a wikipedia definition of oxymoron.
.NET... intelligent... oxymoron
Oh, I was going to point out that it wasn't a log but was an, ummmm.... well, you know...
Thousands of firms are sticking with ASP because it runs better and faster than ASP.NET. Surprise, surprise! But they won't talk about it because the ASP.NET EULA forbids them from releasing benchmarks.
On using ASP.NET:
Boss comes in says, "Build me a simple order entry screen. And use those 'new' asp:datagrid's with anything that looks like a table. If its HTML, don't use it. All input items are in the datagrid format also."
Getting drop down boxes, check box lists, and text boxes to work is an undocumented nightmare. My humble dealings with ASP.NET is that its not ready for prime time.
I thought good coding evolved.
---- Booth was a patriot ----
S0Oo...It's Fiction then.
OSGGFG - Open Source Gamers Guide to Free Games
I agree: languages/environments like .NET are the future: they are easier to develop for, prevent silly programming mistakes, and help with security.
.NET; many languages have that property. Microsoft deserves no credit for the technologies in .NET or VisualStudio, since those technologies are 20 years old and weren't invented at Microsoft.
But this is nothing specific about
Still, where does that leave open source and free software? We need to discard the user environment and applications written in C and C++; those languages are obsolete for mainstream software development and they are holding back FOSS (the kernel should eventually be discarded and replaced as well, but we can take a little more time for that).
I don't know what language should replace it. Mono would be the obvious candidate, but the fact that it is based on a Microsoft language makes it unattractive to many people. Java is definitely not the answer--it is riddled with technical problems and it is proprietary. Objective-C inherits too many of C/C++'s flaws to be much of an improvement.
The best thing to do might be to come up with a derivative of C that would feel quite familiar to C/C++ programmers, but add garbage collection and runtime safety. It should also probably be batch compiled, since the bloat associated with the JVM and CLR runtimes is unacceptable to many people.
And by god the ATI catalyst control panel that uses .NET is most horrible piece of software I've ever seen! .NET or the engineers who are to be blamed. Note that I tried it few months ago so I dont know how it's changed. Nor do I really care. I'll never install that piece of shit on my machine again.
To be honest - off the top of my head - it's more ugly than any Java desktop app I've ever seen (even since the 1.1 days). It took like minutes to start-up (even if I only wanted to change resolution. etc!), ate crazy amount of memory and was very choppy overall. It's unbelievable that we see shit like this coming from ATI engineers. I honestly don't know if it's the
If you want a real ATI control panel, don't be afraid to get Omega Drivers and it's tray tools. It makes the ATI stuff look pathetic.