Archives

Archives / 2008 / October
  • Bringing TallComponents TallPDF, Microsoft ASP.NET Ajax, Amazon S3, and several other technologies together into Instant Church Directory Online

    We recently finished developing and releasing the online version of our Church Photo Directory Software, Instant Church Directory. The idea behind Instant Chclip_image001urch Directory Online is to provide a user interface where you can easily create and update a PDF photo directory for all of your church members. We also took it one step further and include hosting the PDF for you.

    Instant Church Directory came together very nicely over the past 4 months and everyone at Communication Resources did an awesome job designing and building the ASP.NET application. I am always interested in how an application of this scale is put together, so below are some of the technologies that power Instant Church Directory Online:

    Amazon Simple Storage Service (Amazon S3) - http://aws.amazon.com/s3/
    One of the technical design challenges that we knew we had to overcome was hosting and distribution of the church directory PDFs. We could have stored the PDF on our own servers but the costs for storage and bandwidth quickly would have gone out of control. With Amazon S3 we get pretty cheap hosting rates and the additional scalability and reliability features that Amazon uses to power its own websites. It was pretty easy to integrate Amazon S3 into our application and we used this Amazon S3 C# library by Affirma Consulting to help us out.

    TallComponents TallPdf - http://www.tallcomponents.comclip_image002
    Instant Church Directory on CD (the WinForms version of the product) also used TallComponents TallPDF component to generate the church directory PDF file and we took that technology and ported it to our online church directory engine. One of the great features of TallPDF is the ability to stream the PDF to a file through events (pull generation). This is necessary because with all of the pictures that will get included in each church directory PDF document, we could not store the entire PDF file in memory while creating it. So we use the event driven generation method to write each page of the PDF directory to a file as we are creating it. This gets it out of memory and into a file.

    One other thing about TallComponents is their great customer support and fast response times. Asking a question or needing technical help gets a fast response from their ticketing system but also if you find a bug, it will get included in a new build within a couple of weeks. I also love the way they expose all of the feature changes for each version.

    SWFUpload - http://www.swfupload.org

    We wanted the Flickr image upload experience and so we used this SWFUpload component to give us that look and feel. SWFUpload creates a small Flash movie that is used to post one or more images to our website. The capabilities of the Flash movie along with some JavaScript gives us the progress information that we wanted our customers to see as they upload one or more image files. image


    Javascript Image Cropper from http://www.defusion.org.uk/clip_image004
    One of the technical challenges we ran into while designing Instant Church Directory was giving the user the ability to crop the image. We looked into several different technologies and models and in the end the best was the JavaScript cropper developed by Defusion.org.uk. This gave us a very responsive image cropper without a large component download.

    http://www.defusion.org.uk/code/javascript-image-cropper-ui-using-prototype-scriptaculous/

    CruiseControl.Net for automatic builds - http://ccnet.thoughtworks.com/
    This is our first application to fully use an automated build and deployment system and we were thrilled with how this all worked and how much it sped up our deployment process. Hats off to Nimble Software Professionals for setting this up for us and getting us going with automated build and deployment.

    Microsoft ASP.NET Ajax - http://www.asp.net/ajax
    Many of our pages in the Instant Church Directory Online application are Ajax powered and we used Microsoft ASP.NET Ajax to build those pages. We wanted the same smooth transition when switching between individual list items that we had in our WinForms application and the ASP.NET Ajax UpdatePanel control gave us this ability quickly out of the box. I am not an expert with JavaScript so the UpdatePanel is an excellent control to easily get Ajax benefits into your ASP.NET web application.

    aspNetPOP3 by Advanced Intellect - http://www.advancedintellect.com/product.aspx?pop3
    We use the aspNetPOP3 component from Advanced Intellect to POP all of our customer service emails from our Instant Church Directory Mailbox. I highly recommend this component if you need to pull email from a mailbox through POP3 protocol. Also Advanced Intellect has great customer service if you ever have a question or need some development/technical help.

    Orcsweb - http://www.orcsweb.comclip_image005
    We have our servers hosted at Orcsweb and I can't say enough about the service and support of the entire Orcsweb team. Rick Barber, Steve Schofield, Jennifer Kurrus, Fredrick Cumbee, Desirée Harris, James Kehr, Pamela Dean, Jeff Graves, and Scott Forsyth (and others that I just don't see) all do an amazing job supporting us and keeping our servers up and running.

    Camtasia Studio by TechSmith - http://www.techsmith.com/camtasia.asp
    We used Camtasia to record all of our tutorial videos for showing how to use Instant Church Directory Online. Camtasia is an excellent screen recorder that is very easy to use to quickly produce a video. You can check out the tutorials that we created with it here:

    Instant Church Directory Online Tutorials and Demos

    I would love to hear any comments anyone has on the application - there is a 30-day free trial but unfortunately we do not have a demo account available to share.  Or post any comments/questions on any of the technologies above.

    -Jeff
    Chief Architect
    Communication Resources