the horn package manager 2 options for creating dsls in.net

Post on 21-Dec-2015

222 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

The HORN Package Manager

2 options for creating DSLs in .NET

Who Am I?

Why?

Show me the Pain

We Live On the bleeding Edge

Or Do we?

The Usual Suspects

ASP.NET MVCContrib

A typical Scenario ASP.NET MVC Moves From Beta to Release Candidate I use MVCContrib for the WindsorControllerFactory from CastleMVCContrib uses the trunk version of Castle

I use Nhibernate

Nhibernate is built against a different castle versionI use NhibernateContrib for NhibernateIntegration

I need rebuild NhibernateContrib with the rebuilt Nhibernate I use Rhino

Rhino references Nhibernate and Castle

Etc., Etc., Etc., Etc.

The Beleaguered ALT.NET Dev

The Treadmill of Change is Always

Turning

Building the Stack (Surely Not)C:\dev\Shared>cd NHibernate

C:\dev\Shared\Nhibernate>svn up

C:\dev\Shared\Nhibernate>cd nhibernate

C:\dev\Shared\NHibernate\nhibernate>nant

C:\dev\Shared\NHibernate>cd ..\..

C:\dev\Shared>cd Castle

Building the Stack (Surely Not)C:\dev\Shared>cd NHibernate

C:\dev\Shared\Nhibernate>svn up

C:\dev\Shared\Nhibernate>cd nhibernate

C:\dev\Shared\NHibernate\nhibernate>nant

C:\dev\Shared\NHibernate>cd ..\..

C:\dev\Shared>cd Castle

Building the Stack (Surely Not)C:\dev\Shared\Castle>svn up

C:\dev\Shared\Castle>nant

C:\dev\Shared\Castle>copy ..\NHibernate\nhibernate\build\NHibernate-2.0.0.Alpha1-debug\bin\net-2.0\*.* build\net-2.0\debug /y

C:\dev\Shared\Castle>nant

Building the Stack (Surely Not) And it goes on and on

A Maze of Dependencies

The Usual Suspects

ASP.NET MVC Contrib

We Need a Hero

Gentoo Portage

Package Tree Metaphor

Ebuilds

The Usual Suspects

ASP.NET MVC Contrib

Why not XML?

The Usual Suspects

ASP.NET MVC Contrib

XML is as “out” as

Flared Trousers

The Usual Suspects

ASP.NET MVC Contrib

Why an Internal DSL?

The Semantic Model

Source Control

Build Engine

(Horn DSL)== Ebuild

vs.

Boo is.....• An object oriented statically typed language

• An Open source project, released under the BSD license.

• A python inspired language

• A language with a focus on compiler extensibility

Duck Typing

Duck Typing

Macros

The Boo Horn DSL

Rhino DSL

Meta Methods

The Boo Compiler

CustomizeCompiler Method

IronRuby• .NET implementation of the Ruby language

• Seamless Integration with .NET libraries

• Compatibility with the 1.8.x branch

The IronRuby Horn DSL

Mixins

Method Missing

The Usual Suspects

ASP.NET MVC Contrib

Current State of Horn

The Usual Suspects

ASP.NET MVC Contrib

Questions

top related