• This repository has been archived on 05/Oct/2023
  • Stars
    star
    114
  • Rank 308,031 (Top 7 %)
  • Language
    C#
  • Created about 14 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A tool for packaging and templating solutions
 ______   ______     __    __     ______   __         __     ______   __  __    
/\__  _\ /\  ___\   /\ "-./  \   /\  == \ /\ \       /\ \   /\  ___\ /\ \_\ \   
\/_/\ \/ \ \  __\   \ \ \-./\ \  \ \  _-/ \ \ \____  \ \ \  \ \  __\ \ \____ \  
   \ \_\  \ \_____\  \ \_\ \ \_\  \ \_\    \ \_____\  \ \_\  \ \_\    \/\_____\ 
    \/_/   \/_____/   \/_/  \/_/   \/_/     \/_____/   \/_/   \/_/     \/_____/ 
	
	
Templify! v1.0 - Powered by endjin
==================================

About
=====
Templify allows you to template a solution (or folder structure) into a reusable package and then re-deploy that package as a new solution.

Templify was originally created to solve the problem of how the Sharp Architecture project could distribute its sample solution - as the exising Visual Studio Template mechanism was problematic.


Usage
=====

Templify can be executed from either the Windows Explorer Shell or via command line. For Windows Explorer select the parent folder containing the solution you want to templify, right click and select the "Templify This Folder" context menu option. A WPF window will appear asking you to entering information about the solution you are templating; Template Name, Template Version Number, Template Author and most importantly - the repeated word / phrase that will be tokenised. As Templify operates on a convention over configuration principal - it will replace all instances of that token, including internal content, directory & file names - with a bespoke token.

When you want to deploy a new instance of your Templify template package - select a new empty folder in Windows Explorer, right click and select "Templify Here" from the context menu. A WPF window will appear with a drop downlist containing all the templates you have installed in your local package repository - select the ones you want to deploy - then enter a new name into the "name" textbox. This will be used to replace the bespoke token created in the previous step.

Templify can also be used from the command line / MSBuild project. Two sample MSBuild targets were install into %PROGRAMFILES%\endjin\Templify\Samples\MSBuild - these show how to create and deploy packages.

From the command line you would create a package using the following command switches:

  TemplifyCmd.exe -m c -p C:\Temp\Sample-Create\Sharp-Architecture -n "Sharp Architecture" -a "Howard van Rooijen" -v "1.6.0.0" -t "SA169=__NAME__" -r "c:\Temp\Sample-Deploy"

and you would deploy the package created above by using the following command switches:

  TemplifyCmd.exe -m d -p "c:\Temp\Sample-Deploy" -i sharp-architecture-v1.6.0.0 -t __NAME__=HvR -r "c:\Temp\Sample-Deploy"

The switches have the following meaning:

 -m = mode
      c = create
      d = deploy
 -p = path
 -n = package name
 -a = author
 -v = version number
 -t = token - can be delimited list "Token=__Token__" "Token1=__Token1__"
 -i = package name
 -r = package repository path 
  
The default package repository path is \Users\%USERNAME%\AppData\Roaming\Endjin\Templify\repo

Packages are simply 7Zip archives - renamed to .pkg. You can open any .pkg file using 7Zip (which is freely downloadable) inside you will find a manifest.xml file - which contains a listing of all the contents in the package and the tokenised solution structure and files.
 
 
Ingredients
===========
Templify makes use of the following tools and frameworks:

 o Caliburn.Micro - http://caliburnmicro.codeplex.com/
 o CommandLine - http://commandline.codeplex.com/
 o Machine.Specifications - http://github.com/machine/machine.specifications
 o Machine.Specifications.AutoMocking - http://github.com/jamesbroome/Machine.Specifications.AutoMocking
 o RhinoMocks - http://www.ayende.com/projects/rhino-mocks/downloads.aspx
 o ICSharpCode.SharpZipLib - http://www.icsharpcode.net/opensource/sharpziplib/
 o WPF Themes - http://wpfthemes.codeplex.com/
 o SevenZipSharp - http://sevenzipsharp.codeplex.com
 o 7Zip - http://www.7-zip.org(licensed under the GNU LGPL license) 
 o Icon / Logo - The wonderful - Zyotism: http://www.zyotism.com/aesthetics/iconsets/2001/index.html
 o Console Progress Code by Stanimir Stoyanov: http://stoyanoff.info/code/ConsoleProgress.cs
 o WPF Notify Icon by Phillipp Sumi: http://www.hardcodet.net/projects/wpf-notifyicon


Install
=======
http://opensource.endjin.com/templify/install


Contribute
==========
http://github.com/endjin/Templify


Support / Help
==============
Follow http://twitter.com/templify on twitter.
Report bugs & issues on http://youtrack.codebetter.com/issues/TMPLFY


Credits & Thanks
================
James Dawson for the original inspiration
Alec Whittington for seeding the idea for use with Sharp Architecture
James Broome for Manage Package / Exclusions feature
Jon George for testing & moral support
Matthew Adams for WPF / MVVM / XAML help
Nick Harewood for prettifying the WPF styles.
David Perlman for fixing the long standing performance issue.

Version History
===============
2010.09.30 - v0.5.0.0 - First public release
2013.04.24 - v0.7.0.0 - Performance improvements, fixes around file encoding issues, replace Visual Studio Installer Project with Advanced Installer Project.

More Repositories

1

dotnet-adr

A cross platform .NET Global Tool for creating and managing Architectural Decision Records (ADRs).
C#
84
star
2

Endjin.Licensing

Endjin's Software Licensing Framework
C#
37
star
3

Z3.Linq

LINQ bindings for the Z3 theorem prover from Microsoft Research.
C#
35
star
4

Endjin.Retry

Endjin's Retry utilities
C#
27
star
5

Endjin.Assembly.ChangeDetection

An experiment to automatically detect breaking changes in .NET Assemblies
C#
27
star
6

aspnetcore-razor-htmx-chartjs

A sample demonstrating how to combine aspnetcore, Razor, and HTMX to power interactive Chart.js visualisations
JavaScript
26
star
7

TeamCityPowerShell

TeamCity PowerShell Module
PowerShell
25
star
8

git-hooks

Useful Git Hooks for .NET Projects
PowerShell
17
star
9

Samples

Code Samples from the endjin blogs
JavaScript
15
star
10

adventures-in-dapr

This repository supports a blogs series based on the Dapr sample from https://github.com/EdwinVW/dapr-traffic-control
C#
15
star
11

Endjin.RecommendedPractices.NuGet

A NuGet package that configures .NET projects for endjin's recommended engineering practices
PowerShell
13
star
12

Endjin.SpecFlow

C#
11
star
13

Endjin.Composition

C#
9
star
14

Stacker

A .NET Global Tool for automating marketing content across social channels.
C#
8
star
15

playwright-two-factor-auth-csharp

Using the Playwright C# SDK to automate 2FA authentication for AAD and MSA scenarios
C#
8
star
16

Endjin.Ip.Maturity.Matrix

A framework to measure maturity across the disciplines required to build, test, deploy, reuse, support & sell Intellectual Property
C#
6
star
17

AngularJS-UnitTesting

JavaScript
6
star
18

Endjin.GitSignCommits

Shell
4
star
19

AzAppConfigToUserSecrets

A dotnet global tool for extracting settings from Azure App Configuration Service and stashing them as .NET User Secrets.
C#
4
star
20

dotnet-aot-python

C#
4
star
21

Endjin.OpenAPI.Converters

Visual Studio Extension for Converting to / from OpenAPI versions
C#
3
star
22

Endjin.Snowflake

PowerShell
3
star
23

TeamCityJasmineMetaRunner

TeamCity MetaRunner for executing Jasmine Specifications
JavaScript
3
star
24

Endjin.RecommendedPractices.AzureDevopsPipelines.Python

Python
2
star
25

Endjin.SpecFlow.Selenium

endjin's framework for using Selenium with SpecFlow
C#
2
star
26

dev4good

A repository for the results of the dev4good event 2011
C#
2
star
27

NewRelicDeploymentNotifierMetaRunner

A TeamCity MetaRunner to notify NewRelic that a new deployment has occurred
Batchfile
2
star
28

RxWorkshop

Archive of the Bart De Smet and Wes Dyer present Rx Workshop.
C#
2
star
29

ApplicationInsightsReleaseAnnotationsMetaRunner

A TeamCity MetaRunner for creating Release Annotations in Application Insights
Batchfile
2
star
30

TeamCityILMergeMetaRunner

A Meta Runner for TeamCity that allows you to run ILMerge as a Build Step
Batchfile
1
star
31

test-data-gen

Python
1
star
32

.github

PowerShell
1
star
33

Firecracker.Management

.NET SDK for the Firecracker Management API
C#
1
star
34

AzureDemos

1
star
35

Endjin.RecommendedPractices.Bicep

Our library of reusable Bicep modules
Bicep
1
star
36

TeamCityDemo

Solution for Demonstrating TeamCity Features.
C#
1
star
37

CNAB.ARM-Converter

Go
1
star
38

Endjin.Cancelable

C#
1
star
39

CucumberJS.TestAdapter

A basic Visual Studio Test Adapter for CucumberJS
C#
1
star
40

Endjin.RecommendedPractices.AzureDevopsPipelines.GitHub

Reusable Azure DevOps Pipelines for building & releasing OSS projects in GitHub
1
star
41

TeamsTranscript

A CLI Tool for manipulating Microsoft Teams Call Transcripts
C#
1
star
42

Endjin.RecommendedPractices.GitHubActions

Re-usable GitHub Action workflows and actions for our standardised CI process
PowerShell
1
star