what is Outermost?   products    services    site portfolio    help desk    webmail    contact us  
advanced internet software 


Microsoft Partner Program
Outermost Software, LLC has submitted two applications for qualification for the Microsoft Partner Empower Program.
1) The Online Learning Center
The Online Learning Center is an online medical education portal that we developed for Philips Medical Systems. It has been open for five years. We recently completed conversion of the site to Microsoft's ASP.NET 2.0 platform. Medical Imaging technologists can register on the site to purchase and complete courses on Medical Imaging topics for ongoing education CEU's.
It uses the following technologies:
  • Windows Server 2003
  • SQL Server 2000
  • ASP.NET


2) Renzulli Learning
Renzulli Learning is an initiative that provides learning enrichment to talented and gifted children. It provides profiling, enrichment, project faciliatation, and assessment. It is being marketed to school systems and the company for which Outermost Software developed the site has passed the $1 million yearly sales mark. Companies interested in obtaining subscriptions to the site can contact sales@renzullilearning.com.
It uses the following technologies:
  • Windows Server 2003
  • SQL Server 2000
  • ASP.NET


Press Release
Outermost Software, LLC was selected as the developer to support the following alliance between Philips Medical Systems, and the Amercian Sociaty of Radiological Technicians. We are proud to be able to provide the enabling technology for this alliance:

Philips and American Society of Radiologic Technologists Form Partnership to enhance educational opportunities in Medical Imaging

Industry leaders will use the advanced Philips Online Learning Center to provide continuing education (CE) for ASRT members.

Please click here to view this press release.

Philips Online Learning CD
Users who want to be able to take their courses without being connected to the Internet can order course offerings on CD. After studying the course material from the CD, the user then goes online to take the test at the end of the course. Outermost designed and built the technology that allows the course content to be burned to CD. The challenges were two-fold: 1) Convert server and database content to a format that could be read locally 2) Create security controls to ensure that the person buying the CD is the one taking the test, and none other.

Please click here to view our portfolio.

Outermost's e-Learning Initiative
My partner and I completed work on a large site and made it live (it is The Online Learning Center, an eLearning site for the medical imaging community). This caps a year of innovation and discovery for us as we made the transition, in a big way, to Microsoft's .Net platform for Web development. Along the way we completed changed the way we build and implement web-based applications.

Here are some of the techniques and methods that we employ:

  • Compiled code: This site is completely written in the new C# language, a compiled language that uses the .Net runtime environment. Compiled code runs much faster, and also prevents theft of our intellectual property, the source code. The live site only contains page skeletons, and one dll containing all the compiled object code. That way, no matter how many times the code is licensed and/or hosted elsewhere, the source code stays safely here, at Outermost Software.
  • Template architecture: The visual look and feel of the site is contained in only two template files, one for logged-in sessions, the other for pre-login sessions. Properties within the templates allow us to modify various items within the headers and menus at runtime. The use of templates allows us to reskin the site with a different look by only touching two source code files. All the pages in the site then automatically inherit the graphic skin.
  • Complete content management: While content management has been our practice in the past, in this site we took it to new levels. Managers and authors create all the content on the site, including front page alert boxes and customized notices. Authors and managers input text into our new WYSIWYG edit boxes which allow easy input of graphical content, including drag-and-drop placement of uploaded images.
  • Configuration files: The site uses configuration files for all setup location. This includes database connection strings, file locations, and the like. This gives us the capability of moving the site to another machine, connecting to a different database server, OR switching to a different url without changing a line of code. We change change the settings in the config file, and away we go.
  • Web Services: We used the emerging technology of web services for the discussion group feature on the site. We maintain a private site that has the code and database for the discussion groups, which then communicates with the public web site using the SOAP protocol. This will allow us to include discussion groups in any new site we implement without copying a lot of code and creating duplicate database setups. All we do is assign the new site a new Site ID (in the Config file, of course!) and away we go! I intend to use Web Services more extensively in new systems as we go forward.
  • User session information stored in database: Instead of forcing cookies back the the user's browser, we use special database tables to save session state. This means that our system will not be defeated by users who turn off cookies, or hackers who use forged cookies to gain access to systems. Also, by saving session in the database, we can easily switch to a load-balanced web farm architecture should usage on our sites demand it. This is because, no matter which web server the user accesses, their session information is kept in one place.
  • Use of serializing techniques for shopping cart: Similar to session state, the user's shopping cart is also stored in the database. While this is common practice, in our new system the shopping cart, programmatically, is an object (the orderform) that contains many objects (the items to be purchased). We serialize this object and the objects it contains into a binary format that means that saving and restoring it are extremely efficient, and the completed orderform can be saved in the user's receipt records in the database in a minimum amount of storage. This also allows the user's cart to persist from session to session until the user finally makes the purchase (unlike most Ecommerce systems where the cart goes away when the user's session ends).
  • Object oriented programming:While object-oriented programming is the norm in most non-Web programming systems, the world of Web programming has been notoriously free-form. The use of C# and .Net allows us to move closer to a true object orientation in our programming. The benefits of this are 1) Code re-use - we don't have to rewrite or copy-and-paste commonly used routines. 2) Code stability - a debugged object is more reliable than code that is written fresh each time 3) Object inheritance, which makes possible things like our template system 4) Clear functionality - with objects, a page's functionality is clearly arranged and easy to modify.
  • Spawning background processes: There are certain functions in our private Manager pages that take a great deal of processing. For example, the manager might want to have the system send an e-mail notice to every registered user on the site. In the past this was cumbersome, due to the fact that the manager's screen would go blank and he or she would have to wait for the process to complete. Also, such processes were notoriously prone to time-outs, due to built-in inactivity timers. In the new system, a separate process is launched that runs in the background. The manager can continue on with their work. An e-mail notice is generated and sent to the manager when their job completes.
  • E-mail for error notification While god forbid there should be any errors in the system, the reality is that all systems contain bugs or encounter error conditions along the way. We have implemented an object-oriented style of error-trapping so that system errors encountered by users are silently and invisibly emailed to us, the developers, for analysis, along with the user's session information. This should allow faster response to problem conditions. The good news is that, so far, this hasn't happened yet, so the system must be humming along smoothly!

With these and a number of other new techniques (like .Net's DataGrid, a true wonder), we are programming and developing in ways completely different from our previous systems. It positions us well for future projects. I also have  several projects on the drawing boards including:

  • Customer Service Application: I will be building an application for customer service based around the idea of a Service Ticket. This system will allow we and our customers to enter service requests, trouble reports, and the like into a Ticket database that will allow easy, systematic tracking of the opening, working, and resolution of all Service issues. It will be Web Service based to allow for a common application across many different sites and customers.
  • Web Service-based ECommerce Currently we host separate storefronts for each ECommerce application. My plan (for which I laid the foundation in the eLearning site) is to implement a common web service architecture for eCommerce (similar to PayPal or Verisign) so that many sites can use the same common eCommerce functions, invisibly to each other.
  • Chat function: One of the innovations of our new site is the use of live chat (aka Instant Messaging) for customer support. We licensed a Java chat application to do this. However, in the future I would like to replace this with my own .Net-based chat application for tighter control over the look-and-feel, and easier integration into the rest of our architecture.