Building Intelligent .NET Applications 188
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.
Speech-enabled applications? (Score:5, Funny)
"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...
Re:Speech-enabled applications? (Score:1)
Nah, you'll just get "cannot find the 'cmdformat' file". It's a very robust system, you see
Re:Speech-enabled applications? (Score:1)
Re: Future MS Patents (Score:3, Funny)
Then the anti-evolutionaries can be sued for patent infringement.
There's no such thing.... (Score:2, Informative)
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?
Re:There's no such thing.... (Score:2)
Re:There's no such thing.... (Score:2)
In 2005, over 50% of Americans surveyed believed that Saddam Hussein was responsible for the 9/11 attacks.
Re:There's no such thing.... (Score:1)
Re:There's no such thing.... (Score:1)
Do you go to the cleaners or the cleansers?
Does gay mean happy or homosexual?
Still, they're and their and there I find annoying, but I imagine it is for non-English speakers trying to learn it.
I hate that Microsoft can backport DotNet into Windows 2000 but intentionally cripples new games like DS2 not to work with it.
Re:There's no such thing.... (Score:2)
IP concerns? (Score:2)
Re:IP concerns? (Score:1)
.NET programming (Score:2, Interesting)
It all comes down to the best tool for the job. I'm sure you wouldn't want to use
Re:.NET programming (Score:1)
Re:.NET programming (Score:5, Informative)
That's one that Microsoft does better than pretty much everybody. MSDN is an incredibly good resource. For the most part, it always has been. Can you provide examples of crappy documentation in v1.0 or v1.1 of the framework? Again, I'm aware of a few isolated areas, but they were few and far between.
Re:.NET programming (Score:2)
I don't know if the original poster can, but I sure can: BindingContext and CurrencyManager. Having written a data bound hierarchical grid in C#, I can tell you for a fact that the CurrencyManager documentation is horribly documented for control designers, the people who have the most need of good CurrencyManager documentation. As a single major flaw, take the "Note to inheritors" section of the documentation. This would be r
Re:.NET programming (Score:1)
Can't you just use the IL Disassembler with
Re:.NET programming (Score:2)
Re:.NET programming (Score:2)
Re:.NET programming (Score:2)
Re:.NET programming (Score:2)
cool strip beside the scrollbar that shows where errors, warnings and tasks are located in the file.
I'm unfamiliar with this feature, but when VS throws you an error in the output list, if you right click it you can get the exact line that the error appears.
write a lot of code that has to be well documented so I like that I can set Eclipse to view an undocumented method or member as an warning or even an error so that it won't compile.
There is a very similar fea
Re:.NET programming (Score:1)
Re:.NET programming (Score:1)
Here are a couple of killers bugs that are not documented:
The serialization of HashTable requires a special keyword to reduce serialization from 30 minutes to 5 seconds. On a 2GHz PentiumM 2GB memory -- unless a magic keyword is used, 600,000 element hashtable takes 30+ minutes to store to disk, with the keyword it only takes
Re:.NET programming (Score:3)
I guess it got better now though (I haven't done Microsoft development in years, save for VB6 which has its own traditional help system that doesn't end up in something else you don't care about).
My Dealings With ASP.NET (Score:1)
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.
Re:My Dealings With ASP.NET (Score:2)
Re:.NET programming (Score:2)
I've got to ask, what would you use for a site that gets 20K hits a minute? A LAMP setup? PHP would fall over and die. Java servlets would be understandable I suppose...but if your beef is with Windows rather than the
Re:.NET programming (Score:5, Informative)
All this traffic was handled by two Dell servers which cost about $5000 a piece. (1.5GB of ram, 10k RPM SCSI RAID, dual 2.8 Ghz CPUs.) Neither machine ever went above 40% CPU, which means a single machine could have handled all the traffic. During peak times, we were fully utilizing a 100Mb pipe.
Each request typically did some MSMQ operations and the occasional SQL Server DB hit if there was a cache miss, but most of it was served via the kernel mode HTTP listener and a few custom HTTP Handlers written in C#/ASP.NET.
It all depends on what each hit is doing. If each request takes 1 second to complete there is no way you could do 20,000 hits per minute unless you had a large web farm. In our case, our TTFB (time to first byte) was very, very small.
Re:.NET programming (Score:2)
Re:.NET programming (Score:3, Insightful)
We have done testing to confirm this, and in fact we had a NIC failure in one machine which resulted in the failover of all traffic to a single machine right at the beginning of our normal peak load times.
The result? That second machine hovered around 75% to 80% CPU for the hour or so it took us to replace the NIC in the first machine.
Re:.NET programming (Score:4, Interesting)
Ya, it's called Windows 95. Or Linux. Or NT. Or XP for that matter. What's your point?
The original Pentium at 66 MHz can handle one million database transactions per second, with the right software.
That's a pretty silly statement. What software would that be.
The tcp/ip stack on FreeBSD 4.x, slightly modified to manage connections on a per port basis, can handle over one million connections per second on the original Pentium at 200 MHz.
Interesting. There are a max of 64,000 ports. That would mean each port would need to handle over 15,000 connections per second. What useful thing could be done with so little time to do it? The memory resource required alone would almost certainly be more than any PII motherboard could hold. Even if each connection only consumed 1Kb of memory, it would take about a GIG of ram just for the connections.
It seems like you do not have any experience with real high load software. Your setup is overkill for anything other than something developed on the Microsoft Windows platform.
It seems like you enjoy making up stuff and then making judgements about other people's experience which you are clearly not qualified to make.
Microsoft software is always poorly design.
Why am I even replying to this... never mind.
Re:.NET programming (Score:3, Insightful)
I don't know but given that java is proven to work on linux (and other unix platforms as well as windows) I don't know if any business would risk using mono on a production web site.
Finally since MS has patents on the ASP.NET platform a company would open themselves up for a patent infringement lawsuit for deploying o
Re:.NET programming (Score:2)
A screw works very well as a nail, you insensitive clod!
I'm sure you wouldn't want to use .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.
Of course not, Microsoft works hard for this to be hard for you (sry folks, I wrote "hard" not "hard on")
Re:.NET programming (Score:1)
Monster.com and Match.com both use ASP.NET. I'm not sure how many hits they get a minute, but I bet you it's several thousand. Both sites are usually very peppy.
Re:.NET programming (Score:1)
Re:.NET programming (Score:2, Informative)
The greatest improvement that
Not only was the programming model a world better th
Re:.NET programming (Score:1)
Re:.NET programming (Score:1)
I know about System.DirectoryServices, but its just a COM interop for the windows standard API -- which dopes ADSI -- which sucks the monkey nut.
It uses Mono to do SSL -- but I stripped that out and used
Re:.NET programming (Score:1)
Unless this is one of those weird Active Directory apps that needs raw speed. Maybe an Active Directory based first person shoot-em-up?
Re:.NET programming (Score:2)
Really, the only hold up with sites is the databases, and caching is so powerful in .NET that can become extremely managable.
I had once coded a news engine that used caching, and I had extremely fast load times using output caching, standard data caching, and web controls. The site never launched to the public, and the server would not have been able to handle it anyway, but my point is that coded correctly, I would gladly use .NET
open source needs to change (Score:2)
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
Small nitpick (Score:4, Informative)
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.
Re:Small nitpick (Score:2)
Re:Small nitpick (Score:1)
Business intelligence (Score:2, Insightful)
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
Re:Business intelligence (Score:2)
Mono Chapter? (Score:2, Interesting)
Re:Mono Chapter? (Score:3, Informative)
CHAPTER 10: Mono Compabitility: None of these technologies or any equivalents are available in Mono. You might be able to hack something together with
Kind of a short chapter though.
Why is this Linux vs. Windows? (Score:5, Funny)
Intellegent .Net Design? (Score:2)
SOoooo. (Score:3, Funny)
S0Oo...It's Fiction then.
Re:Who The Hell Use .NET These Days? (Score:5, Informative)
Re:Who The Hell Use .NET These Days? (Score:2)
So yes, there's a lot of
Re:Who The Hell Use .NET These Days? (Score:2)
Re:Who The Hell Use .NET These Days? (Score:2)
Re:Who The Hell Use .NET These Days? (Score:5, Interesting)
You are just wasting time for yourself, or the people who replace you, when your stuff gets migrated to Linux.
This is probably the most ignorant thing I have heard today. Aside from the fact that
My 10-man company is making millions this very minute with C#.
Go read a book and consider trolling elsewhere. I would mod you down, however it looks like the others have beaten me to it.
Re:Who The Hell Use .NET These Days? (Score:4, Interesting)
C# and Java, btw, are two of the nicest languages I've ever used, and I've used a lot.
Own up to knowing Delphi (Score:2)
The people using Delphi out there are simply desperate to find anyone else who knows anything about it to help out.
Re:Own up to knowing Delphi (Score:1)
I am not sure where you are, but I'm sure that Delphi developer (well, I used to be...) is hard to find in United States. Last time I saw a job that involves knowledge of Delphi software development, the employer was an immigrant from an European country.
Re:Who The Hell Use .NET These Days? (Score:2, Informative)
It is. Any thoughts to the contrary is just denial.
Re:Who The Hell Use .NET These Days? (Score:1)
Re:Who The Hell Use .NET These Days? (Score:1)
Re:Who The Hell Use .NET These Days? (Score:2)
That's easy to quantify: Java achieved near 0% of the dynamic web content market, and it achieved near 0% of the desktop application market, both areas where Sun was boasting that they were going to take over leadership from Microsoft (and people like me were supporting and cheering them on). The only area where Java has achieved any signif
Re:Who The Hell Use .NET These Days? (Score:1)
Let me ask another question, is asp.net superior to jsp ? No ? Then is it "jsp" itself you're putting down or the people marketing it? If windows is the choice for 98% of business servers, does it make sense that there's more asp than jsp pages outthere?
The desktop application market?
Are you seriously stating that you we're cheering on a company that claimed to remove windows programs from the windows operating system and replacing them with J
Re:Who The Hell Use .NET These Days? (Score:2)
I have no opinion on which of the two systems is better; I just pointed out that Java is falling behind ASP.NET, so it doesn't look like it's the future.
And Java is only "portable" to the degree that it limits the degree to which you can access platform-specific features." - omfg
I'm sorry it makes no sense to you; if you actually were in the bus
Re:Who The Hell Use .NET These Days? (Score:4, Interesting)
While I'm at now (US northwest), a lot of the programming is
Java falling behind (Score:4, Informative)
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.
Re:Who The Hell Use .NET These Days? (Score:1)
Re:Step 1 (Score:2, Funny)
Re:Step 1 (Score:3, Funny)
Re:Step 1 (Score:2)
Remember this: We think the same thing of you.
Re:Step 1 (Score:2)
Oh, wait, I did [crapcomix.com]. But it's not like I was serious.
Re:Step 1 (Score:2)
That he's also a closed minded linux douche?
Is this like the Chewbacca defense?
Troll comment get's a 3 for Funny? (Score:2, Insightful)
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.
Re:Troll comment get's a 3 for Funny? (Score:1)
Hey ! This was not a trollish comment. Apparently people didn't get my joke, I would have done the same one for any language ("Building Intelligent XXX Applications"). Please don't mod me Flamebait.
Re:Speech Server (Score:2)
Re:Speech Server (Score:2)
Are you sure about that??? I was doing some work in voice recognition software at the time and am pretty sure Lernout & Hauspie was bought by ScanSoft (now Nuance I think). Now I guess MS may be licensing some of the Lernout & Hauspie tech from them (I've seen no evidence of this), but I'm pretty sure they didn't buy L&H.
Re:Speech Server (Score:3, Informative)
Re:Speech Server (Score:1)
Scansoft has been made by an American Entrepeneur who bought the US branch (Dragon Speech and err...Scansoft) from the "liquidation" (sorry I can't translate this term correctly). It didn't buy L&H. He took the property on some of their technologies. L&H has a such big debt that there was no point to buy the company in istelf.
The most notorious one was a completly new TTS engine. I think it was called the realspeech TTS or something.
Well I used to work i
Re:Speech Server (Score:2)
Of course, no way would MS want to hire smart guys to invent stuff to improve their own software, why would they want to improve their stuff, or you really want to moronically argue that they never care about improving anything and 2k was no different from nt4, xp no different from 95, whatever?
I use a lot of open-sourc
Re:Speech Server (Score:2)
One would think so. But find me projects that actually ended up producing a key component for Windows, Office, or many of their other products? I used to follow Microsoft Research because it sounded like they were working on interesting stuff. Over time, however, it became clear that NONE of the projects were ever seeing the light of day. The most that was happening is that the researchers would do some work, pos
Re:Speech Server (Score:1)
As just one
Re:Speech Server (Score:2, Insightful)
These innovations are free for everybody to read and learn about.
Whether or not microsoft actually gets around to using any of these ideas in their products is beside
the point: research is being done and the results are being published.
Re:oxymoron? (Score:1)
It's true that the .NET Framework is really a fancy wrapper for Win32 API's, but the C# language is really great to work with -- only if it's the right tool for the job.
What really grinds my gears is that, as a micro-ISV, the .NET Framework isn't installed on a majority of customer's computers. And it's unfair to ask them to download and install the +200 MB Framework to use your ~100 KB application. That's why I've recently re-writen my client software in C++, but I still use .NET from my server-based ap
Re:oxymoron? (Score:1)
That's quite an exaggeration. While the framework download is somewhat large, it is nowhere near 200MB. In fact, not even the v1.1 SDK is 200MB. If you compare it to the JRE download (15MB) which is required to run Java applications, it's not really that big.
.NET Framework Redistributable v1.1: 23MB
.NET SDK (not required to run apps): 108MB
.NET Framework Redistributable v2.0: 22MB (even smaller)
.NET SDK (not required to run apps): 362MB (much bigger)
Re:oxymoron? (Score:2)
Microsoft .NET Framework Version 2.0 Redistributable Package (x86) [microsoft.com] 23 MB, 2-4 minutes to download, assumming a broadband connection.
if you're developing consumer Windows application with .NET v2.0...well, mod yourself down.
Paint.NET [wsu.edu] has a .NET 2.0 Framework release scheduled for January with native x64 support.
Re:oxymoron? (Score:2)
However, I put them in a installer because clients expect it that way.
Not all C++ stuff is like mozilla or openoffice.
Re:oxymoron? (Score:2)
Obviously, since your 10 year old C++ will probably still be portable in another 10 years with minor tweaks but we don't have a clue what fad language will be used for whatever VB morphing to .NET and whatever is next will be. We've had things similar to basic, pascal, and now java already - so it may be better to use a standard defined outside of MS than an internal shifting goalpost - either that
Re:oxymoron? (Score:1)
Unfortunately, it is time to move on as Microsoft is dropping support for Visual Studio 6. If you do not want to write managed code, you can still use Visual C++
Re:Another Microsoft Story (Score:3, Insightful)
By the way, "hacker culture" is no longer "cool". It's a pathetic group of people who can't come to grips with modern technology and simply scream (well post) from their basement about how the world misuses the world "hacker" and doesn't give their command line the respect it deserves.
Re:Another Microsoft Story (Score:1, Troll)
By the way, "hacker culture" is no longer "cool". It's a pathetic group of people who can't come to grips with modern technology and simply scream (well post) from their basement about how the world misuses the world "hacker" and doesn't give their command line the respect it deserves.
Better that than a clueless drooler who willingly tithes to a vile corporation who shits on the world, and uses them as a surrogate for their thinking. (I expect the standard reply, Bill Gates is worth $50 gazillion, how m
Re:Another Microsoft Story (Score:2)
Re:Another Microsoft Story (Score:2)
Pick your code word: utopian, communist, un-American. Proponents of free software are used to it. The cause manages to advance. Your labels don't constitute a debate. You denegrate zealotry and embrace moderation without knowing why. Muzzy thinking is nothing to be proud of.
Re:Another Microsoft Story (Score:1)
It doesn't. OTOH, it IS called slashdot, not back-slashdot...
Re:Another Microsoft Story (Score:3, Insightful)
Re:Another Microsoft Story (Score:2)
Re:Intelligent .Net Applications? (Score:1)
Re:How about writing fast .NET apps? (Score:3, Informative)
Don't believe, go look it up...
But I'm sure 'your' tests are the definitive answer on its performance.
Re:How about writing fast .NET apps? (Score:3, Insightful)
Don't get me wrong, I'm a huge fan of
Re:How about writing fast .NET apps? (Score:1)