This is a nice article that resonated with the method that I use to learn. I use the notepad approach, I keep a diary/notepad and write what I learn and it serves dual purposes, as an index for my learnings (so that I can go back and quickly reference) and the act of writing it makes me retain it longer.
http://www.freestylemind.com/how-to-keep-track-of-what-youve-learnt/
Saturday, November 21, 2009
Thursday, November 5, 2009
.NET - Serialization to XML and back - Saving/reading custom configuration files
XML serialization in the .net framework is a powerful and very useful technology, yet I wasn't too familiar with it, so I felt I should blog about it. One of the situation where I think it is very appropriate to use this is to create custom configurations and read/save/modify them for web (server) or desktop applications. Using the asp.net Cache class it is also possible to assign the serialized file as a cache dependency thereby re-read and re-hydrate the serialized object from the xml file. This is a perfect scenario for xml configuration files. The below links are references and the code is from "switch on the code c# xml serialization tutorial", link shown below.
STEP 2: Serialize it to Xml using the XmlSerializer class:
It would produce an XML file, named movie.xml, as:
- http://stackoverflow.com/questions/1186743/replacement-for-xml-serialization
- http://code.google.com/apis/protocolbuffers/docs/javatutorial.html
- [Great] http://www.switchonthecode.com/tutorials/csharp-tutorial-xml-serialization
- http://www.developer.com/net/csharp/article.php/3110371/SerializationDeserialization-in-NET.htm
- [Great] http://www.dotnetjohn.com/articles.aspx?articleid=173
public class Movie
{
public string Name
{ get; set; }
public int Rating
{ get; set; }
public DateTime ReleaseDate
{ get; set; }
}
{
public string Name
{ get; set; }
public int Rating
{ get; set; }
public DateTime ReleaseDate
{ get; set; }
}
STEP 2: Serialize it to Xml using the XmlSerializer class:
static public void SerializeToXML(Movie movie)
{
XmlSerializer serializer = new XmlSerializer(typeof(Movie));
TextWriter textWriter = new StreamWriter(@"C:\movie.xml");
serializer.Serialize(textWriter, movie);
textWriter.Close();
}
{
XmlSerializer serializer = new XmlSerializer(typeof(Movie));
TextWriter textWriter = new StreamWriter(@"C:\movie.xml");
serializer.Serialize(textWriter, movie);
textWriter.Close();
}
It would produce an XML file, named movie.xml, as:
<?xml version="1.0" encoding="utf-8"?>
<Movie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Title>Starship Troopers</Title>
<Rating>6.9</Rating>
<ReleaseDate>1997-11-07T00:00:00</ReleaseDate>
</Movie>
<Movie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Title>Starship Troopers</Title>
<Rating>6.9</Rating>
<ReleaseDate>1997-11-07T00:00:00</ReleaseDate>
</Movie>
STEP 3: Modify the Xml file and deserialize (update and re-hydrate) the .net object from the xml file:
static Movie DeserializeFromXML()
{
XmlSerializer deserializer = new XmlSerializer(typeof(Movie));
TextReader textReader = new StreamReader(@"C:\movie.xml");
Movie movie = (Movie)deserializer.Deserialize(textReader);
textReader.Close();
return movie;
}
{
XmlSerializer deserializer = new XmlSerializer(typeof(Movie));
TextReader textReader = new StreamReader(@"C:\movie.xml");
Movie movie = (Movie)deserializer.Deserialize(textReader);
textReader.Close();
return movie;
}
Labels:
.net,
asp.net,
config file,
configuration file,
xml
Wednesday, November 4, 2009
Flex: Export chart / graph or some other component to image (save as image)
This was a non trivial issue prior to Flex 3 - most people had approached this using a mix of client and server side technologies, even using javascript as well. But most of the solutions were not simple or elegant, this is where Flex3 came to the rescue with the ImageSnapshot class. Doug McCune created an interesting approach using javascript and serializing image bytes to the browser address bar, although not simple, it is creative and that dynamic chart is great.
Today it is a very simple thing to do. It is a two fold problem with a very easy implementation thanks to the awesome flex framework.Graham Odds wrote a great article on how to do this and I'm elaborating on his article.
Below is the code snippet to do this (source) :
Today it is a very simple thing to do. It is a two fold problem with a very easy implementation thanks to the awesome flex framework.Graham Odds wrote a great article on how to do this and I'm elaborating on his article.
- Save the UIComponent as an image (you can specify the image format) using the ImageSnapshot class
- Send the image to be saved to the user's computer (using the FileReference class from Flash 10)
Below is the code snippet to do this (source) :
/** * Attempts to save the chart to the user's file-system. */ private function saveChart():void { var image:ImageSnapshot = ImageSnapshot.captureImage(myChart, 300, new PNGEncoder()); var file:FileReference = new FileReference(); file.save(image.data, "chart.png"); }
Saturday, October 31, 2009
Transform any flex component with resizing, dragging with handles
Try it out yourself:
This is called "Flex Object Handles" available from Marc Hughes. This project is available on google code and has excellent tutorials, documentation, forum activity and support. This library supports using a custom container for flex components to enable thme to be resizable, draggable, moveable and provides handles etc.
Another example:
This is called "Flex Object Handles" available from Marc Hughes. This project is available on google code and has excellent tutorials, documentation, forum activity and support. This library supports using a custom container for flex components to enable thme to be resizable, draggable, moveable and provides handles etc.
Another example:
Wednesday, October 28, 2009
Interesting article on how a plane ticket can be free
In europe there are plane tickets that costs around $20. How is this possible?
The article below explains this.
The article below explains this.
Subscribe to:
Posts (Atom)
