My Books Have Finally Arrived!

After almost a year of hard work, today was the day: my new ASP.NET book arrived.

About a year ago I started with a rough idea for the book, sketching out some scenarios, testing out concepts, and worked on some rough ideas for the book's structure, code samples and the demo application (now available at

Today, a year after the start of the book, I was greeted by a big box in the hallway when I came home from work; my books had finally arrived. Curious to know what ten copies of Beginning ASP.NET 3.5 look like?? ;-)

My 10 copies of Beginning ASP.NET 3.5

Unlike last time, I don't have any books to give away. All the of them already have a name tag on them, for people who contributed to the book somehow.

Interested in getting your own copy? Check out this page at the Wrox web site, or check out the book at Amazon.


Where to Next?

Wonder where to go next? You can read existing comments below or you can post a comment yourself on this article .

Consider making a donation
Please consider making a donation using PayPal. Your donation helps me to pay the bills so I can keep running Imar.Spaanjaars.Com, providing fresh content as often as possible.

Feedback by Other Visitors of Imar.Spaanjaars.Com

On Thursday, February 28, 2008 12:20:18 AM Tahir Naushad said:
Hi Imar,

Well done. Looking forward to read it.

On Friday, February 29, 2008 5:45:24 AM Vladimir Kelman said:
Congratulations! Considering how well you wrote "Building Layered Web Applications with Microsoft ASP.NET 2.0" article, I would think this book shood be good too.
On Tuesday, March 11, 2008 10:30:02 PM Nicolas said:
Hi Imar,

Good News. I bought your book yesterday on, as well as Professionnal ASP.Net 3.5 written by Bill Evjen, Scott Hanselman & Devin Rader. I don't know how fast they will be delivered, but im looking forward to reading both of them. I'll probably comment on that in a few weeks.

On Wednesday, March 12, 2008 8:41:23 PM Jonathan Green said:
I'm in the middle of learning 2.0. I like the look of PlanetWrox though. Could your example website be implemented with ASP.Net 2 technology?
On Thursday, March 13, 2008 7:01:00 AM Imar Spaanjaars said:
Hi Jonathan,

Visually yes, back-end wise not all of it. The site uses LINQ and other techniques that are not available in .NET 2.0

On Thursday, March 13, 2008 7:02:55 AM Imar Spaanjaars said:
Hi Nicolas,

That's good to hear; have fun with the book.

On Tuesday, April 15, 2008 3:51:07 PM Nicolas said:
Hi Imar,

As i mentioned in my previous post, i bought Beginning ASP.Net 3.5 as well as Professional ASP.Net 3.5. Both books are interesting, particularly yours. Although i'm not really a beginner, i appreciated the clarity of the book and the numerous and very useful tips and tricks.

I didn't read all the books content, but rather focused on subjects of interest to me, like Linq and things related to application design issues. Unfortunately, both books do not give enough place for advanced design patterns scenarios, especially enterprise and business related patterns in conjunction with Linq or other alternatives. Probably, because not each and every subject can be dealt with in a single book.

Actually i'm coding a completely new version of an information system, that i made a few years ago, which offers a range of functionality like CRM, CMS, E-Mailing, Event management & team collaboration tools, Sales, Purchases, Inventory, Payment, Reporting ..etc. The system is organized into separate independent, mostly optional, modules that also need to be able to operate together.

As i was trying to organize my code in a comprehensive manner, my first thought was to try to create one separate DBML file for each module, where every DBML file contains entities specific to the related module as well as a copy of entities shared between modules, only to make sure that foreign keys and associations between tables are handled correctly by the O/R mapper. So i stored the different DBML files in different sub-folders which provided for creating separate namespaces automatically.

The problem is that entities that are shared between different modules are not synchronized and need to be updated manually in each DBML file whenever the related table, that they have in common, is modified in the database.

Although this is not a major problem, it sounds like something is missing in the whole approach. I thought maybe i should look for a solution that decouples the query capability of Linq from its O/R mapping functionality, so that the overhead of using DBML files can be bypassed. But unfortunately there are no entirely working solutions, that i know of, out there. Jose Marcenaro's article on the subject...

... is probably a good beginning for an answer, but yet still incomplete and very experimental.

How would you do to be able to handle such non-trivial application scenarios and still be able to make use of all the niceties that ship with the Linq bundle ?

On Wednesday, April 16, 2008 5:28:29 PM Imar Spaanjaars said:
Hi Nicolas,

It's an interesting challenge, and one that I don't have a final answer for. As you find out, it's an all or nothing scenario. You put all your stuff in one big DBML file, stay in sync but have a huge file that's difficult to work on in a team, or spread things over multiple DBML files and run into synchronization issues at run-time.

Personally, I would store a lot of stuff in a single DBML file. Although it's more difficult to work with during development, it minimizes changes of stale or incorrect data. It's also much easier to relate data within your system without ending up with inconsistent or terribly slow SQL statements.

However, it's a tradeoff between consistency and flexibility (and much more).

Hopefully, the new ADO.NET Entity Framework has a better way of dealing with larger data scenarios.


On Tuesday, July 8, 2008 11:20:33 PM Peter said:
I've bought it today! It looks great!

Thanks for sharing your knowledge, Imar!

Talk Back! Comment on Imar.Spaanjaars.Com

I am interested in what you have to say about this article. Feel free to post any comments, remarks or questions you may have about this article. The Talk Back feature is not meant for technical questions that are not directly related to this article. So, a post like "Hey, can you tell me how I can upload files to a MySQL database in PHP?" is likely to be removed. Also spam and unrealistic job offers will be deleted immediately.

When you post a comment, you have to provide your name and the comment. Your e-mail address is optional and you only need to provide it if you want me to contact you. It will not be displayed along with your comment. I got sick and tired of the comment spam I was receiving, so I have protected this page with a simple calculation exercise. This means that if you want to leave a comment, you'll need to complete the calculation before you hit the Post Comment button.

If you want to object to a comment made by another visitor, be sure to contact me and I'll look into it ASAP. Don't forget to mention the page link, or the QuickDocId of the document.

For more information about the Talk Back feature, check out this news item.