AuctionWorx Enterprise - Developers


We started by developing a solid base framework - FrameWorx is an extensible platform for ecommerce marketplaces with its first incarnation as AuctionWorx.

Technologies
  • ASP.NET 4.5.1
  • Microsoft MVC 5
  • Microsoft WCF
  • SignalR
  • Bootstrap framework
  • jQuery & jQuery UI
  • MS SQL Server

Architechure

Presentation Layer

Microsoft’s Model-View-Controller (MVC) technology greatly enhances development efforts by segregating domain logic from presentation logic and from basic presentation HTML.

  • Complete control over HTML Markup
  • Rich AJAX and jQuery integration
  • SEO-friendly URLs
Business Logic Layer

Microsoft’s Model-View-Controller (MVC) technology greatly enhances development efforts by segregating domain logic from presentation logic and from basic presentation HTML.

Data Access Layer

The Data Access Layer (DAL) handles all Create/Read/Update/Delete operations for AuctionWorx. It was written with the provider paradigm so that the underlying backing store could be rewritten if necessary. We implemented Mindscape’s LightSpeed O/RM.

Auction Software Architecture

Business Logic Components

Accounting Service

The Accounting Service handles all invoicing and payment transactions of site fees and third-party sales. Site fees are any fees that are triggered by the event system, typically when a seller utilizes features of the site such as listing items. Third-party sales are the buy/sell agreement between a seller and the eventual winner of a listing (highest bidder of an auction, purchaser(s) of a fixed price listing, etc).

The Accounting Service supports a Fee provider model which allows developers to assess fees based on events and listing state.

The Account Service supports a Payment provider model which allows payments to be made either synchronously, as in the case of Authorize.Net; or asynchronously, as in the case of PayPal. The provider model allows additional payment providers to be implemented and integrated into the platform.

Common Service

The Common Service handles many of the commonly used components of AuctionWorx such as the Custom Field system, and the hierarchical Category system.

Listing Service

The Listing Service handles the workflow of creating, editing, and resolving listings in addition to buyer initiated events (bids).

The Listing Service supports a Listing Type provider model which allows additional listing types to be defined. The software includes Standard Auctions, Fixed Price listings and Classifieds.

Site Service

The Site Service supports the presentation layer and administrative interface.

Notification Service

The Notification Service handles all outgoing emails from the site asynchronously so as not to impact performance.

Scheduler Service

The Scheduler Service triggers listing starts and resolutions.

User Service

The User Service provides user and account services and is extended by the ASP.NET membership provider to provide login functionality.


Multiple Deployment Options

Standard (In-Process)

In this mode, the BLL and the DAL execute within the IIS worker process context which includes the Scheduler and Notifier, in addition to the front-end MVC. MVC communicates with the BLL via client classes with In-Process access to the BLL Services. The BLL communicates with the DAL In-Process. This is most useful in environments where the installation needs to be kept simple, or where multiple AuctionWorx sites could be executing on the same IIS webserver.

Enterprise (Services)

Both the BLL and DAL execute within a Windows Service which includes the Scheduler. There is an additional Windows Service for Notifications since there is such a clear demarcation between other BLL services, and Notification fulfillment. Additionally, Notification can be setup to be run on a more appropriate server, perhaps closer to, or even on, an outgoing mail server if the customer so chooses. MVC still executes within the IIS worker process context. MVC communicates with the BLL via client classes with Windows Communication Foundation (WCF) service remoting to the BLL/DAL Windows Service. This mode is most useful in environments which require scalability. An example of this would be a web farm of more than one web server serving the MVC layer, an application server serving the Windows Services for BLL/DAL, and optionally a notification server serving Notification fulfillment.


Development

The source to the MVC project, views, and controller code is included. This will allow a developer to change any aspect of the presentation layer. The remaining functionality can be extended by implementing providers and making calls to the API. The BLL and DAL are available only as compiled runtime binaries however the source to these are not necessary to implement any required changes.

MVC

The MVC project source is included: controller code (presentation logic), web pages (RAZOR), web partials (RAZOR), and any related HTML resources can be modified. All MVC related source code is commented and documented.

Views - RAZOR (CSHTML)

View code exists to actually present the data (model) to the user. There usually isn’t much logic in View code, except logic pertaining to presentation, such as looping through collections, etc.

Controller Code (C#)

Controller code exists to prepare the data (model) for presentation by the View. Therefore, calls to the client are usually made in the Controller code. Changes that involve modification to the data about to be displayed or the form data entered can be made here.

Content (CSS, Images, etc)

These static HTML assets are used by Views and can be modified as desired.


BLL: Providers

The provider model design pattern allows specific functional areas to be implemented and integrated into the platform using a dependency injection container (Microsoft Unity). As such, developers can implement additional or replacement providers to the following functional areas:

Listing Format Provider

The Listing Format Provider allows you to define your own listing formats. Standard Auction, Fixed Price and Classifieds are all included with the software.

For example, if you wanted to implement a Dutch or a Reverse Auction, you would implement your own Listing Format Provider that contains the necessary business logic.

Membership Provider

The Membership Provider allows you to implement your own authentication mechanism.

For example, you may have an existing site with existing users and rather than setup each of your existing users in AuctionWorx, you could implement a Membership Provider that authenticates users against your existing user data.

Fee Provider

The Fee Provider allows you to assess fees, based on events and the listing state. The Fee Provider is queried any time a listing is created, updated, closed, etc… to calculate site fees.

For example, you may want to implement your own Fee provider if you have special cases where certain users should receive discounts or an existing database is queried.

Payment Provider

The Payment Provider allows you to implement payment methods to be made either synchronously, as in the case of Authorize.Net; or asynchronously, as in the case of PayPal.

For example, you may want to implement Google Checkout and offer that as a payment option to your users.that authenticates users against your existing user data.

Media Asset Provider

The Media Asset Provider allows you to define new types of media that can be included in Listings and Listing Actions (Bids, Purchases, etc…). The system provides interfaces for generating, storing, and referencing media.

For example, you may want to implement saving and storing listing images with a specific image hosting service.

Encryption Filter

The Encryption Filter allows you to implement other encryption methods into the system to encrypt/decrypt passwords and credit card numbers. Currently, a TripleDES symmetric encryption filter is included with the software.

For example, you may want to implement AES symmetric encryption, or change the default encryption keys.

Next Steps
Dive Deeper
Start reviewing the developer documentation and code samples.

Dev Docs >>
Technical Questions?
Get answers before now.


Contact Sales >>
Need Hosting?
We also offer web hosting services.

View Services >>