An outlet for my obsession with technology
Posts tagged GitHub
AutoMapper.Silverlight
Jan 18th
I could, and will soon, write a long ass post about how I cobbled together a messed-up architecture for building Silverlight applications on top of an enterprise class SOA architecture without RIA but with RIA…
Here is a branch of AutoMapper, compiled against Silverlight and now with support for entities generated from WCF service references.
http://github.com/detroitpro/AutoMapper.Silverlight
I really hope I published it to GitHub correctly; yell at me if not.
AutoDeploy.NET to GitHub
Jul 20th
First; When I pushed to GitHub I decided to rename the project to AutoDeploy.NET.
In the hopes of keeping my sanity and in the context of working in an organization that strictly follows a 50+ page “release management handbook” I started working on AutoDeploy.NET; a deployment automation tool.
As with all my personal projects I took an academic approach to the design and implementation. Instead of building an entire application I created a class library (dll) and used a few 3rd party libraries that I was either unfamiliar.
Class Library
My thought here is that by just creating the class library I would have a chance to create a fluent interface and if I did that well enough, creating a UI would be a trivial task. I have not hit a brick wall with this decision but messaging and logging might soon bite me in the…end.
Sharp SVN
SharpSvn is a binding of the Subversion Client API for .Net 2.0 applications contained within a set of xcopy-deployable dll’s
Working with source control should be part of every deployment, build process, or continuous integration. I use SVN for my source control and so did organization. As I, along with what seems like the rest of the world, move to Git I might find time to write a Git service for AutoDeploy.NET
Html Agility Pack
The Html Agility Pack is an agile HTML parser that builds a read/write DOM and supports plain XPATH or XSLT (you actually don’t HAVE to understand XPATH nor XSLT to use it, don’t worry…). It is a .NET code library that allows you to parse "out of the web" HTML files. The parser is very tolerant with "real world" malformed HTML. The object model is very similar to what proposes System.Xml, but for HTML documents (or streams).
Instead of using Sharp SVN or simple the .NET webclient I used the agility pack to parse the html that is returned when browsing a SVN repo. This is done to monitor the repo for new tags and kick off deployments based on the tag convention x.x.x.
The use is purely academic and limited in scope. It could easily be removed in order to cut-down on the number of 3rd party libraries required.
MEF
The Managed Extensibility Framework (MEF) is a new library in .NET that enables greater reuse of applications and components. Using MEF, .NET applications can make the shift from being statically compiled to dynamically composed. If you are building extensible applications, extensible frameworks and application extensions, then MEF is for you.
Extensibility! The decision to use MEF at such an early stage was purely academic but the result is perfect. I only wanted to code for the common scenarios.
In the environment I worked the process was very manual with SharePoint forms being touted as progress…I planed on writing a class library that implemented ICustomTask and called WaitN to fill out the endless, mind-numbing, pointless, wasteful, costly, wow….sorry..off track.
Unity
The Unity Application Block (Unity) is a lightweight extensible dependency injection container with support for constructor, property, and method call injection.
I choose unity because I am familiar with it. I should have used ninject or autofac or StructureMap or .. well you get the point.
Fluent Interface
A fluent interface is a way of implementing an object oriented API in a way that aims to provide for more readable code.
It started off as a way to work with the buzz word of the day…but the first time I wrote an AutoDeploy.NET parent application using the fluent interface I was hooked!
Point In Time
I made, what I consider, significent progress on AutoDeploy.NET before parting ways with said organization. And while I hope to never ever need such a tool I feel for those solders I left behind. Seriously; we’ve identified many different scenarios where automating one or more of the common deployment tasks would be helpful to any developer.
Logging, Auditing and Messaging are the missing pieces at this time.