Slashdot Mirror


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.

32 of 188 comments (clear)

  1. Re:Who The Hell Use .NET These Days? by luvirini · · Score: 4, Informative

    You would then apparently be surprised at the ammount of development going on with C#

  2. Speech-enabled applications? by Tackhead · · Score: 4, Funny
    > 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.

    "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...

  3. Re: Future MS Patents by Alien54 · · Score: 2, Funny
    I can see patents on the concept of intelligent design in computers. After all, how many stupid computer programs and designs have you seen?

    Then the anti-evolutionaries can be sued for patent infringement.

    --
    "It is a greater offense to steal men's labor, than their clothes"
  4. Re:Step 1 by Anonymous Coward · · Score: 2, Funny

    Step 2 - become a closed minded linux douche

  5. There's no such thing.... by 70Bang · · 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?


  6. .NET programming by TheDarkener · · Score: 2, Interesting

    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.

    It all comes down to the best tool for the job. 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.

    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.
    1. Re:.NET programming by ergo98 · · Score: 2, Informative

      I'm sure you wouldn't want to use .NET for a site that gets 20,000 hits a minute

      The greatest improvement that .NET brought to the table wasn't rich apps (Winforms still are quite a few steps behind what you could achieve with Delphi 7 years ago), nor was it component integration (COM is still the pervasive component model, and .NET remoting is just finally getting the features of COM+): It was that it revolutionized web development on the Windows platform.

      Not only was the programming model a world better than the classic ASP, but the scalability (and automatic scale-out features like shared session state) improvements are colossal. .NET is one of the few technologies you should rely upon to service a large scale, robust website.

    2. Re:.NET programming by ThinkFr33ly · · Score: 4, Informative

      I know of a few bugs in v1.0 of the framework, nothing too serious... mostly stupid stuff (like a property being protected when it should have been public and is therefore inaccessible to anybody using the framework), but the documentation has always been stellar.

      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.

    3. Re:.NET programming by ThinkFr33ly · · Score: 4, Informative

      20,000 hits a minute doing what? I've created .NET sites that handled about 60 million hits a day (advertising related), with peak traffic doing 5000 requests a second. (That would be 300,000 requests a minute.)

      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. .NET performed extremely well, as did IIS 6.0 on Win2k3 Server. Very reliable too... never had downtime thanks to NLB. .NET is a fully capable platform. If the .NET application is written correctly, it can handle just as much load as a custom ATL-based application, which is typically regarded as the best performing platform. And trust me, writing an ATL app is painful for all but the best C++ developers.

    4. Re:.NET programming by killjoe · · Score: 2, Insightful

      Do you have any firsthand experience with using the ASP.NET under linux (using mono I presume). Does it really work "just fine", does it work well enough to put into production on a heavy site?

      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 on mono. The risk may be small (for now) but I don't know too many legal departments who would approve of such a project when a patent free solution is available.

      --
      evil is as evil does
    5. Re:.NET programming by IntergalacticWalrus · · Score: 2

      MSDN good? Oh please. I still have nightmares about searching for a Win32 API function, and ending up on WinCE pages.

      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).

    6. Re:.NET programming by ThinkFr33ly · · Score: 2, Insightful

      Why would that be scary?

      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.

    7. Re:.NET programming by ThinkFr33ly · · Score: 3, Interesting

      The original Pentium at 200 MHz can easily handle a 100Mbit Ethernet connection with the right software.

      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.

  7. Small nitpick by Swamii · · Score: 3, Informative

    "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
  8. Business intelligence by ech00ne · · Score: 2, Insightful
    If you really want to seize an opportunity to drive some demand for your products you have to take a serious look at embedding some Business Intelligence into your product. Don't believe me?

    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

  9. Mono Chapter? by ztwilight · · Score: 2, Interesting

    If they had a chapter about Mono compatibility, I might consider the book.

    --
    Who moved my sig?
    1. Re:Mono Chapter? by PsychicX · · Score: 2, Informative

      The technologies are Microsoft Speech Server and Microsoft Analysis Services. I'll write the extra chapter for you:

      CHAPTER 10: Mono Compabitility: None of these technologies or any equivalents are available in Mono. You might be able to hack something together with /dev/speech, and that's about it.

      Kind of a short chapter though.

  10. Re:Step 1 by PsychicX · · Score: 2, Funny

    Step 3 - Profit?

  11. Re:Who The Hell Use .NET These Days? by sfontain · · Score: 5, Interesting

    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.


    This is probably the most ignorant thing I have heard today. Aside from the fact that .NET is neither platform-dependent, nor dead, you have a wonderful post. Oh, except for the part about wasting time, being replacing, and Linux migration.

    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.

  12. Troll comment get's a 3 for Funny? by Tominva1045 · · 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.

    --
    Cogito Ergo Sum
  13. Re:Another Microsoft Story by PsychicX · · Score: 2, Insightful

    "Free software news" ? Where the hell does it say that?

    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.

  14. Re:Who The Hell Use .NET These Days? by JebusIsLord · · Score: 3, Interesting

    Absolutely true... I get various contracting request emails every day, and 90% of them want either C# or Java coders. The rest are either C,C++ or specialty jobs.

    C# and Java, btw, are two of the nicest languages I've ever used, and I've used a lot.

    --
    Jeremy
  15. Re:Speech Server by AKAImBatman · · Score: 2, Informative

    Microsoft licenses TTS technology from Lernout & Hauspie. (Now Nuance, like you said.) Microsoft has their own Speech Recognition engine. However, that engine can be replaced by third parties via the SAPI. Microsoft had an 8% share in the company at one point, though I don't know how much of it they currently hold.

  16. Re:Another Microsoft Story by external400kdiskette · · Score: 2, Insightful

    Many people use .NET and it's an interesting enough language to warrant a story on using it more efficiently. Slashdot is not designed to be reporting 100% on free stuff and for good reason, if you want an IT news site that doesn't report on ANYTHING that isn't free RMS style your going to have a site that will appeal to a much smaller audience though it could be a good narcotic for zealots. Most people want news on everything IT of interest irrespective of its philosophical status.

  17. Re:Speech Server by Musc · · Score: 2, Insightful

    Microsoft research publishes a great deal of research papers every year.
    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.

    --
    Hamsters are at least as feathery as penguins. HamLix
  18. Re:Who The Hell Use .NET These Days? by mugnyte · · Score: 3, Interesting

    Interesting how the less-intelligent, personal-attack responses are from AC's, while the interesting contributors are not. Or not so new.

    While I'm at now (US northwest), a lot of the programming is .NET based. If you are living elsehwere and have a Java-only view of openings, then great! both are alive in well in the world. Claiming either is a the single choice for all is a sure sign of an incompetent developer. Worse yet, the AC's here trolling are probably not developers at all (sigh of relief actually).

  19. Why is this Linux vs. Windows? by PhatboySlim · · Score: 5, Funny

    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
  20. Java falling behind by penguin-collective · · Score: 3, Informative

    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.

  21. Re:Who The Hell Use .NET These Days? by segedunum · · Score: 2, Informative

    Aside from the fact that .NET is neither platform-dependent

    It is. Any thoughts to the contrary is just denial.

  22. Re:How about writing fast .NET apps? by TheNetAvenger · · Score: 2, Informative

    Yet something that needs speed the most, DirectX 9.0c has portions that are written in .NET - managed code.

    Don't believe, go look it up...

    But I'm sure 'your' tests are the definitive answer on its performance.

  23. SOoooo. by MrCopilot · · Score: 2, Funny
    Building Intelligent .Net Applications

    S0Oo...It's Fiction then.

    --
    OSGGFG - Open Source Gamers Guide to Free Games
  24. Re:How about writing fast .NET apps? by Corngood · · Score: 2, Insightful

    Go look it up? How about you just provide some proof.

    Don't get me wrong, I'm a huge fan of .Net and DirectX, but I'm pretty sure the only part of DirectX which runs managed is the .Net wrapper 'DirectX for Managed Code'. I've made lots of unmanaged DX9 applications which run fine without the .Net runtime.