Announcing MyComix

16 Comments April 9, 2007

For a couple of years now, I've been showing an ASP.NET 2.0 sample app named MyComix to conference audiences and promising that I would make it available for downloading. I finally found the time to clean up the source code, and the app is now live and available for downloading at

MyComix is, first and foremost, a sample app that shows off some of the best features of ASP.NET 2.0 (membership, role management, profile-based personalization, declarative data access, and so on). But it's also a real app that I use to catalog my comic book collection. The home page pictured below lets you choose comic book titles from a drop-down list or search the database. (As an example, type "Ditko" into the search box and click the Search button.) You can choose from three different view types--thumbnail, list, and table--and you can click a cover image to zoom in for a close-up.

MyComix Home Page 

MyComix features a secure back-end admin interface (see below) that you'll only see if you download the app and run it locally. The admin interface includes pages for adding and editing comics, viewing duplicates and lowest-graded comics, and even for building private want lists, which are stored using the ASP.NET 2.0 profile system. To see the admin pages, you log in using the "Login" link near the bottom of the page. I won't publish the administrative login info because I don't want people altering the database. But when running the app locally, you can set up your own admin account and view the admin pages.

MyComix Admin Interface 

To download the source code, go to and click the "Download" link at the bottom of the page. You'll receive a 2 MB zip file containing the site's source code and a starter database to go with it. (The starter database contains five comics. More importantly, it contains all the stored procs that the app uses to interact with the database, and, of course, it contains the database schema.) Unzip the file into the folder of your choice and use Visual Studio's "Open Web Site" command to open it as a Web site. The app's App_Data folder contains the database backup, which is named MyComixDB.bak. To recreate the database, create a database named MyComix in SQL Server 2005 and restore the database from the BAK file. Then open the database with SQL Server Management Studio and give the account that you run ASP.NET as (e.g., ASPNET or Network Service if you host the app in IIS, or your own account if you run the app in Visual Studio's ASP.NET Development Server) permission to execute the database's stored procedures.

Before running the app, you'll also need to configure ASP.NET's provider database. If you haven't already, run ASP.NET's aspnet_regsql.exe utility to create the aspnetdb database. MyComix uses this database to store membership data, role data, and profile data. If you prefer to use SQL Server Express to store the data, you can modify the connection strings in Web.config.

To create an admin account, use Visual Studio's ASP.NET Configuration command to launch the Web Site Administration Tool. Create a new user, complete with user name and password. Then create a role named "Administrator" and add the user to the role. Test the account by launching the app and logging in using the new account. If it works, an Admin tab will appear in the upper left corner of the page. Click the Admin tab to display the back-end admin interface.

MyComix is a straight-up ASP.NET 2.0 app; it doesn't use ASP.NET AJAX. In the future, I'll probably add AJAX capabilities to it, and there's a good chance I'll even incorporate WPF/E into it. But in its current form, it's a pretty decent example of the kinds of things you can do by relying only on the features of ASP.NET.

Have fun browsing my comic book collection! The short story behind it is that as a kid in the 1960s, I bought a lot of  comics, primarily DC and Marvel. I sold my collection when I was in college, but in recent years I've gone back and rebuilt most of that collection. (Isn't eBay great?) I have a nice run of Spider-Man comics, for example, that almost exactly mirrors the run I purchased at the local drug store when I was a kid. I still get chills when I see the covers of Spider-Man #55, Fantastic Four #71, and Detective Comics #353, which were, as near as I can recall, the first three comics I ever bought. I still add to the collection, usually at a rate of 4 or 5 per month, so check back from time to time to see the latest additions. There's no built-in way to view the newest entries in the database, but one of the many features on my wish list is a "Latest Additions" page which showcases the newest entries. When I update the source code with new features, I'll post notifications in this blog.


  • Gravatar Image
    JP April 9, 2007 11:06 AM

    Cool site and app. Thanks for sharing. I did not download but am curious if you decided to store the images in or out of the db and why.


  • Gravatar Image
    jprosise April 9, 2007 11:22 AM

    The images are stored in the DB. The main reason is that I wanted to demonstrate the proper way to fetch images from a database in an ASP.NET app (using a caching HTTP handler), and also how to do things like upload images, store them in a DB, and programmatically generate thumbnails.

    Storing the images in the file system would nominally be faster, but it would also reduce the value of MyComix as a best-practices app. I say "nominally" because I cache the cover images in the ASP.NET application cache. If you load tested the site, you might find that the strategy of storing images in the DB but aggressively caching them in memory is actually faster than storing them in the file system.

  • Gravatar Image
    Ricardo Calejo April 9, 2007 2:20 PM

  • Gravatar Image
    Jimmy Daresta April 13, 2007 7:54 AM

    I remember you showing early stages of this at UnumProvident years ago. Looking forward to using it with my X-Men comic collection.

    I am Batman! Rainbow Batman that is.

  • Gravatar Image
    jprosise April 13, 2007 12:58 PM

    Yep! It's come a long way since I showed it in Chattanooga. Gee, this thing has been under development longer than I thought...

  • Gravatar Image
    Edith Russo May 2, 2007 11:51 AM

    Did you scan all your images? My husband has over 50 long boxes he wants to inventory and I was thinking of building an app to do that. Now I don't have to! What's your method of input? Is there a bar code reader that could simplify?

  • Gravatar Image
    jprosise May 20, 2007 8:47 AM

    Yep, I scan them. I reduce each scan to 512 pixels wide and then upload them to the database from the Add Comic page. MyComix automatically generates thumbnails from the scans you upload.

  • Gravatar Image
    Mike Harsh's Blog May 22, 2007 11:09 AM

    Jeff has been working to build an ASP.NET 2.0 sample app to search and index comic books called MyComix.

  • Gravatar Image
    sam June 30, 2007 3:30 AM

    when i build this source code, there is a build an error, saying "ErrorCould not load file or assembly 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.D:\My Projects\MyComix\web.config 23". Could you help me solve it?

  • Gravatar Image
    rikiten December 20, 2007 6:23 AM soma online pharmacy carisoprodol generic soma order cialis online generic cialis no perscription buy cheap cialis viagra pharmacy buy cheap soma online buy cheap cialis

  • Gravatar Image
    jsoftsj January 12, 2008 4:08 PM

  • Gravatar Image January 17, 2008 4:54 PM

  • Gravatar Image
    Mirrored Blogs February 20, 2008 2:53 AM

    Jeff has been working to build an ASP.NET 2.0 sample app to search and index comic books called MyComix

  • Gravatar Image
    Kamagra April 13, 2009 1:10 PM

    Thanks for the info.

  • Gravatar Image
    Microsoft Weblogs May 22, 2012 6:39 PM

    Jeff has been working to build an ASP.NET 2.0 sample app to search and index comic books called MyComix

  • Gravatar Image
    LORRIANE October 18, 2013 10:55 PM

    Hey there would you mind letting me know which web host you're working with? I've loaded your blog in 3 different internet browsers and I must say this blog loads a lot quicker then most. Can you recommend a good hosting provider at a fair price? Cheers, I appreciate it!

Have a Comment?