Highway Framework

The fastest road to good architecture.

Highway.Data v5.1.0 Released

  • DomainRepositoryFactory doesn’t throw on null event collection – Eric Burcham
  • Added InMemoryActiveDataContext to allow for multiple repositories using a single in memory – The beginnings of a “prod” in memory context – Long Mai
  • Queued Add and Remove – InMemoryDataContext now acts more like a real database as it doesn’t return added records or modify collections in loops. – Long Mai
  • Identity Strategies are invoked automatically on commit – Long Mai
  • Brought back .NET 4.0 support
  • Updated to Entity Framework 6.0.2
  • Updated to CommonServiceLocator 1.2
  • Updated to Common.Logging 2.2.0

Highway.OnRamp.MVC v3.0.2 Released

Today we released a minor bug fix to the Highway.OnRamp.MVC packages, this included the following changes:

  • Moving BaseRestApiController from Highway.OnRamp.MVC to Highway.OnRamp.MVC.Data. This was an error in packaging previously which resulted in errors if you only installed Highway.OnRamp.MVC.
  • Increased the dependency version of Highway.OnRamp.MVC.Data for Highway.Data from v5.0 to v5.0.6. This removes the requirement for you to be using .NET Framework v4.5.1 and now merely required .NET Framework v4.5.

All other functionality is unchanged, all current documentation is still accurate.

Highway.OnRamp.MVC v3.0 Released

We are pleased to announce the release of Highway.OnRamp.MVC v3.0. The following are the major features now included:

  • Major restructuring to organize and rename a lot of pieces
  • ApiController dependency injection
  • Automatic IoC registrations
  • Session and Configuration access via Interfaces
  • Easy RESTful ApiControllers
  • Injectable Filters
  • Support for Highway.Data v5 (and through it Entity Framework v6)

Highway.Data v5.0 Released

Highway.Data 5.0 Released ( )

New Features, and better Domain Driven Design support

Domain Context

We have added support for advanced domain specific contexts. These allow for detailed manipulation of your data access patterns. It adheres to the Domain Driven version of a bounded context.

More Details are here: Domain Context

Simplified Creation Pattern

We have also added the much requested Repository factories. These give you the ability to use Highway.Data in services and long living work-flows without having to hand roll your own management of unit of work.

More Details are here: Creation Patterns

Entity Framework Support

We shipped an EF 6.0 supported version now that some of the initial release bugs have been patch. We did require the version so that we could make sure you get their fixes as well.

We will be working over the next 3-4 weeks to support some of the new features ( that we don’t already support) in Entity Framework 6.0.

More Details are here: EF 6.0

Breaking Changes:

AsQueryable off Repository.Context

After seeing a lot of examples from clients, friends, and other speakers using repository.Context.AsQueryable(), we realized that this represented a large hole in the design pattern for Query Object separation. We have remove that hole this publish. If you were using this for simple operations please look at the pre-built queries, or codify the queries into Query<T>, Scalar<T>, Command<T> objects.


We have disabled event interception for the simple DataContext as it caused an additional understanding and performance overhead. This is in an effort make sure we have a simple entry story for most developers. If you were using this feature, we have good news. We have expanded the feature with pre/post Command, Scalar, and Query execution intercept points, as well as kept the standard pre/post save. These features have moved onto the DomainContext<T> class due to their advanced nature.

More Details are here:

Thanks to:

Curtis Schlak for pushing us to get EF 6.0 support published.

Michael Dudley for the design sessions on vacation in Las Vegas, and the push to finish the beta release.

Highway.RoadCrew v0.1

We’re thrilled to announce the initial release of Highway.RoadCrew. This is a package installer, very similar to bundler from the Ruby world, but built on top of the amazing Chocolatey package manager, and PsGet PowerShell Module directory. To get started, this is all you need to know:


First, run the following two lines, which will download the current script, and run it.

(new-object Net.WebClient).DownloadString("http://bit.ly/hwyfwk-rc") > RunMe.ps1


Now setup your configuration by editing the RunMe.config.ps1 file. This will always be the file you edit, you shouldn’t ever need to modify RunMe.ps1. The following commands are supported:

  • chocolatey <package-name> will install the named package (see http://chocolatey.org/ for a list)
    • -source is an optional switch that lets you specify another chocolatey feed or source
  • gem <gem-name> will install a Ruby gem (see http://rubygems.org/ for a list)
  • windows <feature-name> will install the named feature (execute clist -source windowsfeatures to see a possible list, only available after you’ve executed RunMe.ps1 a second time currently)
  • profile <powershell-command> adds the listed PowerShell command to the current user’s current profile.
  • alias <alias-name> <command> adds an alias to the current user’s current PowerShell profile.
  • psget <module-name> will install a PsGet.net PowerShell module (see http://psget.net/ for a list)