CCNetConfig

Continuous Integration, Simplified Configuration

Home | Wiki | About | Login | Contact |
subscribeSubscribe
Subscribe
CCNetConfig
Releases
Beta Releases
Stable Releases
Work Items
Discussions
CPRP
Releases
Beta Releases
Stable Releases
RSS Builds Publisher
Releases
Beta Releases
Stable Releases
Current Release
0.5.0.120
Sun, Jan 20 2008 at 10:02 PM
All Releases
CCNetConfig Build Status
  • Build StatusSuccess
  • Label0.6.420.32915
  • Last Build4/28/2008 6:43 AM
  • Next Build7/24/2008 12:00 AM
Recent Work Items
  • Automated: Unhandled exceptio…
  • Automated: Object reference n…
  • support for SvnRevisionLabell…
  • Automated: Uncommon behaviour…
  • Automated: create a new confi…
  • Copying and pasting a task do…
  • Automated: Invalid URI: The U…
  • Automated: Cannot import a nu…
  • Remove support for plugins in…
  • Show splash screen on initial…
Legend: Proposed Active Fixed Closed
Tag Cloud
  • A Little Class
  • Automation
  • C#
  • CCNet
  • CCNetConfig
  • codeplex
  • CodePlexAPI
  • Continuous Integration
  • CruiseControl.NET
  • feedburner
  • google
  • JSON
  • LOLCode
  • MSBuild
  • RssBuildsPublisher
  • Sandcastle
  • subtext
  • subversion
  • SvnLabeller
  • tfs
  • twitter
  • Visual Studio
  • Wix
  • XML
  • xna
more tags...
Archives
  • July, 2008 (2)
  • May, 2008 (3)
  • April, 2008 (5)
  • March, 2008 (8)
  • February, 2008 (6)
  • January, 2008 (7)
  • December, 2007 (11)
  • November, 2007 (7)
  • October, 2007 (5)
  • September, 2007 (8)
  • August, 2007 (5)
  • June, 2007 (7)
  • May, 2007 (5)
  • April, 2007 (23)
  • March, 2007 (27)
  • February, 2007 (12)
  • January, 2007 (9)
  • December, 2006 (2)
  • November, 2006 (12)
  • October, 2006 (17)
  • September, 2006 (8)
  • August, 2006 (30)
 
Image Galleries
  • Screenshots
  • A Little Class
Post Categories
  • Announcements
  • Automation
  • Beta
  • Beta Marker
  • C#
  • CCNetConfig
  • CCNetConfig.BugTracking
  • CCnetConfig.CCNet
  • CCNetConfig.Core
  • CCNetConfig.GUI
  • CCNetConfig.Updater
  • CCNetConfig.Updater.Core
  • CodePlex
  • CodePlex Release Publisher
  • CodePlexAPI
  • Continuous Integration
  • CruiseControl.NET
  • Extending CCNetConfig
  • MSBuild
  • MsBuild Extended Tasks
  • News
  • Nightly
  • Orcas
  • Project Extension
  • Rant
  • Reflector
  • Release
  • RssBuildsPublisher
  • Sandcastle
  • SubText
  • SubVersion
  • TFS
  • TFS Plugin
  • Tools
  • TortiseSVN
  • Vista
  • Visual Studio
  • Wiki
  • Wix
  • XAML
  • Xbox Live
  • Zune
 

Blog Statistics
  • Posts219
  • Articles0
  • Comments36
  • Trackbacks5
Home
Download
Screenshots
Support
License
Source

October 2007 Entries

A Little Class (System.Security.Cryptography.MD5CryptoServiceProvider)
Since it is Halloween, I thought I would use a class today from System.Security.Cryptography namespace. This little class shows how you can create an MD5 hash for a stream
1using System; 2using System.Security.Cryptography; 3using System.Net; 4 5namespace ALittleClass ...{ 6 class Program ...{ 7 static void Main ( string[ ] args ) ...{ 8 // create the md5 provider 9 MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider ( ); 10 // you can hash any array of bytes or a stream... 11 // for this example, i will get google.com and hash the response stream 12 WebRequest req = WebRequest.Create( "http://google.com/" ); 13 Console.WriteLine ( "Retrieving {0}", req.RequestUri.ToString ( ) ); 14 // get the response 15 WebResponse resp = req.GetResponse( ); 16 Console.WriteLine ( "Computing the hash..." ); 17 // hash the stream 18 byte[] hash = md5.ComputeHash ( resp.GetResponseStream ( ) ); 19 // base64 encode the hash 20 string b64 = Convert.ToBase64String ( hash ); 21 Console.WriteLine ( "Google Hash: {0}", b64 ); 22 Console.ReadLine ( ); 23 } 24 } 25}

Output

Retrieving http://google.com/
Computing the hash...
Google Hash: /PX2eXxl/jvS/7bNW1sP+g==
Technorati Tags:[ A Little Class ] [ System.Security.Cryptography.MD5CryptoServiceProvider ] [ MD5 ] [ C# ]
Filed Under [ C# ]
Ryan Conrad posted @ Wednesday, October 31, 2007 12:12 PM | Comments (0)
Need some feedback on a posible new feature
There are a few people that want support for Xml Entities in CCNetConfig to reference external files and values. While I am still trying to make that work, but it doesn't look like it will soon, I need some feedback on a new feature I plan on implementing. It is in the line of supporting the entities. What I am thinking is adding the ability to create entities in the UI and use those entities as values for properties. The entities would be at the configuration level and would be used in properties for projects and sub-properties. I still have to see how the current serializer/deserializer will act with these because with entities that reference external files, they are 'brought in' to the main document. If this doesn't happen for simple values like the name of the source control server then is this a feature that you would like see implemented?
Technorati Tags:[ CruiseControl.NET ] [ CCNET ] [ CCNetConfig ] [ XML ]
Filed Under [ CCNetConfig CruiseControl.NET ]
Ryan Conrad posted @ Saturday, October 20, 2007 10:38 AM | Comments (0)
A Little Class (System.Security.SecureString)
Since I missed a couple posts for "A Little Class", I am posting another one this week, System.Security.SecureString

A SecureString represents a string that should be kept confidential when used and removed from memory when no longer needed. An instance of the System.String class is both immutable and can not be scheduled for garbage collection when no longer needed. if using a String object to store sensitive information such as a password or credit card number, there is risk that the information can be revealed later because your application can not delete the data from computer memory.

A SecureString is similar to a String in that it contains a string value. However,  a SecureString is encrypted when initialized or when modified. It can be modified until your application marks it readonly and can be removed from memory by your application or by the Garbage Collector.

1using System; 2using System.Security; 3using System.Runtime.InteropServices; 4 5namespace ALittleClass ...{ 6 class Program ...{ 7 static void Main ( string[] args ) ...{ 8 // create the secure string 9 SecureString password = new SecureString ( ); 10 // prompt for the password 11 Console.Write ( "Enter Password:" ); 12 // read the keys pressed by the user 13 ConsoleKeyInfo nextKey = Console.ReadKey(true); 14 // read the password entered from standard input. 15 while ( nextKey.Key != ConsoleKey.Enter ) ...{ 16 // check if the user is backspacing to make a correction... 17 if ( nextKey.Key == ConsoleKey.Backspace && password.Length > 0 ) ...{ 18 // remove the character from the secure string 19 password.RemoveAt ( password.Length - 1 ); 20 // erase the character on the console. 21 Console.Write ( nextKey.KeyChar ); 22 Console.Write ( " " ); 23 Console.Write ( nextKey.KeyChar ); 24 } else ...{ 25 // add the character to the secure string 26 password.AppendChar ( nextKey.KeyChar ); 27 // display a character in the console 28 Console.Write ( "*" ); 29 } 30 nextKey = Console.ReadKey ( true ); 31 } 32 Console.WriteLine ( ); 33 34 // lock the password down so it can not be changed further 35 password.MakeReadOnly ( ); 36 37 // so we can read the value we need to do some conversion... 38 IntPtr bstr = Marshal.SecureStringToBSTR ( password ); 39 string encPassword = Marshal.PtrToStringAuto(bstr); 40 // destroy the password and remove from memory. 41 password.Dispose ( ); 42 43 Console.WriteLine ( "Secure password: {0}", encPassword ); 44 Console.WriteLine ( "Press Enter To Continue..." ); 45 Console.ReadLine ( ); 46 } 47 } 48}
Enter Password:********************
Secure password: i entered a password
Press Enter To Continue...
Technorati Tags:[ A Little Class ] [ C# ] [ System.Security.SecureString ]
Filed Under [ C# ]
Ryan Conrad posted @ Thursday, October 18, 2007 10:22 AM | Comments (0)
A Little Class (System.IO.Path)
This weeks Little Class is the System.IO.Path. This is a very useful class that allows generate a temp file name, combine paths together, get just the extension of a file and more. The code below shows all the available methods and public accessible fields of the System.IO.Path class. This class only has static members.
1using System; 2using System.Collections.Generic; 3using System.Text; 4using System.IO; 5 6namespace ALittleClass ...{ 7 class Program ...{ 8 static void Main ( string[ ] args ) ...{ 9 // get a file 10 FileInfo file = new FileInfo ( typeof ( Program ).Assembly.Location ); 11 // output the full file name 12 Console.WriteLine ( file.FullName ); 13 // changes the extension of the file and returns the new filename 14 Console.WriteLine ( Path.ChangeExtension ( file.FullName, "txt" ) ); 15 // combines 2 paths together 16 Console.WriteLine ( Path.Combine ( file.Directory.FullName, "myFile.txt" ) ); 17 // gets only the directory name 18 Console.WriteLine ( Path.GetDirectoryName ( file.FullName ) ); 19 // gets only the file extension (includes the dot) 20 Console.WriteLine ( Path.GetExtension ( file.FullName ) ); 21 // gets only the file name (with the extension) 22 Console.WriteLine ( Path.GetFileName ( file.FullName ) ); 23 // gets only the file name with out the extension and the dot 24 Console.WriteLine ( Path.GetFileNameWithoutExtension ( file.FullName ) ); 25 // gets the full path of a file name 26 Console.WriteLine ( Path.GetFullPath ( file.Name ) ); 27 // gets an array of characters that are invalid in a file name 28 Console.WriteLine ( new string ( Path.GetInvalidFileNameChars ( ) ) ); 29 // gets an array of characters that are invalid in a path 30 Console.WriteLine ( new string ( Path.GetInvalidPathChars ( ) ) ); 31 // Gets the root path of a path 32 Console.WriteLine ( Path.GetPathRoot ( file.FullName ) ); 33 // gets a random file name 34 Console.WriteLine ( Path.GetRandomFileName ( ) ); 35 // gets a temp file name 36 Console.WriteLine ( Path.GetTempFileName ( ) ); 37 // gets the temp path 38 Console.WriteLine ( Path.GetTempPath ( ) ); 39 // checks if a file has an extension 40 Console.WriteLine ( Path.HasExtension ( file.FullName ) ); 41 // checks if a path is rooted 42 Console.WriteLine ( Path.IsPathRooted ( file.FullName ) ); 43 // gets the character that separates directories 44 Console.WriteLine ( Path.DirectorySeparatorChar ); 45 // gets the alternate character that can be used to separate directories 46 Console.WriteLine ( Path.AltDirectorySeparatorChar ); 47 // gets the character used to separate multiple paths 48 Console.WriteLine ( Path.PathSeparator ); 49 // gets the character used to separate the volume from the path 50 Console.WriteLine ( Path.VolumeSeparatorChar ); 51 Console.ReadLine ( ); 52 } 53 } 54} 55 56
H:\dotNetProjects\ALittleClass\ALittleClass\bin\Debug\ALittleClass.exe
H:\dotNetProjects\ALittleClass\ALittleClass\bin\Debug\ALittleClass.txt
H:\dotNetProjects\ALittleClass\ALittleClass\bin\Debug\myFile.txt
H:\dotNetProjects\ALittleClass\ALittleClass\bin\Debug
.exe
ALittleClass.exe
ALittleClass
H:\dotNetProjects\ALittleClass\ALittleClass\bin\Debug\ALittleClass.exe
"<>| ☺☻♥♦
♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼:*?\/
"<>| ☺☻♥♦
♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼
H:\
r2cm2y2c.fku
C:\Users\Ryan\AppData\Local\Temp\tmpE5E5.tmp
C:\Users\Ryan\AppData\Local\Temp\
True
True
\
/
;
:
Technorati Tags:[ System.IO.Path ] [ A Little Class ] [ C# ]
Filed Under [ C# ]
Ryan Conrad posted @ Tuesday, October 16, 2007 8:57 PM | Comments (2)
Doppler Goes Open Source
Doppler, my favorite podcast download client just announced that it will be an open source project hosted on CodePlex. They have not yet published the source or activated the project but plan to do so shortly. The license has not been decided as of now either. I am glad this is going open source because I really love this client but have problems with it crashing from time to time.
Technorati Tags:[ codeplex ] [ doppler ] [ open source ] [ podcast ]
Filed Under [ Tools ]
Ryan Conrad posted @ Sunday, October 07, 2007 11:09 PM | Comments (1)
Powered by Subtext - Version: 1.9.5.176
Copyright © 2006 - 2008 Ryan Conrad. All Rights Reserved. Privacy Policy