Code-First Membership / Role Provider

Code-First Membership / Role Provider is built using C# and allows for drop-in type usage / abstraction unlike other code-fist options at the moment.

Dependency Injection Service Provider (DISP)

Dependency Injection Service Provider (DISP) is a wrapper or an interface that aim to allow .NET developers use one of the inversion of control (IoC) containers out there such as StructureMap or Ninject from a high level of abstraction, using the same interface and classes without having to worry about the concrete implementation of each of the IoC containers. DISP provides an interface that will create and instance of an IoC container of your election, and provide generic interface to communicate with it. The goal is to implement support for as much IoC containers as is possible and to support as many features as we can for all of them from a high level of abstraction.

Reducing Coupling by Dynamic Loading of Assemblies

DLA.zip (148 kB)
This proof of concept prototype is attached to an article that is published on the MSDN Architecture web site: [url:http://msdn.microsoft.com/en-us/library/cc984323.aspx] ------------------------------------------ Summary: This article’s foundation is a previous article that proposed a solution for the separation of concerns between logical and physical layers in an N-tier application; the article is called Software Abstraction Layer. Once we separate the layers we have to look at how we can go even further and minimize the impact of changes in one layer if another layer changes. How we can also increase the discipline in a team of developers and prevent them from taking shortcuts that will defeat the initial purpose of separating the components so they do not affect each other as long as the interface between them is unchanged. This article tries to identify the points of coupling. It also proposes a solution that increases the separation of concerns; this allows the applications to be easier to change and deploy. Although the article makes its point using Microsoft® .NET Framework technologies and the C# language, the solutions can also apply to other platforms and languages. We will also provide a proof-of-concept prototype that illustrates the points we are trying to make in this article.

Event Abstraction API for .NET

An event abstraction framework for .NET written in C# using R2ML. The Framework helps decouple event handling and event declarations from the User Interface. It also handles Complex/Composite Events (such as mouse gestures or triple click) the same way as a primitive events. Complex Events are events that are made from many primitive events; an example would be double click (as it can be made from two click events). The project has Visual Studio plug-ins provided to complement the VS UI designer. This project is the result of a Masterate of Science entitled: "A Rule Based User Interface Builder for Visual Studio .NET". This project uses R2ML as a way of storing reaction rules that conform to the concepts of ECA rules. Reaction Rules are rules that are executed upon an event occurring.

Reusable Library

relib.zip (82,8 MB)
A collection of reusable abstractions for enterprise application developer: caching, IoC, pagination, repository, application services, unit of work, background processing, exception trace policy, work item, etc. Integration with Unity 2.0, EntLib 5.0, ASP.NET MVC 3.0, WatiN 2.0, Memcached 1.4.5.

Software Abstraction Layer

SAL.zip (574 kB)
The Context * It is easy to build a software application from scratch, it is harder and more expensive to maintain it. How do we build an application so we reduce the cost of the maintenance? * The complexity of any software system grows over time. How do we make so, although the complexity grows, the parts that make the system stay simple and can be easily changed or even replaced? The problems described here and the proposed solutions reference the Microsoft .NET Framework but both the problems and the solutions can be applied to other technologies outside the described domain. A 3 tier Architecture isolates the data from the business from the presentation tier. The Architecture provides a good degree of separation but there is still potential for coupling. --------------------------------------------------------- More details including a proof of concept prototype here: http://danutp.blogspot.com/

Transport Abstraction Library

tal.zip (377 kB)
Want to send data from one program to another program? With this library you will be able to do it in many ways via TCP, UDP(Underwork) and in the future other ways like 2 files, a database or shared memory? Goals: 1. High performance 2. Abstraction 3. Lightweight 4. Easy use

Undo Framework

undo.zip (173 kB)
This is a very simple framework to add Undo/Redo functionality to your applications. Supports unlimited undo-redo, nested transactions and action merging (to merge a series of consecutive actions into one).