This page is out of date and appears here for archival purposes. For new references see the Technical Links page.
Books for Summer Classes
"
The covers of this book are too far apart.
"
- Ambrose Bierce, The Devil's Dictionary
- Ambrose Bierce, The Devil's Dictionary
Here you will find mostly book citations, but there are also a few links to interesting web sites.
Some Author Links
.Net Authors Juval Lowy Jeff Prosise Ingo Rammer Chris Sells Bjarne Stroustrup Julian TemplemanBooks on Hold in Sci-Tech Library
Covers .Net types, WinForm programming, ASP, XML, and Remoting. We use Parts I and III for CSE681 - Software Modeling and Analysis
and Part II for CSE686 - Internet Programming.
51 patterns that focus on automating business processes, especially using the web.
Another view on the 23 patterns discussed in the original Design Patterns book.
65 patterns that focus on building message-passing middleware.
Patterns for concurrent and networked objects.
51 patterns that focus on automating business processes, especially using the web.
Discusses improving existing code with patterns. Collects refactorings into Creation, Simplification,
Generalization, Protection, Accumulation, and Utilities.
Books recommended by Microsoft for Applicants for SDTE Positions:
- Writing Solid Code, Steve McGuire
- Code Complete, Steve McConnell
- Testing Computer Software, Cem Kaner
- How to Break Software, James A Wlittaker
- The Art of Software Testing, Glenford Meyers
- All I Ever Needed to Know in Business I Learned at Microsoft, Julie Bick
- Business at the Speed of Thought, Bill Gates
- The Road Ahead, Bill Gates
Developers Book Kit
I mentioned, during a Friday morning help session, a couple of books that I thought should be on every developer's bookshelf. There seemed to be enought interest that I've compiled my list of essentials - a Software Development book kit. Most of these are references and texts for experienced developers, listed below as Core References. I've also included links, emphasizing Tutorial Links.- C++
Core references:
"The C++ Programming Language", 3rd Edition, Stroustrup, "The C++ Standard Library", Josuitus, "C++ Coding Standards", Sutter and Alexandrescu, "Effective C++", 3rd Edition, Scott Meyers, "Design and Evolution of C++", StroustrupTutorial references:
"C++ Primer Plus", 5th Edition, Prata Tutorial links:
cplusplus, C++ FAQ - Marshall Cline
C++0x Links:
C++0x, Dawning of a new Standard, Simpler Multithreading
Other Links:
The C++ Source - C# and .Net
Core references:
"Effective C#", Wagner, "More Effective C#", Wagner, "Windows Forms 2.0 Programming", Sells and Weinhardt, "Concurrent Programming on Windows", Joe Duffy, "C# Network Programming", Blum, ".Net and COM, The Complete Interoperability Guide", Nathan Tutorial Links:
C# Station Tutorials, Threads Tutorial
Other Links:
.Net Quickstarts - Java
"Java Concurrency in Practice", Brian Goetz, et. al., "Concurrent Programming in Java", 2nd Edition, Lea - Win32 Systems Programming
Core References:
"Windows via C/C++", Jeffrey Richter Tutorial Links:
theForger's Win32 Windows
Other Links:
Sysinternals, Catch22 Win32 Windows - WCF
Core References:
"Inside Windows Communication Foundation", Justin Smith, Progamming WCF Services, 2nd Edition, Juval Lowy, "Windows Communication Foundation 3.5, Unleashed", McMurtry, et. al. Tutorial Links:
MSDN Tutorial, Wahlin Blog, WCF Security Samples, WCF Rest Samples, WCF Tutorial links
Other Links:
secure messaging - WPF
Core References:
"Programming WPF", Sells, "Pro WPF in C# 2008", MacDonaldTutorial Links:
MSDN Tutorial, Tutorial Videos, WindowsClient Tutorials, BeaCosta Blog, CoreDotNet Data Binding, DotNetSlackers, WPF and Xaml Tutorials, AspAlliance Tutorials, Christian Moser's Tutorials, Paranoid Ferret Tutorials, Erno de Weerd Code Samples, SearchWinDevelopment Tutorials
Other Links:
C# Corner Articles - Web Development
Core References:
"Pro Asp.Net 3.5 in C# 2008", MacDonald and Szpuszta, "Bulletproof Web Design", Cederholm, "DOM Scripting", Keith, "PPK on Javascript", Koch, "HTML Dog, the Best-Practice Guide to XHTML & CSS", Griffiths Other References:
"Beginning XSLT 2.0", TennisonTutorial Links:
Code.Google Web Security, Code.Google Ajax Programming - Microsoft's COM Technology
Core References:
"ATL Internals", Sells et. al., "Understanding ActiveX and Ole", David Chappell
Other References:
"Developer's Workshop to COM and ATL", Troelson, "Inside OLE2", Kraig BrockschmidtTutorial Links:
Simple COM Server, Intro to COM, Part I, Intro to COM, Part II, COM STA, Part I, COM STA, Part II - Distributed and Enterprise Computing:
Tutorial Links: Code.Google Distributed Computing
Other Links: Udi Dahan's Articles, ACE, Corba, Corba Tutorials,
Distributed Computing Research Links: Distributed Programming with Mozart - Database Development
"The Hitchhiker's Guide to Visual Studio and SQL Server", 7th edition, Vaughn, "Murach's SQL for SQL Server", SyversonTutorial Links:
Code.Google MySQL Database links - Algorithms
Tutorial Links:
Code.Google Algorithms - Software Engineering
Core References:
"The Mythical Man Month", Frederick BrooksTutorial Links:
Code.Google Configuration Management - Writing
Core References:
"Writing with Style", Second Edition, Trimble
Object Oriented Design
-
Design Patterns, Erich Gamma, et. al., Addison-Wesley, 1995
This wonderful book is the text we use in the summer course of that name. You have to write software using the patterns to understand in detail what the book is saying, but well worth reading even if you don’t follow my advice.
-
UML Distilled, Fowler and Scott, Addison-Wesley, 1997
Good introduction to the Unifed Modeling Language.
-
Practical Statecharts in C/C++, Miro Samek, CMPbooks, 2002
Book focuses on modeling event driven systems with Hierarchical State Charts (Chapter 4) and concurrent processing with Active Objects (Chapter 7). The text is wordy - the author spends as much time telling why the method is great as he does about the method. However, the fundamental ideas seem useful and effective. I haven't tried any of these in code yet, so the jury is still out.
-
Object-oriented Software Construction, Bertrand Meyer, Prentice-Hall, 1994
Lot’s of OOD wisdom by the author of the Eiffel Language.
-
Agile Software Development, Principles, Patterns, and Practices, Robert C. Martin,
Prentice-Hall, 2003
A thoughtful text, full of examples in Java and C++, that discusses most of the design principles we cover in this course.
Design Patterns
-
Design Patterns, Gamma, et. al., Addison-Wesley, 1995
CSE776 - Design Patterns is an excellent follow-on to CSE687 - Object Oriented Design. This book is the text we use for CSE776. It's a great book, and by far, the best on the topic.
-
Refactoring to Patterns, Joshua Kerievsky, Addison-Wesley, 2005
Discusses improving existing code with patterns. Collects refactorings into Creation, Simplification, Generalization, Protection, Accumulation, and Utilities.
-
Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2003
Presents 51 patterns related to building distributed enterprise systems.
-
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects, Volume 2,
Douglas Schmidt, et. al., Wiley, 2000
Focuses on middle-ware. The first listed author lead the work on the ACE middleware communication platfrom and TAO CORBA ORB.
Win32 Systems Programming
-
Win32 System Programming, Second Edition, Johnson Hart, Addison-Wesley, 2001
File system, registry, security, memory-mapped files, processes, threads, interprocess communication, network programing, services, asynchronous I/O, RPC and COM, Win64
-
Win32 System Services, Second Edition, Marshall Brain, Prentice Hall, 1996
About the same contents as Hart, uses lots of small examples.
.Net Toolkit
If you are working every day with .Net, then the following will be essential parts of your toolkit.-
Programming Microsoft .Net, Jeff Prosise, Microsoft Press, 2002
Covers .Net types, WinForm programming, ASP, XML, and Remoting. We use Parts I and III for CSE681 - Software Modeling and Analysis and Part II for CSE686 - Internet Programming.
-
Effective C#, Bill Wagner, Addison-Wesley, 2005
My attitude had always been: you don't need to buy a C# book. Look at Prosise (above) and the www.gotdotnet.com website to get all you need. This book changed my mind. Wagner has lots of good ideas, insights, and things you just hadn't thought of. Highly recommended.
-
Windows Forms Programming in C#, Chris Sells, Addison-Wesley, 2004
Very good discussion of Windows Forms programming, including design-time support.
- Pro C# 2008 and the .Net 3.5 Platform, Fourth Edition, Troelsen, Apress, 2007
-
Programming in the .Net Environment, Watkins, Hammond, Abrams, Addison-Wesley, 2003
Good treatment of Types, Metadata, the execution system, and deployment.
-
Essential .Net, Volume I, Don Box, Addison-Wesley, 2003
Good treatment of .Net object model, application domains, and an introduction to security.
-
Applied .Net Attributes, Bock and Barnaby, APress, 2003
How .Net attributes work, building custom attributes, compile-time and run-time behavior
-
Programming .Net Components, Juval Lowy, O'Reilly, 2003.
A clearly written account of the component model and how it is implemented in .Net. Some comparisons with COM as well. The book ends with a very well written chapter on .Net security with example code and configuration files.
-
COM and .Net Component Services, Juval Lowy, O'Reilly, 2001.
A clearly written description of component services provided by COM+. Contains a brief chapter on using COM+ services from managed code. The book has a chapter devoted to COM+ security.
-
Advanced .Net Remoting, Ingo Rammer, APress, 2002
A readable and useful book on .Net Remoting. I have based most of my work on material in this text. Discusses programming with components in the remoting chain to intercept, react, and possibly modify messages before they are received.
-
Microsoft .Net Remoting, McLean, Naftel, and Williams, Microsoft Press, 2003
Contains fairly detailed description of the remoting channel model and its use of sinks and formatters.
-
C# Network Programming, Richard Blum, Sybex, 2001
Focus on .Net Sockets classes, socket-based web protocols, e.g., ICMP, SNMP, SMTP, and HTTP. Also contains brief chapters on remoting and active directory.
-
Debugging Applications for Microsoft .NET and Microsoft Windows, John Robbins, Microsoft Press, 2003
Covers MSIL, testing, and debugging in the .Net environment.
-
Essential Guide to Managed Extensions for C++, Challa and Laksberg, Apress, 2002
Written by two developers on the Visual Studio C++ team, does a nice job of covering the use of managed C++ and interoperation between managed and unmanaged C++.
-
.NET Web Services, Keith Ballinger, Addison-Wesley, 2003
Creating web services and web service clients, XML and schemas, XML serialization, SOAP, WSDL, and UDDI.
-
Expert .Net 1.1 Programming, Simon Robinson, APress, 2004
IL, assemblies, garbage collection, performance, generating code at run-time, threading, WMI, security, cryptography
-
Essential ASP.NET, with Examples in C#, Fritz Onion, Addison-Wesley, 2003
Great discussion of Webforms, configuration, the ASP pipeline, data binding, caching, state management, and ASP security.
-
ASP.NET Unleashed, Second Edition, Stephen Walther, SAMS, 2004
Simple introduction to ASP, great breadth of scope, lots of examples. This book is now my primary reference.
-
Microsoft ADO.NET, David Sceppa, Microsoft Press, 2002
Examines ADO details with examples in C# and VB. I use this as a secondary reference.
Other Books about .Net:
-
The C# Programming Language, Anders Hejlsberg, Scott Wiltamuth, Peter Golde, Addison-Wesley, 2004
Covers C# Language as it is now defined and adds a section on the changes coming in the next release of Visual Studio. This includes generics, anonymous functions, iterators, and partial types. Describes the grammar clearly and presents a nicely balanced set of examples.
-
.Net Common Language Runtime Unleashed, Kevin Burton, SAMS, 2002
Interop, resource management, threading, networking, security, reflection, debugging, and profiling.
-
Programming Microsoft Windows with C#, Charles Petzold, Microsoft Press, 2002.
Demonstrates how to do a lot of the things, that MFC does, in a simpler, clearer way, using WinForms. Exceptionally lucid presentation. We used this book for Advanced Windows Programming last summer.
-
C# In A Nutshell, Peter Drayton, et. al., O’Reilly, 2002
Nice reference for the C# language and a lot of the .Net Framework. Discusses the most important .Net System Libraries and their Types. Not many examples.
-
Understanding .Net, David Chappell, Addison Wesley, 2002
Excellent introduction to the .Net technologies. Almost no code, but very clear descriptions of the various pieces.
-
Professional C#, 2nd Edition, Robinson, et. al., Wrox Press, 2002
Discusses C#, some of the Framework classes, using Visual Studio.Net, WinForms, ADO, Win Controls, File and Registry Operations, ASP, Custom Controls, COM+, Web related parts of the Framework, .Net Remoting, and .Net Security. Lots of material with a reasonable amount of sample code in C#.
-
GDI+ Programming: Creating Custom Controls Using C#, Eric White, Wrox Press, 2002
Good reference for building custom GUI widgets. We will use this as a reference for CSE775 - Distributed Objects this spring.
-
Professional Windows Forms, Jason Bell, et. al., Wrox Press, 2001
A typical Wrox book, lots of good information, not always presented in the most graceful manner.
-
ASP.NET Website Programming, Bellinaso and Hoffman, Wrox Press, 2002
New book that I've just begun to look at. Looks like a good step-by-step tour of the construction of a major website, with lots of tools.
-
Developing Applications with Visual Studio.Net, Richard Grimes, Addison Wesley, 2002
A very detailed look at some of the most interesting .Net technologies. There is detail here that you just can’t find anywhere else. It is by no means complete coverage however.
-
Applied Microsoft .Net Framework Programming, Jeffrey Richter, Microsoft Press, 2002
Clear presentation of the Common Language Runtime (CLR) core of the .Net Framework. Does not discuss remoting or web services except in the introduction.
-
C# Web Services, Ashish Banerjee, et. al., Wrox Press, 2001
This was my first reference for Web Services. Well written with some interesting ideas.
-
C# Programmer's Reference, Grant Palmer, Wrox Press, 2002
A clear, and fairly complete tour of the C# language. A good reference to keep at your desk, after you have read the Prosise book, above.
-
C# and the .Net Platform, Andrew Troelsen, Apress, 2001
Clear discussions of C#, WinForms, Active Data Objects (ADO) and Active Server Pages (ASP) as they now appear in the .Net platform
-
C# .Net Web Developer’s Guide, Adrian Turtschi, et. al., Syngress Publishing Inc., 2002
A relatively simple introduction to most of the most useful Web related .Net technologies.
-
Professional .Net Framework, Hoffman, et. al., Wrox Press, 2001
Discusses CLR, System Namespace, .Net Components and Controls, ADO and XML classes, Web Services, .Net Remoting. Lots of material with a reasonable amount of sample code in C#. One interesting example is the use of “managed” and “unmanaged” C++ in the same program (pgs 88-91).
-
Microsoft Visual C# .Net, Step by Step, John Sharp and Jon Nagger, Microsoft Press, 2002
Covers C#, WinForms, ADO, ASP, WebForms, and XML Web Services. Its main attribute is that the examples are short, simple, and very detailed, in that you get explicit directions for every step, including the use of Visual Studio IDE features to create working demonstrations. This book is very similar in design and intent to “Practical Visual C++ 6.0”, by Bates and Tompkins, Que which I have put in the library for reference during the Advanced Windows Programming course.
-
Professonal ASP.Net, Anderson et. al., Wrox Press, 2001
Very thorough coverage of ASP.
-
ASP.NET, Web Developer’s Guide, Mesbah Ahmed, et. al., Syngress Publishing Inc., 2002
Seems to have a good mix of topic coverage, small examples, and a larger continuing example.
-
ASP.NET: Tips, Tutorials, and Code, Scott Mitchell, et. al., SAMS, 2002
Covers lots of server-side programming techniques, including some details I haven’t found elsewhere.
-
C# Essentials, Ben Albabari, et. al., O’Reilly, 2002
Two of the authors are also authors of the C# in a Nutshell book. Presents material in less condensed fashion than the Nutshell book, but has about the same coverage of C# and much less of the Framework.
-
Host Secure, Lightweight Client-Side Controls in Microsoft Internet Explorer, Jay Allen, MSDN, February 2001
Discusses using .Net controls in web-pages, a topic not discussed anywhere else that I can find.
C++ Programming Language Toolkit:
If you are working every day with C++, then the following will be essential parts of your toolkit.-
The C++ Programming Lanaguage, Bajarne Stroustrup, Addison Wesley, 1997
We use this book as our first required reference for CSE687-Object Oriented Design. This is not a great tutorial book, but, it is simply the best general reference on the C++ language there is. If you continue on with C++ you will grow to appreciate the book more and more. It is always my first, and often my last place to look for answers about the language and how to use it.
-
The C++ Standard Library, Nicolai Josuttis, Addison-Wesley, 1999
The best general coverage of the Standard Library. We use this as the second required text in CSE687 - Object Oriented Design.
-
C++ Coding Standards, Herb Sutter, Andrei Alexandrescu, Addison-Wesley, 2005
Outstanding book devoted to managing the complexity of C++ through thoughtful design idioms and recommended strategies. Any book by either of these authors will be worth your time. This one is essential reading.
-
C++ Gotchas, Avoiding Common Problems in Coding and Design, Stephen Dewhurst,
Addison-Wesley, 2003
Dewhurst was one of my favorite columnists (C/C++ User's Journal) and this is a useful reference to read, then keep by your desk. It covers many of the same topics, in a somewhat different way, as C++ Coding Standards, above.
-
Effective STL, Scott Meyers, Addison-Wesley, 2002
Great introduction to the right mindset to use with the STL. Has lots of tips and instructions for daily use of this powerful library.
-
The Design and Evolution of the C++ Language, Bjarne Stroustrup, Addison-Wesley, 1994
By far the best written of his books, it explains the reasons why he made the choices for C++ that he did. Your perspective will mature a lot as you digest this book.
-
Modern C++ Design, Andre Alexandrescu, Addison-Wesley, 2001
Alexandrescu is just smarter than the rest of us. He does high magic in this book – all focused on templates.
-
Imperfect C++, Matthew Wilson, Addison-Wesley, 2005
A constructive criticizm with practical solutions. Some interesting ideas here.
-
Exceptional C++, Herb Sutter, Addison-Wesley, 2000
Lot’s of good design ideas here.
-
More Exceptional C++, Herb Sutter, Addison-Wesley, 2002
More good design ideas here.
-
Exceptional C++ Style, Herb Sutter, Addison-Wesley, 2005
Generic programming, exception safety, class design, resource management, efficiency, Pitfalls, and Case Studies.
-
Effective C++, Scott Meyers, Addison-Wesley, 2nd Edition, 1998
Provides design guidelines for using C++ effectively.
-
More Effective C++, Scott Meyers, Addison-Wesley, 1996
More of the same.
Other Books about the C++ Programming Language:
-
C++ Primer Plus, Third Edition, Stephen Prata, Waite Group, 1998
Large, thorough coverage of the C++ Language with lots of small examples. I put this book on reserve in the SciTech Library when I'm teaching CSE687 - Object Oriented Design. Recommended supplement if you find the primary class text too hard.
-
Accelerated C++, Andrew Koenig, Barbara Moo, Addison-Wesley, 2000
Good beginner’s book.
-
C++ Templates, the Complete Guide, Vandevoorde and Josuttis, Addison-Wesley, 2003
An excellent book to sharpen your C++ template skills after finishing CSE687.
-
C++ Complete: A Reference and Tutorial to the Proposed C++ Standard, Wiley, 1994
Contains a very nice condensed description of the language grammar using syntax diagrams and well planned discourse.
-
Large Scale C++ Software Design, John Lakos, Addison-Wesley, 1996
Addresses the issues we talked about in the Design Principles Notes.
-
Essential Guide to Managed Extensions for C++, Challa and Laksberg, Apress, 2002
Written by two developers on the Visual Studio C++ team, does a nice job of covering the use of managed C++ and interoperation between managed and unmanaged C++.
Books on Windows Programming:
-
Windows Forms Programming in C#, Chris Sells, Addison-Wesley, 2004,
ISBN 0-321-11620-8
This is the primary text for CSE778 - Advanced Windows Programming. It's an extraordinary book. Because getting started with WinForms is easy, we tend to think that we know most of what there is to know about the topic. Not so! Chris Sells has provided an exceptionally readable account of a lot of details that are useful, often necessary, and help you make very professional looking and operating user interfaces. If you don't have a copy, go get one.
-
Programming Windows with C#, Charles Petzold, Microsoft Press, 2002
Coverage: Visual C#, ver 7.0, a.k.a. .Net, using WinForms.
This was our main text for CSE778 - Advanced Windows Programming last year, and is an excellent text. Very clearly written. Goes into micro-detail about many, many WinForm programming issues. -
Programming Windows with MFC, Jeff Prosise, Microsoft Press, 1999
Coverage: Visual C++, ver 6.0, using MFC.
This is our secondary text for CSE778 - Advanced Windows Programming. Very clearly written. This is, by far, the best book I've seen on MFC programming. -
Practical Visual C++, Bates and Tompkins, Que Press, 1999
Coverage: Visual C++, ver 6.0, using MFC.
This is a really good recipe book, e.g., it has clear instructions with screen shots showing you how to do all the typical MFC things and some not so typical as well. -
Beginning MFC COM Programming, Julian Templeman, WROX Press, 1997.
This is a very well written book that addresses just what it says it does, the support provided by MFC for creating and using COM objects with MFC programs. It is now out of print, but I've seen it advertised by a few booksellers, so you may want to order a copy right away if you expect to be doing MFC programming.
-
The MFC Answer Book, Eugene Kain, Addison-Wesley, 1998
Coverage: Visual C++, ver 6.0, using MFC.
Explores the Document/View Architecture, managing Documents and Files, Views, Splitter Windows, Dialog Boxes and Property Sheets, Toolbars, Menus, and Printing, all in a question and Answer format. Has information you are not likely to find elsewhere.
Books on COM, COM/.Net Interoperability, and Components:
-
COM and COM+ Primer, Alan Gordon, Prentice Hall, 2000
We use this book this year for CSE775 - Distributed Objects. It is a very well written book that walks you through the process of implementing and building COM components in a very clear manner. The material on COM+ is also relevant for .Net. This is one of two texts we use in CSE775 - Distributed Objects.
-
Programming Microsoft Internet Exlorer 5, Scott Roberts, Microsoft Press, 1999.
One of the very few resources that discusses the IE programming model. IE exposes a number of COM interfaces that support the programmatic use of the Explorer control, which you may wish to embed in a WinForm, or use through the MFC HTMLview class. The book is getting out of date, but is very clearly written and will be valuable as long as IE implementation is based on COM (I would not be surprised to see a .Net-based implementation with the next release of Windows.
-
Programming .Net Components, Juval Lowy, O'Reilly, 2003.
A clearly written account of the component model and how it is implemented in .Net. Some comparisons with COM as well.
-
COM and .Net Component Services, Juval Lowy, O'Reilly, 2001.
A clearly written description of component services provided by COM+. Contains a brief chapter on using COM+ services from managed code.
-
The .NET and COM Interoperability Handbook, Alan Gordon, Prentice-Hall, 2003
A readable, pragmatic, and useful book on COM in the .Net Environment. I have put Alan Gordon's earlier book, The COM and COM+ Programming Primer, in the Science and Technology Library this semester. This book is as well written as the reference book - see the citation below.
-
.NET and COM, The Complete Interoperability Guide, Adam Nathan, Sams, 2002
A very detailed book, written by a member of the Microsoft Development team. Contains the best description I've seen of getting events to work across COM managed code boundaries. Covered in Chaps 5, 6, 14, and 19.
-
COM Programming with Microsoft .Net, Templeman and Mueller, Microsoft Press, 2003
This is the first book I have seen that discusses, in any detail, ATL 7.0 Attributed Programming. I expect to use this text frequently.
-
ATL Internals, Brent Rector and Chris Sells, Addison Wesley, 1999.
Best book around on ATL 3.0. I hope there will be an edition for ATL 7.0.
-
Inside Distributed COM, Guy Eddon and Henry Eddon, Microsoft Press, 1998
This is an excellent book for developers new to COM. It has, by far, the best collection of example code, sensibly organized and accessible, of any other COM oriented text I've read. We used the book for two years for CSE775 - Distributed Objects.
-
Essential IDL, Martin Gudgin, Addison Wesley, 2001
One of only two books I know of devoted to Interface Definition Language (IDL). It is an excellent book, clearly written and containing virtually everything you might ever need to understand about IDL.
-
Understanding COM+, David S. Platt, Microsoft Press, 1999
An excellent overview of the COM technologies, in the style of David Chappell’s books.
-
Developing Applications with Visual Studio.Net, Richard Grimes, Addison Wesley, 2002
A very detailed look at some of the most interesting .Net technologies and some discussion of building and using COM components in a .Net environment. There is detail here that you just can’t find anywhere else. It is by no means complete coverage however.
Web Programming:
Note: All of the books on ASP and Web Services, in the .Net section, above, also fit into this category, but most citations have not been duplicated here.-
Programming Microsoft .Net, Jeff Prosise, Microsoft Press, 2002
Very readable introduction to ASP, ADO, XML and Web Services on the .Net platform. This is the text we use for CSE686. Includes a discussion of Client Callbacks, e.g., AJAX, a technology for updating data on a page without posting back a whole page.
-
Pro Asp.Net 3.5 in C# 2008, Second Edition, MacDonald and Szpuszta, Apress, 2007
Very complete, with lots of discussion and quite a few examples. I'm thinking about using this for CSE686 - Internet Programming this year.
-
Essential ASP.NET with Examples in C#, Fritz Onion, Addison-Wesley, 2003
Deep coverage of the ASP programming model and its roots in the .Net FrameWork Class Library. Quite a few straight-forward examples are presented with the text.
-
Professional XML, Didier Martin, et. al., Wrox Press, 2000
Most of what you need to know about XML can be found here.
-
XSLT Programmer's Reference, 2nd Edition, Michael Kay, Wrox Press, 2001
Great - the one book to buy on XSLT. Using XSLT to generate HTML from XML is a very effective way to build a web site. That's what I did when I totally revised my web site at SU, of which this page is a part.
-
DOM Scripting, Jeremy Keith, Apress, 2005
Discusses designs using Javascript and CSS via the W3C Document Object Model. I will use material from this book for examples in CSE686 - Internet Programming.
-
Bulletproof Web Design, Dan Cederholm, New Riders, 2006
Discusses developing XHTML structures and CSS styles for navigation and page layout in a way that is robust in the presence of design changes and supports accessibility. Highly recommended.
-
The Zen of CSS design, Shea and Holzschlag, New Riders, 2005
Focus on using CSS to accomplish specific design affects. The first chapter provides an interesting discussion of how CSSZenGarden.com was structured to support presentation of many different design concepts.
-
Murach's SQL for SQL Server, Bryan Syverson, Mike Murack & Associates, 2002,
ISBN: 1-890774-16-2
Very clear and detailed discussion of each of the SQL Commands, stored procedures, transactions, and locks, with good examples. Brief introduction to db design.
-
Relational Database Design, 2nd Edition, Jan Harrington, Morgan Kaufmann, 2002
Clear discussion of the relational model, normalization, and joins, with several case studies.
-
Dynamic HTML, The Definitive Reference, 2nd Edition, Danny Goodman, O'Reilly, 2002
My primary source for DHTML information.
-
Cascading Style Sheets, The Definitive Guide, Eric Meyer, O'Reilly, 2000
My primary source of information about CSS. I used XML, XSLT, and CSS on every page of my web site at SU.
-
Inside Dynamic HTML, Scott Isaacs, Microsoft Press, 1997
A very knowledgeable treatment of HTML and JavaScript, especially from the Microsoft point of view. Now a little out of date – written at the time of Internet Explorer 4 – but still a great source of information and reusable code.
-
Programming Internet Explorer 5, Scott Roberts, Microsoft Press, 1999
Detailed look at the COM structure underlying IE 5.0, it provides a great source of information for including the Microsoft Browser control in your applications.
-
XHTML Black Book, Steven Holzner, Coriolis Group, 2000
Covers HTML 4.01 and XHTML. This book has a lot of examples and covers most of the important topics.
Mathematics and Computer Graphics:
- Articles and columns from American Scientist
-
Algorithms in C++, 3rd Edition, Parts 1-4, Fundaments, Data Structures, Sorting,
Searching, Robert Sedgewick, Addison-Wesley, 1998
Clear, simple, graceful exposition of Algorithms and Data Structures.
-
Algorithms in C, 3rd Edition, Part 5, Graph Algorithms, Robert Sedgewick,
Addison-Wesley, 1998
Clear, simple, graceful exposition of graphs and graph algorithms.
-
Introduction to Algorithms, Corman, Leiserson, Rivest, Stein, MIT Press, 2001
Nearly ideal description of data structures, sorting, optimization, graph algorithms, and other selected topics, along with a decent introduction to complexity analysis. Highly recommended.
-
Linear and Nonlinear Programming, David Luenberger, Addison-Wesley, 1984.
A wonderfully lucid presentation of basic and some quite advanced optimization processes. There are perhaps half a dozen books that I would love to have written. Luenberger wrote three of them.
-
The Algorithm Design Manual, Steven Skiena, Springer/Telos, 1998
This book is an encyclopedic listing of algorithms from the linear algebra, graphs, combinatorics areas. It provides advice about usage, cautions, and links to many implementations. Note that it provides few implementations itself.
-
Linear Algebra and its Applications, Gilbert Strang, Academic Press, 1976
Simple exposition about a topic indispensible for computer graphics. This book provides the basics in a simple and clear way. You will need other references to complete your background in this area (see below).
- Prof. Strang's lectures on Linear Algebra
These are terrific video tapes of his lectures to undergraduates at MIT. - Great links from Prof. Strang's web site
Look toward the bottom of the page. -
3D Game Engine Design, David Eberly, Morgan Kaufmann, 2001
Don't even open the cover until you are comfortable with the material in Strang, above.
-
Computer Graphics, Principles and Practice, Foley et al., Addison-Wesley, 1996
A standard text, used in many graduate programs for Computer Graphics courses.
-
Cooperative Association for Internet Data Analysis: Walrus Page
Computational methods in Bioinformatics
- An Introduction to Bioinformatics Algorithms by Neil C. Jones (Author), Pavel A. Pevzner, MIT Press, ISBN: 0262101068
- Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids by Richard Durbin, Sean R. Eddy, Anders Krogh, Graeme Mitchison, Cambridge University Press, ISBN: 0521629713, 1997
- Introduction to Computational Biology: Maps, Sequences and Genomes by Michael S. Waterman, published by Chapman & Hall/CRC, ISBN: 0412993910, 1995
- Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology by Dan Gusfield, Cambridge University Press, ISBN: 0521585198, 1997
Security
- .Net Developer's guide to Windows Security, Keith Brown, Addison-Wesley, 2003On-line version, appears to be very thorough and well written
-
Programming .Net Components, Juval Lowy, O'Reilly, 2003.
A clearly written account of the component model and how it is implemented in .Net. Some comparisons with COM as well. The book ends with a very well written chapter on .Net security with example code and configuration files.
-
COM and .Net Component Services, Juval Lowy, O'Reilly, 2001.
A clearly written description of component services provided by COM+. Contains a brief chapter on using COM+ services from managed code. The book has a chapter devoted to COM+ security.
-
Programming Microsoft .Net, Jeff Prosise, Microsoft Press, 2002
Covers .Net types, WinForm programming, ASP, XML, and Remoting. We use Parts I and III for CSE681 - Software Modeling and Analysis and Part II for CSE686 - Internet Programming. The book contains a very nice chapter on ASP security.
- Understanding .Net Code Access Security
- Secure Architecture Design Methodologies
- Insight into Security Model using Principal and Identity Objects in .Net
- NT Security Classes for .Net