Jeff Prosise's Blog

Announcing MyComix

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 http://mycomix.wintellect.com.

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 http://mycomix.wintellect.com 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.

On Apr 9 2007 4:01 AMBy jprosise With 16 Comments

Comments (16)

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

    Cheers

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

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

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

  5. 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?

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

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

  8. http://uk-medicines.com/soma-online-pharmacy.html soma online pharmacy
    http://uk-medicines.com/carisoprodol-generic-soma.html carisoprodol generic soma
    http://medicines-uk.com/order-cialis-online.html order cialis online
    http://medicines-uk.com/generic-cialis-no-perscription.html generic cialis no perscription
    http://cialis-online-buy.com buy cheap cialis
    http://pills-uk.com viagra pharmacy
    http://uk-medicines.com buy cheap soma online
    http://medicines-uk.com buy cheap cialis
    http://medviagra-x.com
    http://medcialis-x.com

  9. http://www.jsoftsj.com
    http://www.jsoftsj.com/category-5-internet.html
    http://www.jsoftsj.com/category-11-Browser.html
    http://www.jsoftsj.com/category-9-messenger-chat-msn.html
    http://www.jsoftsj.com/category-14-internet-optimization-softwares.html
    http://www.jsoftsj.com/category-21-Email.html
    http://www.jsoftsj.com/category-17-webmaster-web-links.html
    http://www.jsoftsj.com/category-8-Downloaders.html
    http://www.jsoftsj.com/category-13-Tv.html
    http://www.jsoftsj.com/category-6-Network.html
    http://www.jsoftsj.com/category-22-Flash-Swish.html
    http://www.jsoftsj.com/category-12-WebCam-camera.html
    http://www.jsoftsj.com/category-3-Antivirus.html

  10. 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!

Leave a Comment