<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>dotnet &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/dotnet/</link>
	<description>Feed of posts on WordPress.com tagged "dotnet"</description>
	<pubDate>Sun, 29 Nov 2009 04:51:24 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[C# Class Libraries]]></title>
<link>http://wburris.com/2009/11/29/c-class-libraries/</link>
<pubDate>Sun, 29 Nov 2009 03:33:51 +0000</pubDate>
<dc:creator>wburris</dc:creator>
<guid>http://wburris.com/2009/11/29/c-class-libraries/</guid>
<description><![CDATA[When writing programs for .NET it works best to put all code into class libraries. This makes it eas]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>When writing programs for .NET it works best to put all code into class libraries. This makes it easier to reuse the code in other .NET projects as well as in other environments.</p>
<p>Here I will do a simple four function calculator to show how to set up multiple class library projects in a single solution in Visual Studio.</p>
<p>The following image shows the projects in the Solution Explorer window.</p>
<p><a title="SolutionExplorer by wburris, on Flickr" href="http://www.flickr.com/photos/billburris/4141892601/"><img src="http://farm3.static.flickr.com/2516/4141892601_22725c3c18_o.jpg" alt="SolutionExplorer" width="284" height="360" /></a></p>
<p>The CsLibDemo is a Windows Application project. The other projects are Class Library projects.  When the wizard created the CsLibDemo project it created the Program.cs file and a Windows Form file.  I moved the Windows Form file to the CsLibDemoUI project. Any user interface Forms and Control Librairs that are specific to this application can be put into this project.  Any user interface classes that are to be used in other applications should be placed in a separate project.</p>
<p>The following image is a screen shot of Windows Explorer, showing how the projects are organized on the hard drive.</p>
<p><a title="WindowsExplorer by wburris, on Flickr" href="http://www.flickr.com/photos/billburris/4142649402/"><img src="http://farm3.static.flickr.com/2782/4142649402_de31a61387.jpg" alt="WindowsExplorer" width="500" height="175" /></a></p>
<p>The following image is the user interface for testing the class library.</p>
<p><a title="Calc by wburris, on Flickr" href="http://www.flickr.com/photos/billburris/4141892831/"><img src="http://farm3.static.flickr.com/2703/4141892831_22c0552d0d_o.jpg" alt="Calc" width="434" height="196" /></a></p>
<p>Unit testing is useful for ensuring the proper functioning of your class library. Download NUnit from <a href="http://www.nunit.org/index.php">nunit.org</a>. Here is a screen shot of the NUnit program.</p>
<p><a title="NUnit by wburris, on Flickr" href="http://www.flickr.com/photos/billburris/4141892505/"><img src="http://farm3.static.flickr.com/2602/4141892505_2e7a8810df.jpg" alt="NUnit" width="500" height="351" /></a></p>
<p>Here is the code in the Calc.cs file.</p>
<pre class="brush: csharp;">
namespace MyCalc
{
    public class Calc
    {
        public double Add(double a, double b)
        {
            return a + b;
        }

        public double Subtract(double a, double b)
        {
            return a - b;
        }

        public double Multiply(double a, double b)
        {
            return a * b;
        }

        public double Divide(double a, double b)
        {
            return a / b;
        }
    }
}
</pre>
<p>Here is the code from CsLibDemoForm.cs</p>
<pre class="brush: csharp;">
namespace CsLibDemoUI
{
    public partial class CsLibDemoForm : Form
    {
        Calc calc = new Calc();

        public CsLibDemoForm()
        {
            InitializeComponent();
        }

        private void buttonAdd_Click(object sender, EventArgs e)
        {
            textBoxC.Text = calc.Add(double.Parse(textBoxA.Text), double.Parse(textBoxB.Text)).ToString();
        }

        private void buttonSubtract_Click(object sender, EventArgs e)
        {
            textBoxC.Text = calc.Subtract(double.Parse(textBoxA.Text), double.Parse(textBoxB.Text)).ToString();
        }

        private void buttonMultiply_Click(object sender, EventArgs e)
        {
            textBoxC.Text = calc.Multiply(double.Parse(textBoxA.Text), double.Parse(textBoxB.Text)).ToString();
        }

        private void buttonDivide_Click(object sender, EventArgs e)
        {
            textBoxC.Text = calc.Divide(double.Parse(textBoxA.Text), double.Parse(textBoxB.Text)).ToString();
        }
    }
}
</pre>
<p>Here is the unit test code from CalcTest.cs</p>
<pre class="brush: csharp;">
namespace CsLibDemo.Tests
{
	using System;
	using NUnit.Framework;
    using MyCalc;

	[TestFixture]
	public class CalcTest
	{
		protected double dValue1;
		protected double dValue2;
        protected Calc calc;

		[SetUp] public void Init()
		{
			dValue1= 6;
			dValue2= 3;
            calc = new Calc();
		}

		[Test] public void Add()
		{
            double result = calc.Add(dValue1, dValue2);
			Assert.AreEqual(9, result, &#34;Add&#34;);
		}

        [Test]
        public void Subtract()
        {
            double result = calc.Subtract(dValue1, dValue2);
            Assert.AreEqual(3, result, &#34;Subtract&#34;);
        }

        [Test]
        public void Multiply()
        {
            double result = calc.Multiply(dValue1, dValue2);
            Assert.AreEqual(18, result, &#34;Multiply&#34;);
        }

		[Test] public void Divide()
		{
            double result = calc.Divide(dValue1, dValue2);
            Assert.AreEqual(2, result, &#34;Multiply&#34;);
        }
	}
}
</pre>
<p>The unit test code here needs some improvement, but I was keeping it simple for demonstration purposes.</p>
<p>In a future blog I will talk about reusing this class library in LabVIEW.</p>
<p>If anyone has ideas about how to format code in wordpress, or wants more details please leave comments.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The Poor Developer's Object DataStore : Iteration 001]]></title>
<link>http://just3ws.wordpress.com/2009/11/28/the-poor-developers-object-datastore-iteration-001/</link>
<pubDate>Sat, 28 Nov 2009 16:02:21 +0000</pubDate>
<dc:creator>just3ws</dc:creator>
<guid>http://just3ws.wordpress.com/2009/11/28/the-poor-developers-object-datastore-iteration-001/</guid>
<description><![CDATA[You&#8217;re a .NET developer and you&#8217;ve been tasked with creating an archiving system. The sy]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>You&#8217;re a .NET developer and you&#8217;ve been tasked with creating an archiving system. The system needs to take a snapshot of the data and store it to be queried against and reported on later.</p>
<p>How would you implement this? Would you copy the data structure you&#8217;re looking to archive and pull the data state into there? How do you manage foreign keys? Do you squish the data into a single table? Do you recreate all the tables with annotations to identify the archived records? Now, it&#8217;s a few months later and the original data structure has changed. How do you handle that change in your archiving?</p>
<p>Do you really want to recreate that complex data structure and try to wrangle the data into it and manage it over time? No, neither did I and I think there is a better way. Let&#8217;s consider a new way: an <strong>object datastore</strong>.</p>
<p>Let&#8217;s get this out of the way. Object databases aren&#8217;t just for ninjas although they are often wielded by ninjas. An object database is exactly what it sounds like, a <em>database</em> for your <em>objects</em>. No sql, no tables, no object-relational impedance. Just objects persisted similar to how a relational database allows you to store and persist tabular information offline without all the grief of mapping your object-oriented structure onto a relational model. Instead you create your objects and using the database&#8217;s API you can save and query for your data without worrying about sql or any of that mess. My personal favorite OODBMS (object-oriented database management system) is <a href="http://developer.db4o.com/Resources/">db4o</a>. I recommend downloading and playing around with it to get a feel for how simple it is to use. (If you want to learn more about various types of *DBMS check out the great presentation by Ben Scoffield at WindyCityRails 2009 &#8211; <a href="http://windycityrails.org/videos#3">&#8220;Comics&#8221; is Hard</a>.)</p>
<p>There&#8217;s one catch to using db4o in a closed source or proprietary project. You can either pay to license the product. It&#8217;s not too expensive for bringing into a medium sized project. Or you can release your project under GPL. For the project I was working on, neither option was palatable for our client. Also, I didn&#8217;t want to introduce yet another external dependency that our client would have to manage. Instead I created the simplest possible implementation of an object datastore I could using only native .NET and Microsoft Sql Server functionality.</p>
<p>Let&#8217;s look at the problem again. We need to pull out data that will be only used for reading. It&#8217;s not going to be necessary to update or alter the data in anyway. Only store and read. So why bother recreating the original data structure? Why not just query for the data with your ORM of choice and then serialize that result to Xml and store <em>that</em>? If you&#8217;re already using Microsoft Sql Server 2005 or later you&#8217;re already in a very good position as MSSQL provides the Xml datatype which makes storing, querying and retrieving Xml data very easy and efficient.</p>
<p>If you are using an ORM for your data-access (you *ARE* using an ORM aren&#8217;t you?) then you&#8217;re already halfway there. My original implementation utilized custom objects that implemented an IStorable interface. Basically, I used Linq to Sql to query the data I wanted to archive and mapped the query result to an object that implemented the interface. Using that I could save the object into the datastore in a similar manner to <a href="http://en.wikipedia.org/wiki/Active_record_pattern">Active Record</a>. This was very easy to do.</p>
<pre class="brush: csharp;">
public interface IStorable&#60;T&#62;
{
  string ConnectionString { get; set; }
  string Serialize();
  T Deserialize(string xml);
  XmlSerializer CreateSerializer();
  int Save();
}
</pre>
<p>So I could load up my data into a custom object, set the connectionstring and then automatically save it into the database.</p>
<pre class="brush: csharp;">
//a sample unit test demonstrating usage of the IStorable object.
public void TestStoreFoo()
{
  var foo = new Foo();
  foo.Id = 100;
  foo.Name = &#34;Penelope&#34;;
  foo.ConnectionString = &#34;__YourConnectionString__&#34;
  var objectId = foo.Save();
  Assert.That(objectId == 1);
}
</pre>
<p>So here&#8217;s the implementation. If you wish to grab the source code don&#8217;t try to cut and paste it from here. All the source code for this blog post can be browsed and downloaded from <a href="http://github.com/just3ws">GitHub</a>.</p>
<p><a href="http://github.com/just3ws/PoorDevsObjectDataStore/tree/master/src/PoorDevsObjectDataStore.Examples/Iteration001/">Source Code for Iteration 001</a></p>
<p>First we must implement the IStorable interface. The interface must take the implementing type as it&#8217;s generic argument. This is because we&#8217;re providing functionality for the object to serialize and store itself.</p>
<pre class="brush: csharp;">
public class Foo : IStorable&#60;Foo&#62;
{
</pre>
<p>The Foo.Id and Foo.Name are our data. They are not part of the IStorable implementation.</p>
<pre class="brush: csharp;">
  public int Id { get; set; }
  public string Name { get; set; }
</pre>
<p>We need to provide the connectionstring to the database where the objects are going to be stored.</p>
<pre class="brush: csharp;">
  public string ConnectionString { get; set; }
</pre>
<p>Now we&#8217;re getting to the fun part. We will use an in-memory stream to serialize this instance of the Foo object and then write it to a string.</p>
<pre class="brush: csharp;">
  public string Serialize()
  {
    string output;
    using(var buffer = new MemoryStream())
    {
      new XmlSerializer(typeof(Foo)).Serialize(buffer, this);
      buffer.Position = 0;
      output = new StreamReader(buffer).ReadToEnd();
    }
    return output;
  }
</pre>
<p>The deserialize method takes the xml as a string from a previous serialization and will attempt to convert it back into a Foo instance.</p>
<pre class="brush: csharp;">
  public Foo Deserialize(string xml)
  {
    return (Foo)new XmlSerializer(typeof(Foo)).Deserialize(new StringReader(xml));
  }
</pre>
<p>In order to serialize a type we must create a typed instance of a serializer object. Here we&#8217;re just creating a Foo serializer and setting the error event handlers to output it&#8217;s errors to standard output.</p>
<pre class="brush: csharp;">
  public XmlSerializer CreateSerializer()
  {
    var serializer = new XmlSerializer(typeof(Foo));
    //simply output error messages for types that we don't know how to serialize.
    serializer.UnknownAttribute += ((sender, e)=&#62;Console.Out.WriteLine(e));
    serializer.UnknownElement += ((sender, e)=&#62;Console.Out.WriteLine(e));
    return serializer;
  }
</pre>
<p>The save method is where we will kick off the work. We take this current instance and apply the Serialize() method to itself which converts the instance to a xml string. We also capture the fully-qualified name of the object type, both the namespace and the type name. This will be important when we are ready to pull the object back out of the datastore.</p>
<p>Here I&#8217;m using a Linq to Sql context, you may use any ORM as long as it supports the Microsoft Sql Server Xml datatype.</p>
<pre class="brush: csharp;">
  public int Save()
  {
    using(var context = new Example001DataContext(this.ConnectionString))
    {
      var entity = new Example001ObjectDataStore {
        Serialized = XElement.Parse(this.Serialize()),
        FullyQualifiedTypeName = this.GetType().FullName
      };
      context.Example001ObjectDataStores.InsertOnSubmit(entity);
      context.SubmitChanges();
      return entity.Id;
    }
  }
}
</pre>
<p>The underlying data table is very simple. Only a single table with a field for storing the serialized xml data and a field for storing the fully qualified name of the object.<br />
<div id="attachment_480" class="wp-caption aligncenter" style="width: 433px"><a href="http://just3ws.wordpress.com/files/2009/11/iteration_001_table_definition.png"><img src="http://just3ws.wordpress.com/files/2009/11/example_001.png" alt="The Poor Developer&#39;s Object DataStore: Iteration 001, diagram" title="poordevsobjectdatastore_iteration001_example_001_table" width="423" height="180" class="size-full wp-image-480" /></a><p class="wp-caption-text">The Iteration 001 Object DataStore Table Definition</p></div></p>
<p>In this post we&#8217;ve got the ball rolling for storing objects into some some table. We can create an object that knows how to write itself into a database without requiring the creation of an elaborate data structure in order to just to simulate the object structure.</p>
<p>Next post we&#8217;ll cover how to retrieve the data from the table and convert it back into an instance of the persisted type. Next post we&#8217;ll look at how we can really test the functionality and behavior of the system. And begin to explore how to abstract the datastore to support arbitrary objects (with some minor restrictions.)</p>
<p>The source code for this project is hosted on <a href="http://github.com/just3ws">GitHub </a>and can be downloaded from <a href="http://github.com/just3ws/PoorDevsObjectDataStore/tree/master/src/PoorDevsObjectDataStore.Examples/Iteration001/">here</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SCRIBEFIRELl0UJxpmR2SCRIBEFIRE]]></title>
<link>http://just3ws.wordpress.com/2009/11/28/scribefirell0ujxpmr2scribefire/</link>
<pubDate>Sat, 28 Nov 2009 01:58:45 +0000</pubDate>
<dc:creator>just3ws</dc:creator>
<guid>http://just3ws.wordpress.com/2009/11/28/scribefirell0ujxpmr2scribefire/</guid>
<description><![CDATA[SCRIBEFIREol26UBNsSCRIBEFIRE]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>SCRIBEFIREol26UBNsSCRIBEFIRE</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[PDC 2009 - .NET Developers Short Review and Bleeding Edge Download Links]]></title>
<link>http://startbigthinksmall.wordpress.com/2009/11/27/many-many-download-links-and-a-short-review-over-the-contents-of-the-pdc-09/</link>
<pubDate>Fri, 27 Nov 2009 16:30:12 +0000</pubDate>
<dc:creator>Lars Corneliussen</dc:creator>
<guid>http://startbigthinksmall.wordpress.com/2009/11/27/many-many-download-links-and-a-short-review-over-the-contents-of-the-pdc-09/</guid>
<description><![CDATA[This years PDC was great. I think the big deal this year was “Integration”. I’ve never seen so many ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This years PDC was great. I think the big deal this year was “Integration”. I’ve never seen so many bits working together at such an early state.</p>
<p>I’ll walk through what I’ve seen and provide some detailed information plus the corresponding downloads I’ve found. It is insane, how many CTPs and Betas Microsoft offers right now.</p>
<p>These are the topics I will cover. Click to jump to the corresponding section.</p>
<ul>
<li><a href="#vs2010">Visual Studio 2010 + .NET Framework 4</a>, <a href="#vs2010_downloads">Downloads</a> </li>
<li><a href="#sl4">Silverlight 4</a>, <a href="#sl4_downloads">Downloads</a> </li>
<li><a href="#ef4">Entity Framework 4</a>, <a href="#ef4_downloads">Downloads</a> </li>
<li><a href="#odata">OData / WCF Data Services (neé “Astoria”)</a>, <a href="#odata_downloads">Downloads</a> </li>
<li><a href="#sqlmodeling">SQL Server Modelling (neé “Oslo”)</a>, <a href="#sqlmodeling_downloads">Downloads</a> </li>
<li><a href="#office2010">Office and Sharepoint 2010</a>, <a href="#office2010_downloads">Downloads</a> </li>
<li><a href="#sql2008r2">SQL Server 2008 R2</a>, <a href="#sql2008r2_downloads">Downloads</a> </li>
<li><a href="#appfabric">AppFabric (neé “Dublin” and “Velocity”)</a>, <a href="#appfabric_downloads">Downloads</a> </li>
<li><a href="#azure">Windows Azure</a>, <a href="#azure_downloads">Downloads</a> </li>
<li><a href="#servicebus">.NET Service Bus</a>, <a href="#servicebus_downloads">Downloads</a> </li>
<li><a href="#wif">Windows Identity Foundation (neé “Geneva”)</a>, <a href="#wif_downloads">Downloads</a> </li>
<li><a href="#win7">Windows 7</a>, <a href="#win7_downloads">Downloads</a> </li>
</ul>
<h3><a name="vs2010">Visual Studio 2010 + .NET Framework 4</a></h3>
<p>I’ll start with Visual Studio, because it spans all of it. </p>
<p>In the last years especially Visual Studio was lagging behind. It didn’t even have good support for debugging LINQ in C# – what could we then expect from integration with other products from Microsoft.</p>
<p>But now Visual Studio comes not only with an improved debugger, but also with many, many new project templates, enhanced deployment features for web and SharePoint, an extension manager bound to an online extension gallery, and many-many more features.</p>
<p>Maybe the reason for the more integrated development environment is the huge improvement in Visual Studio Extensibility. Download the SDK if you plan to write your own plugins.</p>
<p>If you want to know more about the “.NET Framework 4.0”, Google has a good coverage on “C# 4.0”, “Windows Workflow 4.0”, “Windows Communication Foundation 4.0”, “Entity Framework 4.0” &#8230;</p>
<h4><strong><a name="vs2010_downloads">Downloads</a></strong></h4>
<ul>
<li><a title="Microsoft Visual Studio 2010 Ultimate simplifies solution development, lowering risk and increasing return. Tools for every stage of the lifecycle, from design and development through test and deployment, let you unleash your imagination and deliver impactful solutions." href="http://www.microsoft.com/downloads/details.aspx?FamilyID=92c65d2d-0a6b-4507-a4dc-767f4cc6e823&#38;displaylang=en">VS 2010 Ultimate Beta 2</a> (Web Installer) </li>
<li><a title="The Visual Studio 2010 SDK Beta 2 provides tools and templates for building Visual Studio extensions. By using the Visual Studio SDK, you can build your own tool windows, create menu commands, and add extensions to the new Visual Studio editor and other features." href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cb82d35c-1632-4370-acfb-83c01c2ece24&#38;displaylang=en">VS 2010 SDK Beta 2</a> </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=752CB725-969B-4732-A383-ED5740F02E93&#38;displaylang=en">VS 2010 and .NET 4 Training Kit</a> </li>
<li><a href="http://channel9.msdn.com/learn/courses/vs2010/">VS 2010 and .NET 4 Training Course</a> </li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com">VS 2010 Extensions</a>&#160; </li>
<li><a href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx">more…</a> </li>
</ul>
<h3><a name="sl4">Silverlight 4</a></h3>
<p>Maybe the announcements around Silverlight 4 were the biggest. The Silverlight team has made incredible progress in the last couple years. With Silverlight 4 they seem to eliminate most of the drawbacks it had compared to WPF. I can’t see yet where this goes, but a Silverlight OS could absolutely be a nice answer to the Chrome OS. And then we are back to terminals and mainframes.</p>
<p>Among the new features are a better out-of-the-browser experience including full-trust mode. Also new is webcam and microphone access, a richtext/html editor and a browser control. The browser control can also embed flash. And it can be used as a brush, in other words, it lets you run YouTube videos while applying any Silverlight effects.</p>
<p><strong><a name="ef4_downloads">Downloads</a></strong></p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9fa8afe9-cad6-4090-a7f6-7d9cdc560e2d&#38;displaylang=en">Silverlight 4 Tools</a> </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=91998faf-d2df-42bb-af2e-17d43d7ce078&#38;displaylang=en">WCF RIA Services for Silverlight 4</a> </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6806e466-dd25-482b-a9b3-3f93d2599699&#38;displaylang=en">Expression Blend Preview for .NET 4</a> </li>
<li><a href="http://timheuer.com/blog/archive/2009/11/22/pdc-silverlight-resources-link-dump-learn-silverlight.aspx">more</a>, and even <a href="http://silverlight.net/getstarted/silverlight-4-beta/">more</a>&#160; </li>
</ul>
<h3><a name="ef4">Entity Framework 4</a></h3>
<p>After the entity framework came out in V1, many of the industry’s thought leaders called it a joke. The team has tried to incorporate most of that Feedback in EF V2 (Called V4 to align with .NET 4).</p>
<p>Together with the .NET Framework 4 Beta 2 and the Futures CTP you get code-only and model-first including SQL schema generation. There are also alot improvements in the designer and the query performance. Haven’t really checked out the details so far.</p>
<p><strong><a name="ef4_downloads">Downloads</a></strong></p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&#38;FamilyID=13fdfce4-7f92-438f-8058-b5b4041d0f01">Entity Framework Futures CTP</a> </li>
<li><a href="http://msdn.microsoft.com/en-us/data/ee720194.aspx">more…</a> </li>
</ul>
<h3><a name="odata">OData / WCF Data Services (neé “Astoria”)</a></h3>
<p>The Open Data Protocol (OData) has been developed to support a convention-oriented REST-style API over data of any kind. It builds on atom/pub and adds optional metadata, querying and projections. Using the .NET OData Client (WCF Data Services) you can use LINQ against any OData source. Sharepoint 2010 will expose all data via OData. Any application that uses the Entity Framework can very simply expose it’s data over the protocol.</p>
<p>Also SQL Server Excel PoverPivot (neé Gemini) supports OData and lets you interact with huge amounts of data the Excel-way.</p>
<p><strong><a name="odata_downloads">Downloads</a></strong></p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a71060eb-454e-4475-81a6-e9552b1034fc&#38;displaylang=en#filelist">ADO.NET Data Services v1.5 CTP2</a> </li>
<li><a href="http://visualstudiogallery.msdn.microsoft.com/en-us/f4ac856a-796e-4d78-9a3d-0120d8137722">Open Data Protocol Visualizer</a> </li>
<li><a href="http://msdn.microsoft.com/en-us/data/ee720194.aspx"></a><a href="http://msdn.microsoft.com/en-us/data/ee720182.aspx">more…</a></a> </li>
</ul>
<h3><a name="sqlmodeling">SQL Server Modelling (neé “Oslo”)</a></h3>
<p>In a couple of sessions Doug, Chris, Don and Chris showed the new features in the November CTP. The team has made some progress, although it is easy to see, that they have much homework left. Some of the new features are the better Visual Studio Integration, a ASP.NET MVC project supporting “M” for the M in MVC, debugging support in DSLs, richer right-hand grammar productions, support for views in “Quadrant”. Also the Modeling Services where officially announced to be part of SQL Server in some future release.</p>
<p>I’ll spend a new post on more of the changes soon.</p>
<p>Also, today I think, that Quadrant will not replace the DSL Tools in Visual Studio. Those have made much progress and will rather be improved and merged with “M”.</p>
<p><strong><a name="sqlmodeling_downloads">Downloads</a></strong></p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=29e4ead0-fd81-42ba-862b-f3589378466a&#38;displaylang=en">SQL Server Modeling CTP Nov 2009</a> </li>
<li><a title="Microsoft Visual Studio 2010 Ultimate simplifies solution development, lowering risk and increasing return. Tools for every stage of the lifecycle, from design and development through test and deployment, let you unleash your imagination and deliver impactful solutions." href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f5431a70-b421-4be6-8fd3-6b27abda0817&#38;displaylang=en">VS DSL Tools SDK Beta2</a> (4 MB) </li>
<li><a href="http://msdn.microsoft.com/en-us/data/ee461169.aspx">SQL Server Modeling Services</a> </li>
<li><a href="http://blogs.msdn.com/modelcitizen/archive/2009/11/17/announcing-the-sql-server-modeling-n-e-oslo-ctp-for-november-2009.aspx">more…</a> </li>
</ul>
<h3><a name="office2010">Office and Sharepoint 2010</a></h3>
<p>No matte who I asked, nobody liked SharePoint development so far. From what I’ve seen this might change in the future. There has been much focus on the developer experience for SharePoint customization. Deployment and packaging seems to be much more fluent, and the horrible SharePoint web service interfaces will be superseded by the new generic OData implementation over lists and libraries. There is also better support for embedding Silverlight, and Microsoft finally promises a good user experience even when using Firefox or Safari.</p>
<p>I just like Office 2010, but I haven’t done any customization for Office since the good old VBA times. I think the web-versions of Office built into SharePoint are really cool. They allow collaborative editing like in Google Docs. I’ll check out this stuff soon!</p>
<p><strong><a name="office2010_downloads">Downloads</a></strong></p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/evalcenter/ee390822.aspx">Office Professional Plus 2010 Beta</a> </li>
<li><a href="http://visiotoolbox.com/2010/">Visio 2010</a> </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&#38;FamilyID=906c9f5a-6505-4eba-bf24-95e423ac1703">SharePoint Foundation 2010 Beta</a> (formerly WSS)</li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&#38;FamilyID=77c30c6c-47fc-416d-88e7-8122534b3f37">SharePoint Server 2010 Beta</a> (formerly SP Portal Server)</li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&#38;FamilyID=82df15bd-16a5-460e-a7c4-22599c669bb1">SharePoint Designer 2010 Beta</a> </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&#38;FamilyID=f0c9daf3-4c54-45ed-9bde-7b4d83a8f26f">SharePoint 2010 Reference Development Kit</a> </li>
<li>more: <a href="http://msdn.microsoft.com/en-us/sharepoint/ee514561.aspx">SharePoint 2010 Dev Center</a>, <a href="http://msdn.microsoft.com/en-us/office/default.aspx">Office 2010 Dev Center</a>, <a href="http://www.microsoft.com/project/2010/en/us/default.aspx">Project 2010</a> </li>
</ul>
<h3><a name="sql2008r2">SQL Server 2008 R2</a></h3>
<p>In the last couple of weeks I had to do a lot with SQL Server. The thing is, still devs do not care much about new SQL Server versions. They do rather talk about persistence ignorance. Even the Xml/XQuery implementations well the hosting of the CLR inside the SQL Engine did not really touch the developers hearts.</p>
<p>But often the heart of the application is data. And the more you have to do with it with fast response times, the closer you’ll have to operate on it. Another argument is, that Microsoft emerges the brand “SQL” from a relational RDBMS engine to a data platform including Analysis Services, Reporting, Integration Services, and so on …</p>
<p>Some of the new features are StreamInsight, the Excel PoverPivot plugin and more…</p>
<p><strong><a name="sql2008r2_downloads">Downloads</a></strong></p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&#38;FamilyID=c772467d-e45b-43e1-9208-2c7b663d7ad1">SQL Server 2008 R2 NOV CTP – Express</a> (Scroll down there, to see the download options) </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=020EE0D5-BCE4-4A45-9D64-B0C49C8831E5&#38;displayLang=en">SQL Server 2008 R2 NOV CTP Feature Pack</a> (Scroll down there to see the options. Excel PowerPivot, Reporting Services for Sharpoint, Command-line and PowerShell support, PHP Driver, …) </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=01c664e4-1c98-4fc8-93ee-08cc039503c1&#38;displaylang=en">SQL Server® 2008 R2 NOV CTP StreamInsight Refresh</a> </li>
<li><a href="http://www.microsoft.com/sqlserver/2008/en/us/R2Downloads.aspx#none">more…</a> </li>
</ul>
<h3><a name="appfabric">AppFabric (neé “Dublin” and “Velocity”)</a></h3>
<p>“Dublin” was Microsofts promise to deliver a more manageable Application Server for .NET, WF and WCF solutions. But since it was announced there were no public CTPs or anything that we could have played around with.</p>
<p>At the same time “Velocity”, a memory cache, has had more publicity.</p>
<p>Those two are now merged in the AppFabric, promising a reliable host for the workflow foundation runtime and hopefully in the future a good replacement for NT services.</p>
<p>There have been rumors, that it enters the space of EAI, that BizTalk tried to cover so far. But the promise is, that they have different intents and will play nicely together.</p>
<p><strong><a name="appfabric_downloads?">Downloads</a></strong></p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=0BD0B14F-D112-4F11-94BF-90B489622EDD&#38;displaylang=en">Windows Server AppFabric Beta 1</a> </li>
<li><a href="http://msdn.microsoft.com/appfabric">more…</a> </li>
</ul>
<h3><a name="azure">Windows Azure</a></h3>
<p>I’m not into it yet. But it looks promising. Let me just provide the links to the downloads I found. </p>
<p><strong><a name="azure_downloads">Downloads</a></strong></p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=6967FF37-813E-47C7-B987-889124B43ABD&#38;displaylang=en">Windows Azure Tools for Microsoft Visual Studio (November 2009)</a> </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=413E88F8-5966-4A83-B309-53B7B77EDF78&#38;displaylang=en">Windows Azure Platform Training Kit</a> </li>
<li><a href="http://msdn.microsoft.com/en-us/azure/default.aspx">more…</a> </li>
</ul>
<h3><a name="servicebus">.NET Service Bus</a></h3>
<p>The .NET Service Bus is really interesting stuff. Somebody explained it as “Skype knowledge in a box”. This means, the .NET Service Bus helps you to set up secure duplex communication channels through firewalls and routers. It just leads your calls through the NAT jungle. </p>
<p>What you simply do, is creating a public namespace on “the internet”, where you then register your WCF service. Clients may then access your service through the Azure Cloud. Bye, bye DMZ!!</p>
<p>You can also use it to negotiate the connection details and then have it set up a direct TCP/IP connection between your server and the calling client.</p>
<p>In both modes, you’ll also be able to send messages to your clients, through all this expensive infrastructure that is intended to avoid those scenarios <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The .NET Service Bus is part of the .NET Services SDK which also contains the Access Control Service and Workflow Services in the cloud.</p>
<p><strong><a name="servicebus_downloads">Downloads</a></strong></p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=C80EBADF-7EB8-4A62-ABCD-0B57FA3855F8&#38;displaylang=en">.NET Services SDK</a> </li>
<li><a href="http://msdn.microsoft.com/pt-br/azure/netservices.aspx">more&#8230;</a> </li>
</ul>
<h3><a name="wif">Windows Identity Foundation (neé “Geneva”)</a></h3>
<p>Federated claims-based security. Everybody is talking about it. After Microsoft tried to reach through with Card Space and Live ID, this finally seems to be their answer to OpenID.</p>
<p>I’ll definitely take some time digging into it. I’m also interested in how it interacts with the SQL Server Modeling Services for System.Identity.</p>
<p><strong><a name="wif_downloads">Downloads</a></strong></p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=EB9C345F-E830-40B8-A5FE-AE7A864C4D76&#38;displaylang=en&#38;hash=HykGRNmtxdvu4Sf9GAWf4loUGfv3REchCeOD97g3%2fRV%2bjSKSINxLPjSgLeiVEL%2fkN3KMxm0ecPJwKJxQIJ7jNw%3d%3d">Windows Identity Foundation</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=C148B2DF-C7AF-46BB-9162-2C9422208504&#38;displaylang=en">Windows Identity Foundation SDK</a> </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=C3E315FA-94E2-4028-99CB-904369F177C0&#38;displaylang=en">Identity Developer Training Kit</a> </li>
<li><a href="http://technet.microsoft.com/en-us/evalcenter/ee476597.aspx">CardSpace 2.0 and Active Directory Federation Services 2.0 Beta 2</a> </li>
<li><a href="http://msdn.microsoft.com/en-us/security/aa570351.aspx">more&#8230;</a> </li>
</ul>
<ul></ul>
<h3><a name="win7">Windows 7</a></h3>
<p>Windows 7 is great! What I’m interested in most, is multi-touch. I think this will be the default for every monitor and notebook in just a couple of years.</p>
<p>If you find any nice multitouch enabled applications, please give me a hint at <a href="http://multitouch-apps.com">http://multitouch-apps.com</a>.</p>
<p><strong><a name="win7_downloads">Downloads</a></strong></p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&#38;displaylang=en">Microsoft Windows 7 SDK</a> </li>
<li><a href="http://code.msdn.microsoft.com/WindowsAPICodePack">Windows® API Code Pack for Microsoft® .NET Framework &#8211; Home</a> </li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?familyid=1C333F06-FADB-4D93-9C80-402621C600E7&#38;displaylang=en">Windows 7 Training Kit For Developers</a> </li>
<li><a href="http://msdn.microsoft.com/en-us/library/dd371748%28VS.85%29.aspx">more&#8230;</a></li>
</ul>
<p>Have fun!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[usefullinks]]></title>
<link>http://dharmas.wordpress.com/2009/11/27/usefullinks/</link>
<pubDate>Fri, 27 Nov 2009 08:32:42 +0000</pubDate>
<dc:creator>dharmas</dc:creator>
<guid>http://dharmas.wordpress.com/2009/11/27/usefullinks/</guid>
<description><![CDATA[&nbsp; .LOG (Case Sensitive) 4:32 PM 6/5/2008 runatstartup is a project for startups 5:09 PM 6/10/20]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>&#160;</p>
<div id="_mcePaste">.LOG (Case Sensitive)</div>
<div id="_mcePaste">4:32 PM 6/5/2008</div>
<div id="_mcePaste">runatstartup is a project for startups</div>
<div id="_mcePaste">5:09 PM 6/10/2008</div>
<div id="_mcePaste">http://www.dreamincode.net/forums/index.php?s=313ab0391dd4fc57658059a2638dec80&#38;showtopic=50944&#38;pid=352228&#38;st=0&#38;#entry352228</div>
<div id="_mcePaste">5:21 PM 6/10/2008</div>
<div id="_mcePaste">http://www.c-sharpcorner.com/UploadFile/mosessaur/winformsdelegates09042006094826AM/winformsdelegates.aspx</div>
<div id="_mcePaste">the communctaion between diff windows forms using delegates</div>
<div id="_mcePaste">http://www.codeproject.com/KB/menus/MyLanApp.aspx&#8212;-LAn messenger</div>
<div id="_mcePaste">5:31 PM 6/10/2008</div>
<div id="_mcePaste">http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx&#8211;converting vb.net to c#</div>
<div id="_mcePaste">http://freesendingmessage.surfpack.com/&#8212;free sending messages</div>
<div id="_mcePaste">http://www.codeproject.com/KB/IP/ChatMasala.aspx&#8212;chat masala</div>
<div id="_mcePaste">5:53 PM 6/10/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/mobile/colorinvasion.aspx&#8212;a samll game for dotnet</div>
<div id="_mcePaste">6:42 PM 6/10/2008</div>
<div id="_mcePaste">11:57 AM 6/12/2008</div>
<div id="_mcePaste">http://dotnetcurry.com/ShowArticle.aspx?ID=111</div>
<div id="_mcePaste">http://weblogs.asp.net/leftslipper/archive/2007/02/26/sys-webforms-pagerequestmanagerparsererrorexception-what-it-is-and-how-to-avoid-it.aspx?CommentPosted=true#commentmessage</div>
<div id="_mcePaste">12:02 PM 6/12/2008</div>
<div id="_mcePaste">http://www.c-sharpcorner.com/UploadFile/mahesh/WorkingwithTimerControlinCSharp11302005054911AM/WorkingwithTimerControlinCSharp.aspx</div>
<div id="_mcePaste">12:05 PM 6/12/2008</div>
<div id="_mcePaste">http://www.dnzone.com/ShowDetail.asp?NewsId=1387&#8211;word doc</div>
<div id="_mcePaste">12:06 PM 6/12/2008</div>
<div id="_mcePaste">http://www.plus2net.com/javascript_tutorial/text-onclick.php&#8211;script</div>
<div id="_mcePaste">dynamicdrive.com&#8211;script</div>
<div id="_mcePaste">12:19 PM 6/12/2008</div>
<div id="_mcePaste">microsoft.com/traincert/mcpexams/prepare/practisetest.asp</div>
<div id="_mcePaste">http://www.dotnetbips.com/articles/c1e0ca90-5f5d-47aa-a739-492b562e810a.aspx//to add grid</div>
<div id="_mcePaste">12:52 PM 6/12/2008</div>
<div id="_mcePaste">http://www.akadia.com/services/dotnet_user_controls.html#User%20controls&#8211;custom controls</div>
<div id="_mcePaste">1:57 PM 6/14/2008</div>
<div id="_mcePaste">http://safari.oreilly.com/0672325896/ch14lev1sec3&#8211;scroll a message in web</div>
<div id="_mcePaste">2:10 PM 6/14/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/cs/ScrollingMesageBar.aspx==scroll a message in windows</div>
<div id="_mcePaste">3:49 PM 6/14/2008</div>
<div id="_mcePaste">skydrive.live.com&#8211; on line 5 gb storage&#8211;dharma@hyderabadrocks.in</div>
<div id="_mcePaste">3:56 PM 6/14/2008</div>
<div id="_mcePaste">dharmaveer.spaces.live.com&#8212;&#8221;"</div>
<div id="_mcePaste">4:30 PM 6/14/2008</div>
<div id="_mcePaste">11:49 AM 6/16/2008</div>
<div id="_mcePaste">http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=78&#8211;store dprocedures</div>
<div id="_mcePaste">5:05 PM 6/16/2008</div>
<div id="_mcePaste">http://www.functionx.com/sqlserver/Lesson16.htm&#8211;stored poc</div>
<div id="_mcePaste">http://www.sommarskog.se/share_data.html&#8211;stored proc</div>
<div id="_mcePaste">3:53 PM 6/17/2008</div>
<div id="_mcePaste">http://www.daniweb.com/forums/thread106200.html&#8211;stored procedure+dataset</div>
<div id="_mcePaste">5:54 PM 6/19/2008</div>
<div id="_mcePaste">http://ceoandhra.nic.in/draft_erolls_2007.html&#8211;electroll</div>
<div id="_mcePaste">5:55 PM 6/19/2008</div>
<div id="_mcePaste">10:41 AM 6/21/2008</div>
<div id="_mcePaste">4:00 PM 6/24/2008</div>
<div id="_mcePaste">6:55 PM 6/24/2008</div>
<div id="_mcePaste">www.yellowpages.co.in</div>
<div id="_mcePaste">6:55 PM 6/24/2008</div>
<div id="_mcePaste">5:15 PM 6/26/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/aspnet/FullGridPagerNVS.aspx</div>
<div id="_mcePaste">5:21 PM 6/26/2008</div>
<div id="_mcePaste">http://www.kiko-santos.com/2006/05/custom-paging-in-gridview-control/</div>
<div id="_mcePaste">6:22 PM 6/26/2008</div>
<div id="_mcePaste">http://bdotnet.in/blogs/tekexplore/archive/2008/04/08/custom-paging-in-gridview-control.aspx</div>
<div id="_mcePaste">7:01 PM 6/26/2008</div>
<div id="_mcePaste">http://www.orble.com/paging-in-gridview/</div>
<div id="_mcePaste">10:59 AM 6/27/2008</div>
<div id="_mcePaste">12:01 PM 6/27/2008</div>
<div id="_mcePaste">5:49 PM 6/30/2008</div>
<div id="_mcePaste">http://search.live.com/video/results.aspx?q=visual+studio+2008&#38;go=&#38;form=QBVR</div>
<div id="_mcePaste">8:00 PM 7/3/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/aspnet/ImageMap.aspx&#8211;imagemap</div>
<div id="_mcePaste">12:38 PM 7/10/2008</div>
<div id="_mcePaste">http://kb.adobe.com/selfservice/viewContent.do?externalId=ca65e605</div>
<div id="_mcePaste">12:43 PM 7/10/2008</div>
<div id="_mcePaste">3:15 PM 7/10/2008</div>
<div id="_mcePaste">http://www.dvdvideosoft.com/free-dvd-video-software.htm&#8212;video convertion s/w s</div>
<div id="_mcePaste">4:57 PM 7/11/2008</div>
<div id="_mcePaste">http://forums.asp.net/t/1192746.aspx&#8211;gridview+linkbutton+label</div>
<div id="_mcePaste">3:16 PM 7/14/2008</div>
<div id="_mcePaste">http://www.macronimous.com/resources/stored_procedures_for_ASP_and_VB_Programmers.asp&#8211;stored procedures</div>
<div id="_mcePaste">3:27 PM 7/14/2008</div>
<div id="_mcePaste">http://www.telerik.com/community/code-library/submission/b311D-tgcgc.aspx&#8211;stored procedures</div>
<div id="_mcePaste">4:42 PM 7/14/2008</div>
<div id="_mcePaste">http://www.vbdotnetheaven.com/UploadFile/sushmita_kumari/Report201242006041121AM/Report2.aspx&#8211;crystal report</div>
<div id="_mcePaste">5:56 PM 7/14/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/cs/Dynamic_Crystal_Report.aspx&#8211;dynamic crystal report</div>
<div id="_mcePaste">11:59 AM 7/15/2008</div>
<div id="_mcePaste">http://www.c-sharpcorner.com/UploadFile/munnamax/viewReport04232006102203AM/viewReport.aspx&#8212;crystal reports &#8211;multiple tables</div>
<div id="_mcePaste">1:01 PM 7/15/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/aspnet/CrystalReport_DotNET2005.aspx&#8212;xml +crystal reports</div>
<div id="_mcePaste">1:22 PM 7/15/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/aspnet/CrystalReportsInDotNet2.aspx&#8211;crystal reporst +condition dataset</div>
<div id="_mcePaste">6:38 PM 7/15/2008</div>
<div id="_mcePaste">http://www.calorisplanitia.com/eschool/default.aspx&#8211;school management system</div>
<div id="_mcePaste">4:28 PM 7/18/2008</div>
<div id="_mcePaste">http://forums.asp.net/p/1259475/2350075.aspx&#8211;paging grid</div>
<div id="_mcePaste">5:34 PM 7/18/2008</div>
<div id="_mcePaste">http://weblogs.asp.net/rajbk/archive/2006/08/14/GridView-DropDownList-Pager.aspx&#8212;posted comment</div>
<div id="_mcePaste">5:55 PM 7/18/2008</div>
<div id="_mcePaste">http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.pagecount(VS.80).aspx&#8212;paging msdn</div>
<div id="_mcePaste">5:09 PM 7/21/2008</div>
<div id="_mcePaste">http://202.138.126.201/&#8211;speed test</div>
<div id="_mcePaste">4:06 PM 7/24/2008</div>
<div id="_mcePaste">3:18 PM 7/25/2008</div>
<div id="_mcePaste">http://forums.msdn.microsoft.com/en-US/csharpgeneral/thread/d8f300e3-6c09-424f-829e-c5fda34c1bc7&#8211;windows service</div>
<div id="_mcePaste">http://forums.msdn.microsoft.com/en-US/csharpgeneral/thread/007956ac-787c-4c2a-8beb-35aa67ea2c6f/</div>
<div id="_mcePaste">2:10 PM 7/26/2008</div>
<div id="_mcePaste">http://www.hiteksoftware.com/knowledge/articles/050.htm&#8212;&#8211;windows service</div>
<div id="_mcePaste">3:54 PM 7/29/2008</div>
<div id="_mcePaste">http://forums.msdn.microsoft.com/en-US/csharpgeneral/thread/a1d488f7-ae24-4a8f-86f5-f076058a4577/&#8211;windows servcie</div>
<div id="_mcePaste">3:55 PM 7/29/2008</div>
<div id="_mcePaste">http://www.grinn.net/blog/dev/2008/01/windows-services-in-c-part-1.html&#8211;windowsservice</div>
<div id="_mcePaste">4:47 PM 7/29/2008</div>
<div id="_mcePaste">http://msdn.microsoft.com/en-us/library/aa984074%28VS.71%29.aspx&#8212;creating windows service</div>
<div id="_mcePaste">forums.asp.net&#8212;-dharma,Reset123</div>
<div id="_mcePaste">6:39 PM 7/29/2008</div>
<div id="_mcePaste">http://support.microsoft.com/kb/941990&#8212;solving wrror 1053</div>
<div id="_mcePaste">6:39 PM 7/29/2008</div>
<div id="_mcePaste">http://forums.msdn.microsoft.com/en-US/csharpgeneral/thread/a1d488f7-ae24-4a8f-86f5-f076058a4577/&#8211;threading in windows service</div>
<div id="_mcePaste">1:50 PM 8/4/2008</div>
<div id="_mcePaste">http://msdn.microsoft.com/en-us/library/bb404876.aspx&#8211;paging gridview</div>
<div id="_mcePaste">7:43 PM 8/13/2008</div>
<div id="_mcePaste">http://www.syncfusion.com/faq/aspnet/web_c12c.aspx#q524q==webforms faqs</div>
<div id="_mcePaste">1:06 PM 8/14/2008</div>
<div id="_mcePaste">http://msdn.microsoft.com/en-us/library/aszytsd8.aspx&#8211;merging a datset into another</div>
<div id="_mcePaste">7:09 PM 8/27/2008</div>
<div id="_mcePaste">http://msdn.microsoft.com/en-us/library/ms998267.aspx&#8211;regular expression validater</div>
<div id="_mcePaste">7:09 PM 8/28/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/web-security/Cryptography_MD5_TriDES.aspx&#8211;encrypt and decrypt code in c#</div>
<div id="_mcePaste">11:39 AM 8/29/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/mobile/Bluetooth_connection_C_.aspx</div>
<div id="_mcePaste">http://www.codeproject.com/KB/winsdk/BluetoothAPI__Device_Enum.aspx?fid=402021&#38;df=90&#38;mpp=25&#38;noise=3&#38;sort=Position&#38;view=Quick&#38;select=2487511&#8212;&#8211;bluetooth</div>
<div id="_mcePaste">2:27 PM 9/2/2008</div>
<div id="_mcePaste">http://www.microsoft.com/windowsxp/using/setup/learnmore/crawford_02october21.mspx&#8212;windows xp fax from compueter</div>
<div id="_mcePaste">12:27 PM 9/4/2008</div>
<div id="_mcePaste">http://www.aspcode.net/C-Datediff.aspx</div>
<div id="_mcePaste">6:46 PM 9/4/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/mobile/Bluetooth_connection_C_.aspx&#8212;bluetootth</div>
<div id="_mcePaste">http://dotnet.org.za/rudi/archive/2007/09/28/using-bluetooth-in-net.aspx&#8211;bluetooth</div>
<div id="_mcePaste">7:22 PM 9/5/2008</div>
<div id="_mcePaste">http://flint.cs.yale.edu/cs112/help/cstemp.html&#8212;date asp.net</div>
<div id="_mcePaste">7:29 PM 9/5/2008</div>
<div id="_mcePaste">http://weblogs.sqlteam.com/jeffs/archive/2007/01/02/56079.aspx&#8211;date functions</div>
<div id="_mcePaste">7:18 PM 9/17/2008</div>
<div id="_mcePaste">www.agrriya.com&#8212;&#8212;&#8212;-got some products on dotnet,ryazz,youtube</div>
<div id="_mcePaste">2:33 PM 9/18/2008</div>
<div id="_mcePaste">http://192.168.90.10/exchange/&#8211;exchanbge server</div>
<div id="_mcePaste">12:13 PM 9/22/2008</div>
<div id="_mcePaste">http://steveorr.net/articles/StreamingMedia.aspx&#8212;player</div>
<div id="_mcePaste">9:27 PM 9/22/2008</div>
<div id="_mcePaste">http://aspnetflashvideo.com/aspnetflashvideo_DownloadSuccess.aspx?DownloadURL=ASPNetFlashVideo%2fdownloads%2fASPNetFlashVideoSetup.msi</div>
<div id="_mcePaste">9:58 AM 9/23/2008</div>
<div id="_mcePaste">http://support.microsoft.com/default.aspx?scid=kb;en-us;Q323885</div>
<div id="_mcePaste">10:25 AM 9/23/2008</div>
<div id="_mcePaste">http://blogs.msdn.com/jledgard/archive/2004/08/23/automation-server-can-t-create-object-and-other-vs-2002-2003-start-page-problems-issues-and-bugs.aspx</div>
<div id="_mcePaste">4:18 PM 9/23/2008</div>
<div id="_mcePaste">12:05 PM 9/24/2008</div>
<div id="_mcePaste">http://forums.asp.net/p/1211979/2641705.aspx#2641705&#8211;flash player code</div>
<div id="_mcePaste">4:18 PM 9/24/2008</div>
<div id="_mcePaste">http://www.c-sharpcorner.com/uploadfile/scottlysle/flashplayercustomcontrol12042006230129pm/flashplayercustomcontrol.aspx?login=true&#38;user=dharmaveer&#8212;flash player</div>
<div id="_mcePaste">4:29 PM 9/24/2008</div>
<div id="_mcePaste">http://steveorr.net/articles/iPhone-Development.aspx&#8211;iphone apps dev</div>
<div id="_mcePaste">7:09 PM 9/26/2008</div>
<div id="_mcePaste">http://www.wirelessdevnet.com/news/2002/204/news10.html&#8211;wap,bluetooth</div>
<div id="_mcePaste">10:34 AM 9/30/2008</div>
<div id="_mcePaste">http://weblogs.asp.net/mschwarz/archive/2007/06/04/silverlight-with-visual-studio-net-2005.aspx&#8212;-silverlight</div>
<div id="_mcePaste">6:34 PM 10/1/2008</div>
<div id="_mcePaste">http://forums.asp.net/p/1315980/2611950.aspx&#8211;media player</div>
<div id="_mcePaste">10:04 PM 10/1/2008</div>
<div id="_mcePaste">http://forums.asp.net/p/1298939/2529467.aspx#2529467&#8211;silverlight</div>
<div id="_mcePaste">10:10 PM 10/1/2008</div>
<div id="_mcePaste">http://www.microsoft.com/silverlight/resources/LicenseWinDev.aspx&#8212;silverlight1.1 version download</div>
<div id="_mcePaste">3:21 PM 10/3/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/vb/UltimatePlayer.aspx&#8211;ultimate player</div>
<div id="_mcePaste">3:34 PM 10/3/2008</div>
<div id="_mcePaste">5:20 PM 10/3/2008</div>
<div id="_mcePaste">http://www.c-sharpcorner.com/UploadFile/scottlysle/CsharpWebVideo04212007133218PM/CsharpWebVideo.aspx</div>
<div id="_mcePaste">5:24 PM 10/3/2008</div>
<div id="_mcePaste">http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1339&#38;lngWId=10&#8211;webcam capturing using c#</div>
<div id="_mcePaste">6:16 PM 10/3/2008</div>
<div id="_mcePaste">http://dotnetslackers.com/articles/net/BarcodeImageGenerationMadeEasy.aspx&#8211;barcode generater</div>
<div id="_mcePaste">6:21 PM 10/3/2008</div>
<div id="_mcePaste">http://silverlight.net/quickstarts/silverlight10/samples/SampleHTMLPage.html&#8211;silverlight 1.0 version</div>
<div id="_mcePaste">10:42 AM 10/4/2008</div>
<div id="_mcePaste">http://www.c-sharpcorner.com/UploadFile/mgold/PoormansIPod01172007144720PM/PoormansIPod.aspx&#8211;ipod player</div>
<div id="_mcePaste">10:53 AM 10/4/2008</div>
<div id="_mcePaste">http://www.c-sharpcorner.com/UploadFile/Santhi.M/ASP.NETCustomError11262005035757AM/ASP.NETCustomError.aspx&#8211;custom error handling</div>
<div id="_mcePaste">12:27 PM 10/4/2008</div>
<div id="_mcePaste">http://www.macloo.com/examples/audio_player/</div>
<div id="_mcePaste">http://rtur.net/blog/search.aspx?q=mp3%20player%20%2Basp.net</div>
<div id="_mcePaste">12:45 PM 10/10/2008</div>
<div id="_mcePaste">http://www.c-sharpcorner.com/Forums/ShowMessages.aspx?ThreadID=47656&#8212;hexadecimal and ascii conveerter</div>
<div id="_mcePaste">4:41 PM 10/11/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/cs/MD5_hash_generation.aspx</div>
<div id="_mcePaste">10:26 AM 10/13/2008</div>
<div id="_mcePaste">http://en.wikipedia.org/wiki/Microsoft_.NET#.NET_Framework_2.0&#8211;.net comparison with java and difee in 03,05 and 08</div>
<div id="_mcePaste">2:01 PM 10/13/2008</div>
<div id="_mcePaste">http://www.carlprothman.net/Default.aspx?tabid=86#AdaptiveServerEnterpriseNETDataProvider&#8211;database connections</div>
<div id="_mcePaste">4:38 PM 10/13/2008</div>
<div id="_mcePaste">http://forums.asp.net/p/890891/946168.aspx#946168&#8212;sybase links</div>
<div id="_mcePaste">9:12 PM 10/14/2008</div>
<div id="_mcePaste">http://msdn.microsoft.com/en-us/library/aa710904(VS.71).aspx</div>
<div id="_mcePaste">9:53 PM 10/14/2008</div>
<div id="_mcePaste">http://www.w3schools.com/dotnetmobile/control_list.asp&#8212;mobile forms</div>
<div id="_mcePaste">http://dotnetslackers.com/ASP_NET/re-58232_Mobile_Web_Development_with_ASP_NET_2_0.aspx</div>
<div id="_mcePaste">http://www.dushu.de/englishbook/apress.building.asp.dot.net.server.controls/8204final/lib0068.html#wbp13chapter10p821</div>
<div id="_mcePaste">3:14 PM 10/21/2008</div>
<div id="_mcePaste">http://www.mastercsharp.com/article.aspx?ArticleID=76&#38;&#38;TopicID=2&#8212;paging in datalist,repeater</div>
<div id="_mcePaste">3:48 PM 10/22/2008</div>
<div id="_mcePaste">http://aspalliance.com/717&#8211;precompiling and deployment</div>
<div id="_mcePaste">5:17 PM 10/29/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/cs/Windows_Services___C_.aspx&#8212;windows service for services</div>
<div id="_mcePaste">11:29 AM 10/30/2008</div>
<div id="_mcePaste">4:07 PM 11/1/2008</div>
<div id="_mcePaste">http://aspalliance.com/146_Editing_a_DataGrid_Control</div>
<div id="_mcePaste">http://www.functionx.com/csharp/fundamentals/Lesson05.htm</div>
<div id="_mcePaste">http://www.beansoftware.com/ASP.NET-Tutorials/DataSet-DataAdapter.aspx</div>
<div id="_mcePaste">4:42 PM 11/4/2008</div>
<div id="_mcePaste">http://www.microsoft.com/technet/prodtechnol/sql/2005/workingwithtempdb.mspx</div>
<div id="_mcePaste">http://shahharsh.wordpress.com/2008/09/19/temporary-tables-in-sql-server-2005-2/&#8212;-temp tables sqlserver 2005</div>
<div id="_mcePaste">6:14 PM 11/4/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/aspnet/dynamic_Columns_in_Grid.aspx&#8211;dynamic columns in dataset</div>
<div id="_mcePaste">5:47 PM 11/5/2008</div>
<div id="_mcePaste">www.freedocast.com&#8212;live channels</div>
<div id="_mcePaste">10:57 AM 11/6/2008</div>
<div id="_mcePaste">http://forums.asp.net/p/1204609/2109767.aspx#2109767&#8211;hide url</div>
<div id="_mcePaste">11:36 AM 11/6/2008</div>
<div id="_mcePaste">http://steveorr.net/articles/WebChat.aspx</div>
<div id="_mcePaste">5:10 PM 11/6/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/aspnet/dynamic_Columns_in_Grid.aspx&#8211;</div>
<div id="_mcePaste">10:15 AM 11/7/2008</div>
<div id="_mcePaste">http://www.cartitans.com/driving-game09.php</div>
<div id="_mcePaste">http://www.dotnetcharting.com/gallery/view.aspx?id=Gallery/e01</div>
<div id="_mcePaste">code to create Bar and Pie Chart</div>
<div id="_mcePaste">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</div>
<div id="_mcePaste">http://authors.aspalliance.com/jnuckolls/Articles/ASPCharts/default.aspx</div>
<div id="_mcePaste">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</div>
<div id="_mcePaste">http://www.techinterviews.com/?p=176</div>
<div id="_mcePaste">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</div>
<div id="_mcePaste">http://www.thescarms.com/dotNet/default.aspx</div>
<div id="_mcePaste">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</div>
<div id="_mcePaste">http://www.developerfusion.co.uk/show/1676/6/</div>
<div id="_mcePaste">10:57 AM 11/7/2008</div>
<div id="_mcePaste">http://www.worldofasp.net/tut/Encrypt/Encrypt_Passing_Parameter_in_Url_QueryString_180.aspx&#8212;Querystring encryption</div>
<div id="_mcePaste">3:55 PM 11/7/2008</div>
<div id="_mcePaste">http://forums.asp.net/p/955145/1173230.aspx&#8212;-alidation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that &#60;machineKey&#62; configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.</div>
<div id="_mcePaste">3:02 PM 11/11/2008</div>
<div id="_mcePaste">http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx&#8211;url rewirte</div>
<div id="_mcePaste">3:38 PM 11/11/2008</div>
<div id="_mcePaste">http://forums.asp.net/t/955145.aspx?PageIndex=4&#8212;Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that &#60;machineKey&#62; configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.</div>
<div id="_mcePaste">3:20 PM 11/14/2008</div>
<div id="_mcePaste">editresume , inderx.cd backup is in c:/word folder</div>
<div id="_mcePaste">4:02 PM 11/26/2008</div>
<div id="_mcePaste">http://www.beatthegmat.com/two-methods-to-calculate-total-average-speed-t6749.html&#8212;speeed</div>
<div id="_mcePaste">3:55 PM 11/27/2008</div>
<div id="_mcePaste">http://www.java2s.com/Code/CSharp/Network/UdpClientSample.htm&#8211;udp client</div>
<div id="_mcePaste">3:58 PM 11/27/2008</div>
<div id="_mcePaste">5:44 PM 11/27/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/custom-controls/Google-Maps-User-Control.aspx&#8212;google maps</div>
<div id="_mcePaste">6:00 PM 12/3/2008</div>
<div id="_mcePaste">http://musingmarc.blogspot.com/2006/07/more-on-dates-and-sql.html&#8212;-sqldatfunctions</div>
<div id="_mcePaste">2:58 PM 12/6/2008</div>
<div id="_mcePaste">http://www.osix.net/modules/article/?id=586&#8212;-Regex coding validaiung email</div>
<div id="_mcePaste">11:25 AM 12/12/2008</div>
<div id="_mcePaste">http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=96805&#8212;sqlserver team</div>
<div id="_mcePaste">12:52 PM 12/12/2008</div>
<div id="_mcePaste">http://nicogoeminne.googlepages.com/documentation.html&#8211;google geocode</div>
<div id="_mcePaste">3:50 PM 12/12/2008</div>
<div id="_mcePaste">http://dynamicdrive.com/&#8211;java scripts</div>
<div id="_mcePaste">7:23 PM 12/16/2008</div>
<div id="_mcePaste">http://www.firozansari.com/2006/05/07/passing-values-between-pages/&#8212;-passing values between pages</div>
<div id="_mcePaste">11:13 AM 12/17/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/aspnet/gridview_popup.aspx&#8211;popup in gridview</div>
<div id="_mcePaste">4:47 PM 12/18/2008</div>
<div id="_mcePaste">http://www.zipcodeworld.com/samples/distance.cs.html&#8212;calcualting distance between two latitude and longitude values</div>
<div id="_mcePaste">11:52 AM 12/19/2008</div>
<div id="_mcePaste">http://www.microsoft.com/AtWork/getstarted/speed.mspx&#8212;speed up ur pc</div>
<div id="_mcePaste">12:58 PM 12/19/2008</div>
<div id="_mcePaste">http://eanirudh.wordpress.com/&#8212;-javascript fpr master pages</div>
<div id="_mcePaste">5:56 PM 12/19/2008</div>
<div id="_mcePaste">http://www.codeproject.com/KB/MCMS/StoreLocator.aspx?display=Print&#8211;store locater geo coding+gmaps</div>
<div id="_mcePaste">10:45 AM 12/20/2008</div>
<div id="_mcePaste">http://www.webdevelopersnotes.com/templates/index.php3&#8211;java script</div>
<div id="_mcePaste">9:54 AM 12/22/2008</div>
<div id="_mcePaste">http://forums.asp.net/t/1283142.aspx&#8211;passing values to html controls from asp.net comtrols</div>
<div id="_mcePaste">6:00 PM 12/22/2008</div>
<div id="_mcePaste">http://www.odetocode.com/Articles/348.aspx&#8211;html controls+asp.net 2.0</div>
<div id="_mcePaste">7:05 PM 1/3/2009</div>
<div id="_mcePaste">http://www.ideabubbling.com/ContactsReader.aspx&#8212;contacts reader</div>
<div id="_mcePaste">7:31 PM 1/3/2009</div>
<div id="_mcePaste">http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/3b782a3a-ac91-45eb-97eb-c802bb388ac5/&#8211;contacts</div>
<div id="_mcePaste">5:43 PM 1/7/2009</div>
<div id="_mcePaste">http://www.codeproject.com/KB/dotnet/aspnet_mysql.aspx&#8212;&#8211;mysql connection</div>
<div id="_mcePaste">7:02 PM 1/17/2009</div>
<div id="_mcePaste">http://aspadvice.com/blogs/joteke/archive/2007/02/25/Understanding-the-naming-container-hierarchy-of-ASP.NET-databound-controls.aspx&#8211;namingcontainer</div>
<div id="_mcePaste">10:14 AM 1/19/2009</div>
<div id="_mcePaste">http://msdn.microsoft.com/hi-in/fsharp/default(en-us).aspx&#8211;f# development center</div>
<div id="_mcePaste">5:25 PM 1/19/2009</div>
<div id="_mcePaste">http://www.codeproject.com/KB/aspnet/dynamicThemes.aspx&#8212;themes</div>
<div id="_mcePaste">7:04 PM 1/21/2009</div>
<div id="_mcePaste">http://forums.inscriber.com/viewtopic.php?t=2745&#8211;sms tv</div>
<div id="_mcePaste">5:50 PM 1/22/2009</div>
<div id="_mcePaste">http://aspalliance.com/979_Working_with_Web_Services_Using_ASPNET.10&#8211;web services</div>
<div id="_mcePaste">6:13 PM 1/22/2009</div>
<div id="_mcePaste">http://www.deitel.com/articles/csharp_tutorials/20051126/csharpwebservices_part8.html&#8211;webservices</div>
<div id="_mcePaste">10:33 AM 1/29/2009</div>
<div id="_mcePaste">http://www.apspsc.gov.in/home.appsc&#8211;appsc</div>
<div id="_mcePaste">11:09 AM 1/29/2009</div>
<div id="_mcePaste">http://www.ieg.gov.in/</div>
<div id="_mcePaste">3:39 PM 1/29/2009</div>
<div id="_mcePaste">http://blog.sqlauthority.com/2007/06/10/sql-server-retrieve-select-only-date-part-from-datetime-best-practice/&#8212;&#8212;&#8211;sqlserver 2005</div>
<div id="_mcePaste">4:47 PM 1/29/2009</div>
<div id="_mcePaste">http://stackoverflow.com/questions/45535?sort=oldest&#8212;sqlserver2005</div>
<div id="_mcePaste">5:50 PM 1/29/2009</div>
<div id="_mcePaste">http://aspnet-video.com/&#8212;video and audios</div>
<div id="_mcePaste">9:50 AM 1/30/2009</div>
<div id="_mcePaste">http://www.syndicatebank.in/scripts/Recruitment.aspx&#8212;syn</div>
<div id="_mcePaste">10:06 AM 1/30/2009</div>
<div id="_mcePaste">http://www.statebankofindia.com/viewsection.jsp?lang=0&#38;id=0,15,110</div>
<div id="_mcePaste">10:39 AM 2/7/2009</div>
<div id="_mcePaste">http://www.fengshuicrazy.com/misc-feng-shui-topics/choose-the-color-of-your-car-according-to-your-kua-number.php&#8212;number game</div>
<div id="_mcePaste">11:10 AM 2/9/2009</div>
<div id="_mcePaste">http://www.west-wind.com/Weblog/posts/283.aspx&#8212;creating thumbnail image</div>
<div id="_mcePaste">4:01 PM 2/12/2009</div>
<div id="_mcePaste">http://forums.asp.net/t/1367987.aspx&#8212;flex+asp.net</div>
<div id="_mcePaste">http://graemeharker.blogspot.com/2006/04/integrating-flex-and-net-part-1.html</div>
<div id="_mcePaste">http://learn.adobe.com/wiki/display/Flex/Flex+and+ASP.NET</div>
<div id="_mcePaste">http://viconflex.blogspot.com/2006/10/aspnet-c-data-webservice-for-flex.html</div>
<div id="_mcePaste">http://graemeharker.blogspot.com/2006/06/flex-and-net-tutorials-1.html</div>
<div id="_mcePaste">http://dotnetslackers.com/Community/blogs/haissam/archive/2008/07/27/exchange-data-between-asp-net-and-adobe-flex.aspx</div>
<div id="_mcePaste">6:06 PM 2/14/2009</div>
<div id="_mcePaste">http://blogs.sqlxml.org/media/g/bryantfiles/default.aspx&#8211;silverlight downloads</div>
<div id="_mcePaste">6:45 PM 2/14/2009</div>
<div id="_mcePaste">http://forums.asp.net/p/1327311/2653563.aspx#2653563&#8212;silverlights</div>
<div id="_mcePaste">6:50 PM 2/14/2009</div>
<div id="_mcePaste">http://aspalliance.com/1334_Building_Web_Pages_Using_Microsoft_Silverlight.3&#8212;-silverlight example</div>
<div id="_mcePaste">11:51 AM 2/17/2009</div>
<div id="_mcePaste">http://msdotnetsupport.blogspot.com/2007/11/22-new-features-of-visual-studio-2008.html&#8211;new features in visual studio 2008</div>
<div id="_mcePaste">11:55 AM 2/17/2009</div>
<div id="_mcePaste">http://www.wrox.com/WileyCDA/Section/Building-Silverlight-Video-Applications.id-306542.html&#8211;silverlight video</div>
<div id="_mcePaste">6:57 PM 2/17/2009</div>
<div id="_mcePaste">http://www.codeproject.com/KB/silverlight/BeginningSilverlightPart1.aspx&#8211;silverlight</div>
<div id="_mcePaste">4:58 PM 2/20/2009</div>
<div id="_mcePaste">http://www.asp.net/mobile/overview/&#8211;mobile forms</div>
<div id="_mcePaste">7:05 PM 2/20/2009</div>
<div id="_mcePaste">http://www.codeproject.com/KB/audio-video/cameraviewer.aspx&#8212;live camera</div>
<div id="_mcePaste">7:11 PM 2/20/2009</div>
<div id="_mcePaste">http://www.codeproject.com/KB/mobile/SmartphoneIntroCSharp.aspx&#8211;smart phone application</div>
<div id="_mcePaste">http://www.codeproject.com/KB/mobile/CompactDynDNS.aspx&#8212;pocket pc</div>
<div id="_mcePaste">11:26 AM 2/28/2009</div>
<div id="_mcePaste">http://www.devsource.com/c/a/Techniques/Streaming-with-Windows-Media-Services-and-ASPNET/1/&#8211;streaming video in asp.net</div>
<div id="_mcePaste">9:39 AM 3/5/2009</div>
<div id="_mcePaste">http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1339&#38;lngWId=10&#8211;live webcam streaming</div>
<div id="_mcePaste">http://weblogs.asp.net/nleghari/articles/webcam.aspx</div>
<div id="_mcePaste">http://www.codeproject.com/KB/audio-video/LiquidVideo.aspx?fid=454820&#38;df=90&#38;mpp=25&#38;noise=3&#38;sort=Position&#38;view=Quick&#38;select=2852824&#8211;liquid video</div>
<div id="_mcePaste">10:36 AM 3/5/2009</div>
<div id="_mcePaste">http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx&#8212;urlrewriting</div>
<div id="_mcePaste">12:00 PM 6/15/2009</div>
<div id="_mcePaste">.LOG(case sensitive)</div>
<div id="_mcePaste">2:51 PM 5/27/2009</div>
<div id="_mcePaste">http://www.aota.net/forums/showthread.php?t=19437&#8211;sqlqueries</div>
<div id="_mcePaste">6:05 PM 5/27/2009</div>
<div id="_mcePaste">http://www.w3schools.com/sql/sql_wildcards.asp&#8211;sqlserver tutorials</div>
<div id="_mcePaste">6:07 PM 5/27/2009</div>
<div id="_mcePaste">http://geekexplains.blogspot.com/2008/06/sql-query-to-remove-duplicate-records.html&#8212;sql</div>
<div id="_mcePaste">6:44 PM 5/27/2009</div>
<div id="_mcePaste">http://www.freshershome.com/jobs/index.php?post_id=14472</div>
<div id="_mcePaste">12:09 PM 5/29/2009</div>
<div id="_mcePaste">http://192.168.90.215:6666/GalleryImages.aspx&#8211;vchitram gallery</div>
<div id="_mcePaste">2:52 PM 6/2/2009</div>
<div id="_mcePaste">http://developers.inova.si/&#8212;sip</div>
<div id="_mcePaste">http://www.vaxvoip.com/</div>
<div id="_mcePaste">3:19 PM 6/2/2009</div>
<div id="_mcePaste">http://developers.inova.si/sipobjects/Default.aspx?tabid=74&#8211;sip</div>
<div id="_mcePaste">6:34 PM 6/3/2009</div>
<div id="_mcePaste">https://jobs.ea.com/myEA/profile.aspx?action=create</div>
<div id="_mcePaste">http://www.codeproject.com/KB/DLL/trackuseridle.aspx&#8212;idletime</div>
<div id="_mcePaste">5:12 PM 6/4/2009</div>
<div id="_mcePaste">http://www.codeproject.com/KB/XML/csreadxml1.aspx&#8211;reading an xml file</div>
<div id="_mcePaste">5:17 PM 6/4/2009</div>
<div id="_mcePaste">http://blogs.msdn.com/nunos/archive/2005/02/17/375200.aspx</div>
<div id="_mcePaste">7:08 PM 6/4/2009</div>
<div id="_mcePaste">http://www.codeproject.com/Messages/3057637/Help-regarding-online-examination-project.aspx</div>
<div id="_mcePaste">7:10 PM 6/4/2009</div>
<div id="_mcePaste">http://www.nseindia.com/content/ncfm/fmm.htm&#8212;exams</div>
<div id="_mcePaste">4:05 PM 6/5/2009</div>
<div id="_mcePaste">http://www.shreegiritv.com/</div>
<div id="_mcePaste">4:05 PM 6/5/2009</div>
<div id="_mcePaste">209.160.72.117</div>
<div id="_mcePaste">3:03 PM 6/8/2009</div>
<div id="_mcePaste">1:17 PM 6/9/2009</div>
<div id="_mcePaste">1:18 PM 6/9/2009</div>
<div id="_mcePaste">http://www.bezzmedia.com/swfspot/samples/flash8/Mp3_Player_with_XML_Playlist</div>
<div id="_mcePaste">4:36 PM 6/9/2009</div>
<div id="_mcePaste">vaxvoip.com-voip</div>
<div id="_mcePaste">1:10 PM 6/10/2009</div>
<div id="_mcePaste">http://www.primaryobjects.com/CMS/Article76.aspx&#8211;xml</div>
<div id="_mcePaste">5:19 PM 6/12/2009</div>
<div id="_mcePaste">http://www.akadia.com/services/dotnet_delegates_and_events.html&#8212;delegate example</div>
<div id="_mcePaste">12:00 PM 6/15/2009</div>
<div id="_mcePaste">2:31 PM 6/29/2009</div>
<div id="_mcePaste">http://regexlib.com&#8211;regular expresssion validations</div>
<div id="_mcePaste">12:46 PM 7/8/2009</div>
<div id="_mcePaste">http://bytes.com/topic/net/answers/854267-how-add-child-nodes-tree-view-asp-net-dynamically&#8211;tre view control dynamically</div>
<div id="_mcePaste">4:34 PM 7/24/2009</div>
<div id="_mcePaste">http://www.sqlteam.com/article/stored-procedures-returning-data&#8211;stored proce return va;ue</div>
<div id="_mcePaste">12:02 PM 7/29/2009</div>
<div id="_mcePaste">http://www.csharp-station.com/HowTo/ReadWriteTextFile.aspx&#8211;reading and writing a text file</div>
<div id="_mcePaste">1:58 PM 8/5/2009</div>
<div id="_mcePaste">http://forums.asp.net/p/1292342/2501020.aspx#2501020&#8211;enable or disable a button in row_databound of gridview</div>
<div id="_mcePaste">1:36 PM 9/5/2009</div>
<div id="_mcePaste">http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/2eead3e3-5cc2-40f7-a91c-8f7942d5329c &#8212;gridview rows sno</div>
<div id="_mcePaste">4:25 PM 9/5/2009</div>
<div id="_mcePaste">http://msdn.microsoft.com/en-us/library/cc441928.aspx&#8211;select random rows from a table</div>
<div id="_mcePaste">2:32 PM 9/7/2009</div>
<div id="_mcePaste">http://www.developerfusion.com/code/4648/embed-text-in-image-using-aspnet/&#8211; writing on in image</div>
<div id="_mcePaste">12:53 PM 9/24/2009</div>
<div id="_mcePaste">http://www.wpftutorial.net/WPFIntroduction.html&#8211;wpf tutorial</div>
<div id="_mcePaste">1:35 PM 9/29/2009</div>
<div id="_mcePaste">http://www.dotnetspider.com/resources/19075-PayPal-Integration-sample-using-C.aspx&#8212;paypal</div>
<div id="_mcePaste">5:07 PM 9/29/2009</div>
<div id="_mcePaste">http://www.kdkeys.net/forums/6898/ShowThread.aspx&#8211;delete all tables from a database in sqlserver 2005 and 2000</div>
<div id="_mcePaste">12:40 PM 10/15/2009</div>
<div id="_mcePaste">http://www.dotnetjohn.com/articles.aspx?articleid=23&#8211;datareader next result</div>
<div id="_mcePaste">1:11 PM 10/20/2009</div>
<div id="_mcePaste">http://devilswork.wordpress.com/2009/10/13/how-to-make-a-gridview-row-color-cell-color-text-color/&#8211;intervw question on gridview</div>
<div id="_mcePaste">5:06 PM 10/27/2009</div>
<div id="_mcePaste">http://aspalliance.com/1619_Role_Based_Forms_Authentication_in_ASPNET_20.all&#8211;role based authentication forms based authentrication</div>
<div id="_mcePaste">7:13 PM 10/29/2009</div>
<div id="_mcePaste">http://csharp.net-informations.com/crystal-reports/csharp-crystal-reports-tutorial.htm</div>
<div id="_mcePaste">11:47 AM 11/12/2009</div>
<div id="_mcePaste">1:31 PM 11/16/2009</div>
<div id="_mcePaste">http://ondotnet.com/pub/a/dotnet/excerpt/prog_csharp_ch18/index.html&#8211;attributes and reflection</div>
<div id="_mcePaste">1:52 PM 11/17/2009</div>
<div id="_mcePaste">http://www.scribd.com/doc/14784988/SQL-Server&#8211;sqlserver2005</div>
<div id="_mcePaste">1:03 PM 11/18/2009</div>
<div id="_mcePaste">http://www.java2s.com/Code/CSharp/Data-Types/IsPalindrome.htm&#8212;palindrome</div>
<div id="_mcePaste">2:13 PM 11/20/2009</div>
<div id="_mcePaste">11:19 AM 11/27/2009</div>
<div id="_mcePaste">http://www.dotnetspider.com/forum/ViewForum.aspx?ForumId=41118&#8212;open a popup in button click&#8212;add this code in page load</div>
<div id="_mcePaste">11:41 AM 11/27/2009</div>
<div id="_mcePaste">2:02 PM 11/27/2009</div>
<p>.LOG (Case Sensitive)<br />
4:32 PM 6/5/2008runatstartup is a project for startups</p>
<p>5:09 PM 6/10/2008http://www.dreamincode.net/forums/index.php?s=313ab0391dd4fc57658059a2638dec80&#38;showtopic=50944&#38;pid=352228&#38;st=0&#38;#entry352228<br />
5:21 PM 6/10/2008http://www.c-sharpcorner.com/UploadFile/mosessaur/winformsdelegates09042006094826AM/winformsdelegates.aspxthe communctaion between diff windows forms using delegates<br />
http://www.codeproject.com/KB/menus/MyLanApp.aspx&#8212;-LAn messenger<br />
5:31 PM 6/10/2008http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx&#8211;converting vb.net to c#<br />
http://freesendingmessage.surfpack.com/&#8212;free sending messages<br />
http://www.codeproject.com/KB/IP/ChatMasala.aspx&#8212;chat masala<br />
5:53 PM 6/10/2008http://www.codeproject.com/KB/mobile/colorinvasion.aspx&#8212;a samll game for dotnet<br />
6:42 PM 6/10/2008<br />
11:57 AM 6/12/2008http://dotnetcurry.com/ShowArticle.aspx?ID=111<br />
http://weblogs.asp.net/leftslipper/archive/2007/02/26/sys-webforms-pagerequestmanagerparsererrorexception-what-it-is-and-how-to-avoid-it.aspx?CommentPosted=true#commentmessage12:02 PM 6/12/2008http://www.c-sharpcorner.com/UploadFile/mahesh/WorkingwithTimerControlinCSharp11302005054911AM/WorkingwithTimerControlinCSharp.aspx<br />
12:05 PM 6/12/2008http://www.dnzone.com/ShowDetail.asp?NewsId=1387&#8211;word doc<br />
12:06 PM 6/12/2008http://www.plus2net.com/javascript_tutorial/text-onclick.php&#8211;scriptdynamicdrive.com&#8211;script<br />
12:19 PM 6/12/2008microsoft.com/traincert/mcpexams/prepare/practisetest.asp<br />
http://www.dotnetbips.com/articles/c1e0ca90-5f5d-47aa-a739-492b562e810a.aspx//to add grid12:52 PM 6/12/2008http://www.akadia.com/services/dotnet_user_controls.html#User%20controls&#8211;custom controls<br />
1:57 PM 6/14/2008http://safari.oreilly.com/0672325896/ch14lev1sec3&#8211;scroll a message in web<br />
2:10 PM 6/14/2008http://www.codeproject.com/KB/cs/ScrollingMesageBar.aspx==scroll a message in windows<br />
3:49 PM 6/14/2008skydrive.live.com&#8211; on line 5 gb storage&#8211;dharma@hyderabadrocks.in<br />
3:56 PM 6/14/2008dharmaveer.spaces.live.com&#8212;&#8221;"4:30 PM 6/14/2008<br />
11:49 AM 6/16/2008http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=78&#8211;store dprocedures<br />
5:05 PM 6/16/2008http://www.functionx.com/sqlserver/Lesson16.htm&#8211;stored pochttp://www.sommarskog.se/share_data.html&#8211;stored proc3:53 PM 6/17/2008http://www.daniweb.com/forums/thread106200.html&#8211;stored procedure+dataset<br />
5:54 PM 6/19/2008http://ceoandhra.nic.in/draft_erolls_2007.html&#8211;electroll5:55 PM 6/19/2008<br />
10:41 AM 6/21/2008<br />
4:00 PM 6/24/2008<br />
6:55 PM 6/24/2008www.yellowpages.co.in<br />
6:55 PM 6/24/2008<br />
5:15 PM 6/26/2008http://www.codeproject.com/KB/aspnet/FullGridPagerNVS.aspx<br />
5:21 PM 6/26/2008http://www.kiko-santos.com/2006/05/custom-paging-in-gridview-control/<br />
6:22 PM 6/26/2008http://bdotnet.in/blogs/tekexplore/archive/2008/04/08/custom-paging-in-gridview-control.aspx<br />
7:01 PM 6/26/2008http://www.orble.com/paging-in-gridview/<br />
10:59 AM 6/27/2008<br />
12:01 PM 6/27/2008<br />
5:49 PM 6/30/2008http://search.live.com/video/results.aspx?q=visual+studio+2008&#38;go=&#38;form=QBVR<br />
8:00 PM 7/3/2008http://www.codeproject.com/KB/aspnet/ImageMap.aspx&#8211;imagemap<br />
12:38 PM 7/10/2008http://kb.adobe.com/selfservice/viewContent.do?externalId=ca65e605<br />
12:43 PM 7/10/2008<br />
3:15 PM 7/10/2008http://www.dvdvideosoft.com/free-dvd-video-software.htm&#8212;video convertion s/w s<br />
4:57 PM 7/11/2008http://forums.asp.net/t/1192746.aspx&#8211;gridview+linkbutton+label</p>
<p>3:16 PM 7/14/2008http://www.macronimous.com/resources/stored_procedures_for_ASP_and_VB_Programmers.asp&#8211;stored procedures<br />
3:27 PM 7/14/2008http://www.telerik.com/community/code-library/submission/b311D-tgcgc.aspx&#8211;stored procedures<br />
4:42 PM 7/14/2008http://www.vbdotnetheaven.com/UploadFile/sushmita_kumari/Report201242006041121AM/Report2.aspx&#8211;crystal report5:56 PM 7/14/2008http://www.codeproject.com/KB/cs/Dynamic_Crystal_Report.aspx&#8211;dynamic crystal report11:59 AM 7/15/2008http://www.c-sharpcorner.com/UploadFile/munnamax/viewReport04232006102203AM/viewReport.aspx&#8212;crystal reports &#8211;multiple tables1:01 PM 7/15/2008http://www.codeproject.com/KB/aspnet/CrystalReport_DotNET2005.aspx&#8212;xml +crystal reports<br />
1:22 PM 7/15/2008http://www.codeproject.com/KB/aspnet/CrystalReportsInDotNet2.aspx&#8211;crystal reporst +condition dataset6:38 PM 7/15/2008http://www.calorisplanitia.com/eschool/default.aspx&#8211;school management system4:28 PM 7/18/2008http://forums.asp.net/p/1259475/2350075.aspx&#8211;paging grid5:34 PM 7/18/2008http://weblogs.asp.net/rajbk/archive/2006/08/14/GridView-DropDownList-Pager.aspx&#8212;posted comment5:55 PM 7/18/2008http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.pagecount(VS.80).aspx&#8212;paging msdn5:09 PM 7/21/2008http://202.138.126.201/&#8211;speed test<br />
4:06 PM 7/24/2008<br />
3:18 PM 7/25/2008http://forums.msdn.microsoft.com/en-US/csharpgeneral/thread/d8f300e3-6c09-424f-829e-c5fda34c1bc7&#8211;windows servicehttp://forums.msdn.microsoft.com/en-US/csharpgeneral/thread/007956ac-787c-4c2a-8beb-35aa67ea2c6f/<br />
2:10 PM 7/26/2008http://www.hiteksoftware.com/knowledge/articles/050.htm&#8212;&#8211;windows service<br />
3:54 PM 7/29/2008http://forums.msdn.microsoft.com/en-US/csharpgeneral/thread/a1d488f7-ae24-4a8f-86f5-f076058a4577/&#8211;windows servcie3:55 PM 7/29/2008http://www.grinn.net/blog/dev/2008/01/windows-services-in-c-part-1.html&#8211;windowsservice4:47 PM 7/29/2008http://msdn.microsoft.com/en-us/library/aa984074%28VS.71%29.aspx&#8212;creating windows serviceforums.asp.net&#8212;-dharma,Reset1236:39 PM 7/29/2008http://support.microsoft.com/kb/941990&#8212;solving wrror 10536:39 PM 7/29/2008http://forums.msdn.microsoft.com/en-US/csharpgeneral/thread/a1d488f7-ae24-4a8f-86f5-f076058a4577/&#8211;threading in windows service1:50 PM 8/4/2008http://msdn.microsoft.com/en-us/library/bb404876.aspx&#8211;paging gridview<br />
7:43 PM 8/13/2008http://www.syncfusion.com/faq/aspnet/web_c12c.aspx#q524q==webforms faqs1:06 PM 8/14/2008http://msdn.microsoft.com/en-us/library/aszytsd8.aspx&#8211;merging a datset into another7:09 PM 8/27/2008http://msdn.microsoft.com/en-us/library/ms998267.aspx&#8211;regular expression validater7:09 PM 8/28/2008http://www.codeproject.com/KB/web-security/Cryptography_MD5_TriDES.aspx&#8211;encrypt and decrypt code in c#11:39 AM 8/29/2008http://www.codeproject.com/KB/mobile/Bluetooth_connection_C_.aspx<br />
http://www.codeproject.com/KB/winsdk/BluetoothAPI__Device_Enum.aspx?fid=402021&#38;df=90&#38;mpp=25&#38;noise=3&#38;sort=Position&#38;view=Quick&#38;select=2487511&#8212;&#8211;bluetooth2:27 PM 9/2/2008http://www.microsoft.com/windowsxp/using/setup/learnmore/crawford_02october21.mspx&#8212;windows xp fax from compueter12:27 PM 9/4/2008http://www.aspcode.net/C-Datediff.aspx6:46 PM 9/4/2008http://www.codeproject.com/KB/mobile/Bluetooth_connection_C_.aspx&#8212;bluetootthhttp://dotnet.org.za/rudi/archive/2007/09/28/using-bluetooth-in-net.aspx&#8211;bluetooth<br />
7:22 PM 9/5/2008http://flint.cs.yale.edu/cs112/help/cstemp.html&#8212;date asp.net7:29 PM 9/5/2008http://weblogs.sqlteam.com/jeffs/archive/2007/01/02/56079.aspx&#8211;date functions7:18 PM 9/17/2008www.agrriya.com&#8212;&#8212;&#8212;-got some products on dotnet,ryazz,youtube2:33 PM 9/18/2008http://192.168.90.10/exchange/&#8211;exchanbge server12:13 PM 9/22/2008http://steveorr.net/articles/StreamingMedia.aspx&#8212;player9:27 PM 9/22/2008http://aspnetflashvideo.com/aspnetflashvideo_DownloadSuccess.aspx?DownloadURL=ASPNetFlashVideo%2fdownloads%2fASPNetFlashVideoSetup.msi9:58 AM 9/23/2008http://support.microsoft.com/default.aspx?scid=kb;en-us;Q32388510:25 AM 9/23/2008http://blogs.msdn.com/jledgard/archive/2004/08/23/automation-server-can-t-create-object-and-other-vs-2002-2003-start-page-problems-issues-and-bugs.aspx4:18 PM 9/23/2008<br />
12:05 PM 9/24/2008http://forums.asp.net/p/1211979/2641705.aspx#2641705&#8211;flash player code4:18 PM 9/24/2008http://www.c-sharpcorner.com/uploadfile/scottlysle/flashplayercustomcontrol12042006230129pm/flashplayercustomcontrol.aspx?login=true&#38;user=dharmaveer&#8212;flash player4:29 PM 9/24/2008http://steveorr.net/articles/iPhone-Development.aspx&#8211;iphone apps dev7:09 PM 9/26/2008http://www.wirelessdevnet.com/news/2002/204/news10.html&#8211;wap,bluetooth10:34 AM 9/30/2008http://weblogs.asp.net/mschwarz/archive/2007/06/04/silverlight-with-visual-studio-net-2005.aspx&#8212;-silverlight<br />
6:34 PM 10/1/2008http://forums.asp.net/p/1315980/2611950.aspx&#8211;media player10:04 PM 10/1/2008http://forums.asp.net/p/1298939/2529467.aspx#2529467&#8211;silverlight10:10 PM 10/1/2008http://www.microsoft.com/silverlight/resources/LicenseWinDev.aspx&#8212;silverlight1.1 version download3:21 PM 10/3/2008http://www.codeproject.com/KB/vb/UltimatePlayer.aspx&#8211;ultimate player3:34 PM 10/3/2008<br />
5:20 PM 10/3/2008http://www.c-sharpcorner.com/UploadFile/scottlysle/CsharpWebVideo04212007133218PM/CsharpWebVideo.aspx5:24 PM 10/3/2008http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1339&#38;lngWId=10&#8211;webcam capturing using c#6:16 PM 10/3/2008http://dotnetslackers.com/articles/net/BarcodeImageGenerationMadeEasy.aspx&#8211;barcode generater6:21 PM 10/3/2008http://silverlight.net/quickstarts/silverlight10/samples/SampleHTMLPage.html&#8211;silverlight 1.0 version10:42 AM 10/4/2008http://www.c-sharpcorner.com/UploadFile/mgold/PoormansIPod01172007144720PM/PoormansIPod.aspx&#8211;ipod player10:53 AM 10/4/2008http://www.c-sharpcorner.com/UploadFile/Santhi.M/ASP.NETCustomError11262005035757AM/ASP.NETCustomError.aspx&#8211;custom error handling12:27 PM 10/4/2008http://www.macloo.com/examples/audio_player/http://rtur.net/blog/search.aspx?q=mp3%20player%20%2Basp.net12:45 PM 10/10/2008http://www.c-sharpcorner.com/Forums/ShowMessages.aspx?ThreadID=47656&#8212;hexadecimal and ascii conveerter4:41 PM 10/11/2008http://www.codeproject.com/KB/cs/MD5_hash_generation.aspx10:26 AM 10/13/2008http://en.wikipedia.org/wiki/Microsoft_.NET#.NET_Framework_2.0&#8211;.net comparison with java and difee in 03,05 and 082:01 PM 10/13/2008http://www.carlprothman.net/Default.aspx?tabid=86#AdaptiveServerEnterpriseNETDataProvider&#8211;database connections4:38 PM 10/13/2008http://forums.asp.net/p/890891/946168.aspx#946168&#8212;sybase links9:12 PM 10/14/2008http://msdn.microsoft.com/en-us/library/aa710904(VS.71).aspx9:53 PM 10/14/2008http://www.w3schools.com/dotnetmobile/control_list.asp&#8212;mobile formshttp://dotnetslackers.com/ASP_NET/re-58232_Mobile_Web_Development_with_ASP_NET_2_0.aspxhttp://www.dushu.de/englishbook/apress.building.asp.dot.net.server.controls/8204final/lib0068.html#wbp13chapter10p8213:14 PM 10/21/2008http://www.mastercsharp.com/article.aspx?ArticleID=76&#38;&#38;TopicID=2&#8212;paging in datalist,repeater3:48 PM 10/22/2008http://aspalliance.com/717&#8211;precompiling and deployment5:17 PM 10/29/2008http://www.codeproject.com/KB/cs/Windows_Services___C_.aspx&#8212;windows service for services11:29 AM 10/30/2008<br />
4:07 PM 11/1/2008http://aspalliance.com/146_Editing_a_DataGrid_Controlhttp://www.functionx.com/csharp/fundamentals/Lesson05.htmhttp://www.beansoftware.com/ASP.NET-Tutorials/DataSet-DataAdapter.aspx4:42 PM 11/4/2008http://www.microsoft.com/technet/prodtechnol/sql/2005/workingwithtempdb.mspxhttp://shahharsh.wordpress.com/2008/09/19/temporary-tables-in-sql-server-2005-2/&#8212;-temp tables sqlserver 20056:14 PM 11/4/2008http://www.codeproject.com/KB/aspnet/dynamic_Columns_in_Grid.aspx&#8211;dynamic columns in dataset5:47 PM 11/5/2008www.freedocast.com&#8212;live channels10:57 AM 11/6/2008http://forums.asp.net/p/1204609/2109767.aspx#2109767&#8211;hide url11:36 AM 11/6/2008http://steveorr.net/articles/WebChat.aspx5:10 PM 11/6/2008http://www.codeproject.com/KB/aspnet/dynamic_Columns_in_Grid.aspx&#8211;10:15 AM 11/7/2008http://www.cartitans.com/driving-game09.php<br />
http://www.dotnetcharting.com/gallery/view.aspx?id=Gallery/e01</p>
<p>code to create Bar and Pie Chart&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
http://authors.aspalliance.com/jnuckolls/Articles/ASPCharts/default.aspx</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
http://www.techinterviews.com/?p=176<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;http://www.thescarms.com/dotNet/default.aspx<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
http://www.developerfusion.co.uk/show/1676/6/<br />
10:57 AM 11/7/2008http://www.worldofasp.net/tut/Encrypt/Encrypt_Passing_Parameter_in_Url_QueryString_180.aspx&#8212;Querystring encryption3:55 PM 11/7/2008http://forums.asp.net/p/955145/1173230.aspx&#8212;-alidation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that &#60;machineKey&#62; configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster. 3:02 PM 11/11/2008http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx&#8211;url rewirte3:38 PM 11/11/2008http://forums.asp.net/t/955145.aspx?PageIndex=4&#8212;Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that &#60;machineKey&#62; configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.3:20 PM 11/14/2008editresume , inderx.cd backup is in c:/word folder4:02 PM 11/26/2008http://www.beatthegmat.com/two-methods-to-calculate-total-average-speed-t6749.html&#8212;speeed3:55 PM 11/27/2008http://www.java2s.com/Code/CSharp/Network/UdpClientSample.htm&#8211;udp client3:58 PM 11/27/2008<br />
5:44 PM 11/27/2008http://www.codeproject.com/KB/custom-controls/Google-Maps-User-Control.aspx&#8212;google maps6:00 PM 12/3/2008http://musingmarc.blogspot.com/2006/07/more-on-dates-and-sql.html&#8212;-sqldatfunctions2:58 PM 12/6/2008http://www.osix.net/modules/article/?id=586&#8212;-Regex coding validaiung email11:25 AM 12/12/2008http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=96805&#8212;sqlserver team12:52 PM 12/12/2008http://nicogoeminne.googlepages.com/documentation.html&#8211;google geocode3:50 PM 12/12/2008http://dynamicdrive.com/&#8211;java scripts<br />
7:23 PM 12/16/2008http://www.firozansari.com/2006/05/07/passing-values-between-pages/&#8212;-passing values between pages11:13 AM 12/17/2008http://www.codeproject.com/KB/aspnet/gridview_popup.aspx&#8211;popup in gridview4:47 PM 12/18/2008http://www.zipcodeworld.com/samples/distance.cs.html&#8212;calcualting distance between two latitude and longitude values11:52 AM 12/19/2008http://www.microsoft.com/AtWork/getstarted/speed.mspx&#8212;speed up ur pc12:58 PM 12/19/2008http://eanirudh.wordpress.com/&#8212;-javascript fpr master pages5:56 PM 12/19/2008http://www.codeproject.com/KB/MCMS/StoreLocator.aspx?display=Print&#8211;store locater geo coding+gmaps<br />
10:45 AM 12/20/2008http://www.webdevelopersnotes.com/templates/index.php3&#8211;java script9:54 AM 12/22/2008http://forums.asp.net/t/1283142.aspx&#8211;passing values to html controls from asp.net comtrols6:00 PM 12/22/2008http://www.odetocode.com/Articles/348.aspx&#8211;html controls+asp.net 2.07:05 PM 1/3/2009http://www.ideabubbling.com/ContactsReader.aspx&#8212;contacts reader7:31 PM 1/3/2009http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/3b782a3a-ac91-45eb-97eb-c802bb388ac5/&#8211;contacts5:43 PM 1/7/2009http://www.codeproject.com/KB/dotnet/aspnet_mysql.aspx&#8212;&#8211;mysql connection7:02 PM 1/17/2009http://aspadvice.com/blogs/joteke/archive/2007/02/25/Understanding-the-naming-container-hierarchy-of-ASP.NET-databound-controls.aspx&#8211;namingcontainer10:14 AM 1/19/2009http://msdn.microsoft.com/hi-in/fsharp/default(en-us).aspx&#8211;f# development center5:25 PM 1/19/2009http://www.codeproject.com/KB/aspnet/dynamicThemes.aspx&#8212;themes 7:04 PM 1/21/2009http://forums.inscriber.com/viewtopic.php?t=2745&#8211;sms tv5:50 PM 1/22/2009http://aspalliance.com/979_Working_with_Web_Services_Using_ASPNET.10&#8211;web services6:13 PM 1/22/2009http://www.deitel.com/articles/csharp_tutorials/20051126/csharpwebservices_part8.html&#8211;webservices10:33 AM 1/29/2009http://www.apspsc.gov.in/home.appsc&#8211;appsc11:09 AM 1/29/2009http://www.ieg.gov.in/3:39 PM 1/29/2009http://blog.sqlauthority.com/2007/06/10/sql-server-retrieve-select-only-date-part-from-datetime-best-practice/&#8212;&#8212;&#8211;sqlserver 20054:47 PM 1/29/2009http://stackoverflow.com/questions/45535?sort=oldest&#8212;sqlserver20055:50 PM 1/29/2009http://aspnet-video.com/&#8212;video and audios9:50 AM 1/30/2009http://www.syndicatebank.in/scripts/Recruitment.aspx&#8212;syn10:06 AM 1/30/2009http://www.statebankofindia.com/viewsection.jsp?lang=0&#38;id=0,15,11010:39 AM 2/7/2009http://www.fengshuicrazy.com/misc-feng-shui-topics/choose-the-color-of-your-car-according-to-your-kua-number.php&#8212;number game11:10 AM 2/9/2009http://www.west-wind.com/Weblog/posts/283.aspx&#8212;creating thumbnail image4:01 PM 2/12/2009http://forums.asp.net/t/1367987.aspx&#8212;flex+asp.net http://graemeharker.blogspot.com/2006/04/integrating-flex-and-net-part-1.html http://learn.adobe.com/wiki/display/Flex/Flex+and+ASP.NET http://viconflex.blogspot.com/2006/10/aspnet-c-data-webservice-for-flex.html http://graemeharker.blogspot.com/2006/06/flex-and-net-tutorials-1.html http://dotnetslackers.com/Community/blogs/haissam/archive/2008/07/27/exchange-data-between-asp-net-and-adobe-flex.aspx6:06 PM 2/14/2009http://blogs.sqlxml.org/media/g/bryantfiles/default.aspx&#8211;silverlight downloads6:45 PM 2/14/2009http://forums.asp.net/p/1327311/2653563.aspx#2653563&#8212;silverlights6:50 PM 2/14/2009http://aspalliance.com/1334_Building_Web_Pages_Using_Microsoft_Silverlight.3&#8212;-silverlight example11:51 AM 2/17/2009http://msdotnetsupport.blogspot.com/2007/11/22-new-features-of-visual-studio-2008.html&#8211;new features in visual studio 200811:55 AM 2/17/2009http://www.wrox.com/WileyCDA/Section/Building-Silverlight-Video-Applications.id-306542.html&#8211;silverlight video6:57 PM 2/17/2009http://www.codeproject.com/KB/silverlight/BeginningSilverlightPart1.aspx&#8211;silverlight4:58 PM 2/20/2009http://www.asp.net/mobile/overview/&#8211;mobile forms7:05 PM 2/20/2009http://www.codeproject.com/KB/audio-video/cameraviewer.aspx&#8212;live camera7:11 PM 2/20/2009http://www.codeproject.com/KB/mobile/SmartphoneIntroCSharp.aspx&#8211;smart phone applicationhttp://www.codeproject.com/KB/mobile/CompactDynDNS.aspx&#8212;pocket pc11:26 AM 2/28/2009http://www.devsource.com/c/a/Techniques/Streaming-with-Windows-Media-Services-and-ASPNET/1/&#8211;streaming video in asp.net9:39 AM 3/5/2009http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1339&#38;lngWId=10&#8211;live webcam streaminghttp://weblogs.asp.net/nleghari/articles/webcam.aspxhttp://www.codeproject.com/KB/audio-video/LiquidVideo.aspx?fid=454820&#38;df=90&#38;mpp=25&#38;noise=3&#38;sort=Position&#38;view=Quick&#38;select=2852824&#8211;liquid video10:36 AM 3/5/2009http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx&#8212;urlrewriting12:00 PM 6/15/2009.LOG(case sensitive)2:51 PM 5/27/2009http://www.aota.net/forums/showthread.php?t=19437&#8211;sqlqueries6:05 PM 5/27/2009http://www.w3schools.com/sql/sql_wildcards.asp&#8211;sqlserver tutorials6:07 PM 5/27/2009http://geekexplains.blogspot.com/2008/06/sql-query-to-remove-duplicate-records.html&#8212;sql6:44 PM 5/27/2009http://www.freshershome.com/jobs/index.php?post_id=1447212:09 PM 5/29/2009http://192.168.90.215:6666/GalleryImages.aspx&#8211;vchitram gallery2:52 PM 6/2/2009http://developers.inova.si/&#8212;siphttp://www.vaxvoip.com/3:19 PM 6/2/2009http://developers.inova.si/sipobjects/Default.aspx?tabid=74&#8211;sip6:34 PM 6/3/2009https://jobs.ea.com/myEA/profile.aspx?action=createhttp://www.codeproject.com/KB/DLL/trackuseridle.aspx&#8212;idletime5:12 PM 6/4/2009http://www.codeproject.com/KB/XML/csreadxml1.aspx&#8211;reading an xml file5:17 PM 6/4/2009http://blogs.msdn.com/nunos/archive/2005/02/17/375200.aspx7:08 PM 6/4/2009http://www.codeproject.com/Messages/3057637/Help-regarding-online-examination-project.aspx7:10 PM 6/4/2009http://www.nseindia.com/content/ncfm/fmm.htm&#8212;exams4:05 PM 6/5/2009http://www.shreegiritv.com/4:05 PM 6/5/2009209.160.72.1173:03 PM 6/8/2009<br />
1:17 PM 6/9/2009<br />
1:18 PM 6/9/2009http://www.bezzmedia.com/swfspot/samples/flash8/Mp3_Player_with_XML_Playlist4:36 PM 6/9/2009vaxvoip.com-voip1:10 PM 6/10/2009http://www.primaryobjects.com/CMS/Article76.aspx&#8211;xml5:19 PM 6/12/2009http://www.akadia.com/services/dotnet_delegates_and_events.html&#8212;delegate example12:00 PM 6/15/2009<br />
2:31 PM 6/29/2009http://regexlib.com&#8211;regular expresssion validations12:46 PM 7/8/2009http://bytes.com/topic/net/answers/854267-how-add-child-nodes-tree-view-asp-net-dynamically&#8211;tre view control dynamically4:34 PM 7/24/2009http://www.sqlteam.com/article/stored-procedures-returning-data&#8211;stored proce return va;ue12:02 PM 7/29/2009http://www.csharp-station.com/HowTo/ReadWriteTextFile.aspx&#8211;reading and writing a text file1:58 PM 8/5/2009http://forums.asp.net/p/1292342/2501020.aspx#2501020&#8211;enable or disable a button in row_databound of gridview1:36 PM 9/5/2009http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/2eead3e3-5cc2-40f7-a91c-8f7942d5329c &#8212;gridview rows sno4:25 PM 9/5/2009http://msdn.microsoft.com/en-us/library/cc441928.aspx&#8211;select random rows from a table2:32 PM 9/7/2009http://www.developerfusion.com/code/4648/embed-text-in-image-using-aspnet/&#8211; writing on in image 12:53 PM 9/24/2009http://www.wpftutorial.net/WPFIntroduction.html&#8211;wpf tutorial1:35 PM 9/29/2009http://www.dotnetspider.com/resources/19075-PayPal-Integration-sample-using-C.aspx&#8212;paypal5:07 PM 9/29/2009http://www.kdkeys.net/forums/6898/ShowThread.aspx&#8211;delete all tables from a database in sqlserver 2005 and 200012:40 PM 10/15/2009http://www.dotnetjohn.com/articles.aspx?articleid=23&#8211;datareader next result1:11 PM 10/20/2009http://devilswork.wordpress.com/2009/10/13/how-to-make-a-gridview-row-color-cell-color-text-color/&#8211;intervw question on gridview5:06 PM 10/27/2009http://aspalliance.com/1619_Role_Based_Forms_Authentication_in_ASPNET_20.all&#8211;role based authentication forms based authentrication7:13 PM 10/29/2009http://csharp.net-informations.com/crystal-reports/csharp-crystal-reports-tutorial.htm11:47 AM 11/12/2009<br />
1:31 PM 11/16/2009http://ondotnet.com/pub/a/dotnet/excerpt/prog_csharp_ch18/index.html&#8211;attributes and reflection1:52 PM 11/17/2009http://www.scribd.com/doc/14784988/SQL-Server&#8211;sqlserver20051:03 PM 11/18/2009http://www.java2s.com/Code/CSharp/Data-Types/IsPalindrome.htm&#8212;palindrome2:13 PM 11/20/2009<br />
11:19 AM 11/27/2009http://www.dotnetspider.com/forum/ViewForum.aspx?ForumId=41118&#8212;open a popup in button click&#8212;add this code in page load 11:41 AM 11/27/2009<br />
2:02 PM 11/27/2009</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[A Third Way: DNA?]]></title>
<link>http://grumpyop.wordpress.com/2009/11/25/a-third-way-dna/</link>
<pubDate>Wed, 25 Nov 2009 21:59:15 +0000</pubDate>
<dc:creator>mikewoodhouse</dc:creator>
<guid>http://grumpyop.wordpress.com/2009/11/25/a-third-way-dna/</guid>
<description><![CDATA[(stackoverflow rep: 8417, Project Euler 87/261 complete When we want Excel to talk to a compiled lib]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h6 style="text-align:right;"><a href="http://stackoverflow.com">(stackoverflow</a> rep: 8417, <a href="http://projecteuler.net">Project Euler</a> 87/261 complete</h6>
<p>When we want Excel to talk to a compiled library, the list of options available to us is not long.</p>
<p>On the one hand, we can write a compiled library that references the Excel SDK (<a href="http://www.microsoft.com/downloads/details.aspx?familyid=c6189658-d915-4140-908a-9a0114953721&#38;displaylang=en">pre</a>- or <a href="http://msdn.microsoft.com/en-us/library/bb687827.aspx">post-2007</a>), setting its prefix to <a href="http://msdn.microsoft.com/en-us/library/bb687911.aspx">XLL</a> for convenience, typically we&#8217;d grit our collective teeth and accomplish this with C or (<em>cough, spit</em>) C++. One big plus here is speed &#8211; we&#8217;re talking to Excel in its own language. Or something awfully close to it. Another plus, of course, is that this approach probably involves the minimum set of dependencies for non-enterprise distribution convenience. If you haven&#8217;t spotted the big minus then we should probably agree to disagree on the relative merits of programming languages.</p>
<p>On the other hand, we can write a library that exposes its functions through good ol&#8217; <a href="http://en.wikipedia.org/wiki/Component_Object_Model">COM</a>, referencing it though the Tool&#8230;Add-ins dialog. That&#8217;s probably still the best-known way to integrate functionality developed in .NET, although it does involve paying a performance price as the COM interface is crossed and recrossed. This would be the place in the world most usually occupied by <a href="http://msdn.microsoft.com/en-gb/office/dd253199.aspx">VSTO</a>. Of course, you could also write your COM library in non-managed code: VB6 is easy (if you can find it) but slow, the choice from others depends on your capacity (or desire) for pain.</p>
<p>On <a href="http://en.wikipedia.org/wiki/On_the_gripping_hand_%28idiom%29">the gripping hand</a>, we have <a href="http://groups.google.com/group/exceldna/web/getting-started-with-exceldna">ExcelDNA</a>, which for my money is one of the all-round <a href="http://www.entertonement.com/clips/bcljjrgbqb--It%27s-so-cunning-you-could-brush-your-teeth-with-itBlack-Adder-Rowan-Atkinson-The-Blackadder-Prince-Edmund-Duke-of-Edinburgh-">cunningest</a> things you&#8217;re likely to come across in quite a long time. (Unless you&#8217;ve already encountered its cunningness, of course, in which case you&#8217;re probably already nodding along in sage agreement). How so? How about being able to write your spiffy new functions in C# but without having to incur the needless ins and outs of the wasteful and superfluous COM middleman?</p>
<p>ExcelDNA provides a small XLL that can talk to managed code. There&#8217;s one attribute to set in order to make a function visible to Excel and one libary to import (in order to be able to add the attribute). Oh, and a little config file to tell the XLL what to load. That&#8217;s it. Actually, that&#8217;s the complicated version. In case you didn&#8217;t know, the <a href="http://en.wikipedia.org/wiki/Common_Language_Runtime">CLR</a> includes a compiler, allowing code to be created and compiled at run-time. The simplest way to talk to Excel from .NET via ExcelDNA is just to put your code directly into that little config file and let the XLL compile it at load time. OK, there&#8217;s a second or so&#8217;s overhead, but how simple &#8211; anything simpler would probably have to be involve <a href="http://grumpyop.wordpress.com/2008/09/28/whither-wither-vba/">21st-Century language integration</a> where VBA lives today.</p>
<p>By now you&#8217;re probably muttering something like &#8220;write code, fat bloke&#8221;, which is a little cruel, but a sentiment otherwise understandable. Now only the other day, Dick Kusleika posted <a href="http://www.dailydoseofexcel.com/archives/2009/11/10/joinrange/">his take</a> on the everybody-has-one timeless RangeJoin() UDF topic. Here&#8217;s a rather simpler implementation:</p>
<pre class="brush: csharp;">

&#60;DnaLibrary Language=&#34;CS&#34;&#62;
&#60;![CDATA[
using ExcelDna.Integration;
using System.Collections.Generic;

    public class MyFunctions
    {
        [ExcelFunction(Description=&#34;Joins cell values&#34;, Category=&#34;My ExcelDNA functions&#34;)]
        public static object RangeJoin(object[,] cells)
        {
            List&#60;string&#62; list = new List&#60;string&#62;();

            foreach (object o in cells)
                list.Add(o.ToString());

            return string.Join(&#34;,&#34;, list.ToArray());
        }
    }
]]&#62;
&#60;/DnaLibrary&#62;
</pre>
<p>To get it running, I saved it as &#8220;RangeJoin.dna&#8221;, then copied the ExcelDNA.xll into the same folder and renamed that to &#8220;RangeJoin.xll&#8221;. Because it isn&#8217;t currently anywhere on my path, I also put ExcelDna.Integration.dll in the folder. Then I double-clicked my new XLL file to start Excel and load the library. (Pictures below are from Excel 2002, but the code is tested up to 2007).</p>
<div id="attachment_411" class="wp-caption alignnone" style="width: 406px"><a href="http://grumpyop.wordpress.com/files/2009/11/excel_macro_warn.png"><img class="size-full wp-image-411" title="excel_macro_warn" src="http://grumpyop.wordpress.com/files/2009/11/excel_macro_warn.png" alt="" width="396" height="193" /></a><p class="wp-caption-text">Not surprising...</p></div>
<p>There&#8217;s a tiny extra delay before the usual macro warning appears &#8211; the C# code&#8217;s being compiled, which is where compile-time failures are displayed. Then you&#8217;re up and running. The function shows up in the Insert Function dialog&#8230;</p>
<p><a href="http://grumpyop.wordpress.com/files/2009/11/insert_function.png"><img class="alignnone size-full wp-image-412" title="insert_function" src="http://grumpyop.wordpress.com/files/2009/11/insert_function.png" alt="" width="399" height="275" /></a></p>
<p>&#8230; and we can try calling it:</p>
<p><a href="http://grumpyop.wordpress.com/files/2009/11/about_to_join.png"><img class="alignnone size-full wp-image-413" title="about_to_join" src="http://grumpyop.wordpress.com/files/2009/11/about_to_join.png" alt="" width="331" height="96" /></a></p>
<p>&#8230; with the following result:</p>
<p><a href="http://grumpyop.wordpress.com/files/2009/11/joined.png"><img class="alignnone size-full wp-image-414" title="joined" src="http://grumpyop.wordpress.com/files/2009/11/joined.png" alt="" width="519" height="72" /></a></p>
<p>I did notice the the =NA() output and the Euro amount came out different to what I&#8217;d have hoped. It rather looks like I&#8217;d have to dig a little deeper into the ExcelDna.Integration.dll and the ExcelReference object in particular in order to be able to access the equivalent of VBA&#8217;s Text property.</p>
<p>Still, not bad for a quick exercise, I&#8217;d say.</p>
<p>There are some alternative approaches to the dot-net-and-excel-without-going-anywhere-near-COM-add-ins topic:</p>
<h3>For Free</h3>
<p><a href="http://www.excel4net.com/">Excel4Net</a> is now free &#8211; it seems to work by implementing a single worksheet function that calls out to managed code;</p>
<p>The last time I looked at <a href="http://xlw.sourceforge.net/">XLW</a> it was focused on C++. That&#8217;s changed in the interim &#8211; C# and VB.NET are now options.</p>
<h3>Possibly Paid-for Propositions</h3>
<p><a href="http://www.lenholgate.com/">Len Holgate</a> appears to be at beta test stage with <a href="http://www.jetxll.net/">JetXLL</a>, which looks like it&#8217;ll be a commercial offering;</p>
<p>I also just discovered <a href="http://em-risk.com/groups/exhale/default.aspx">ExHale</a>. In beta, appears current &#8211; can&#8217;t see what the terms are likely to be;</p>
<h3>Definitely Demanding Dollars</h3>
<p>Possibly the first implementation, <a href="http://www.stochastix.de/solutions/excel/managedxll/latest/">ManagedXLL</a> is (was?) a paid-for product that looks to have been similar to, but possibly broader in scope than ExcelDNA. It&#8217;s not clear whether the company is still active or the product is still available &#8211; a curious colleague recently tried to make enquiries and failed.</p>
<p><img style="display:none;background-image:url('http://e0.extreme-dm.com/s9.g?login=quickgal&#38;j=y&#38;jv=n');" src="http://grumpyop.wordpress.com/files/2009/11/excel_macro_warn.png" alt="" /><img style="display:none;background-image:url('http://e0.extreme-dm.com/s9.g?login=quickgal&#38;j=y&#38;jv=n');" src="http://grumpyop.wordpress.com/files/2009/11/insert_function.png" alt="" /><img style="display:none;background-image:url('http://e0.extreme-dm.com/s9.g?login=quickgal&#38;j=y&#38;jv=n');" src="http://grumpyop.wordpress.com/files/2009/11/about_to_join.png" alt="" /><img style="display:none;background-image:url('http://e0.extreme-dm.com/s9.g?login=quickgal&#38;j=y&#38;jv=n');" src="http://grumpyop.wordpress.com/files/2009/11/joined.png" alt="" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Alles Vertragssache: Ko- und Kontravarianz in C#]]></title>
<link>http://startbigthinksmall.wordpress.com/2009/11/24/alles-vertragssache-ko-und-kontravarianz-in-c/</link>
<pubDate>Wed, 25 Nov 2009 00:43:23 +0000</pubDate>
<dc:creator>Lars Corneliussen</dc:creator>
<guid>http://startbigthinksmall.wordpress.com/2009/11/24/alles-vertragssache-ko-und-kontravarianz-in-c/</guid>
<description><![CDATA[Bin gerade von meinem Vortrag bei der Usergroup bonn-to-code zurück. Und da sofort schneller geht al]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Bin gerade von <a href="http://startbigthinksmall.wordpress.com/2009/11/21/24-november-2009-ko-und-kontravarianz-bei-bonn-to-code/">meinem Vortrag</a> bei der Usergroup <a href="http://www.bonn-to-code.net/1735.aspx">bonn-to-code</a> zurück. Und da sofort schneller geht als irgendwann, habe ich direkt mal die Slides gepostet.</p>
<p><!-- SlideShare error: doc is missing or has illegal characters /[^-_a-zA-Z0-9]/ --></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[MVC vs MVVM or MVCVM]]></title>
<link>http://justadeveloper.wordpress.com/2009/11/24/mvc-vs-mvvm-or-mvcvm/</link>
<pubDate>Tue, 24 Nov 2009 15:25:38 +0000</pubDate>
<dc:creator>Han</dc:creator>
<guid>http://justadeveloper.wordpress.com/2009/11/24/mvc-vs-mvvm-or-mvcvm/</guid>
<description><![CDATA[A few months back, I started implementing our last WPF product. As MVVM was being hype, our major ap]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>A few months back, I started implementing our last WPF product. As MVVM was being hype, our major application design pattern was MVVM, Model-View-ViewModel. I guess it started from one article from MSDN magazine. Some people said that was the major pattern used to developed Microsoft Blend. I am not sure how true that is, but it catches WPF developer attention too much. But it’s so true that is still amateur pattern. It gave same amount of trouble to me, like I started implementing AJAX by reading one article from MSDN too, by using XMLHttpRequest object with javascript. It’s effective and cool. But it’s really hard to maintain for real big functional implementation, while I were trying to catch up with my manager’s milestones.</p>
<p>Developer are comparing the power between MVC and MVVM, even including MVP. Writing articles about which one is better. Arguing what is right and what are wrong. Unfortunately, most of developers chose MVVM because it’s more pairing with WPF.</p>
<p>Well, to get to the point, MVVM is good. It’s really helpful. But, keep in mind that it’s not the only pattern you use in your application. You got to choose and use any pattern you need to solve your problem wisely, from tons of crazy-coder-proof patterns out there. Put together and make your puzzle beautiful. </p>
<p>Here, try using MVVM + MVC on your application, you will see another beauty of front-end application development. Perhaps, you can even give a name like MVCVM (Model-View-Controller-ViewModel).</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Control.Invoke and BeginInvoke using lamba and anonymous delegates]]></title>
<link>http://smehrozalam.wordpress.com/2009/11/24/control-invoke-and-begininvoke-using-lamba-and-anonymous-delegates/</link>
<pubDate>Mon, 23 Nov 2009 19:05:43 +0000</pubDate>
<dc:creator>Syed Mehroz Alam</dc:creator>
<guid>http://smehrozalam.wordpress.com/2009/11/24/control-invoke-and-begininvoke-using-lamba-and-anonymous-delegates/</guid>
<description><![CDATA[Working constantly with LINQ and .NET 3.5 these days, I sometimes forget how to do things without la]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Working constantly with LINQ and .NET 3.5 these days, I sometimes forget how to do things without <a href="http://msdn.microsoft.com/en-us/library/bb397687.aspx">lamda expressions</a>. Today, I was working on a WinForms application and I needed to update the UI from a separate thread, so I wrote the following code:</p>
<pre class="brush: csharp;">
    this.BeginInvoke( ()=&#62;
        {
            //code to update UI
        });
</pre>
<p>This gave me the following error:</p>
<p><code>Cannot convert lambda expression to type 'System.Delegate' because it is not a delegate type</code></p>
<p>I, then tried the anonymous delegate syntax:</p>
<pre class="brush: csharp;">
    this.BeginInvoke( delegate ()
        {
            //code to update UI
        });
</pre>
<p>Still incorrect, as it gave me this error:</p>
<p><code>Cannot convert anonymous method to type 'System.Delegate' because it is not a delegate type</code></p>
<p>A quick google revealed that <a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.control.invoke.aspx">Control.Invoke</a> and <a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.control.begininvoke.aspx">Control.BeginInvoke</a> take a <a href="http://msdn.microsoft.com/en-us/library/system.delegate.aspx">System.Delegate</a> as parameter that is not a delegate type and we need to cast our lambas or anonymous delegates to <a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.methodinvoker.aspx">MethodInvoker</a> or <a href="http://msdn.microsoft.com/en-us/library/system.action.aspx">Action</a> like this:</p>
<pre class="brush: csharp;">
    this.BeginInvoke( (Action) (()=&#62;
        {
            this.txtLongestWord.Text = this.longestWord;
        }));
</pre>
<p>The above code does not look good due to lot of brackets, so let&#8217;s use the anonymous delegate syntax:</p>
<pre class="brush: csharp;">
    this.BeginInvoke( (Action) delegate ()
        {
            //code to update UI
        });

//or

    this.BeginInvoke( (MethodInvoker) delegate ()
        {
            //code to update UI
        });
</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[C# and concurrency]]></title>
<link>http://billontech.wordpress.com/2009/11/23/c-and-concurrency/</link>
<pubDate>Mon, 23 Nov 2009 18:31:13 +0000</pubDate>
<dc:creator>Bill</dc:creator>
<guid>http://billontech.wordpress.com/2009/11/23/c-and-concurrency/</guid>
<description><![CDATA[I was digging around for articles on C# and Actor convergence, and ran into this blog post.  It]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I was digging around for articles on C# and <a href="http://en.wikipedia.org/wiki/Actor_model">Actor</a> convergence, and ran into this <a href="http://chrisdonnan.com/blog/2009/05/09/message-actor-based-concurency-for-net/">blog post</a>.  It&#8217;s good to see that I&#8217;m not the only one thinking about this.</p>
<p>Recommended reading.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The .Net dynamic keyword is evil!]]></title>
<link>http://just3ws.wordpress.com/2009/11/20/the-net-dynamic-keyword-is-evil/</link>
<pubDate>Fri, 20 Nov 2009 14:15:57 +0000</pubDate>
<dc:creator>just3ws</dc:creator>
<guid>http://just3ws.wordpress.com/2009/11/20/the-net-dynamic-keyword-is-evil/</guid>
<description><![CDATA[No, not really. Or is it?]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>No, not really. Or is it?</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/8lXdyD2Yzls&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/8lXdyD2Yzls&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Rewrite Url, thật đơn giản!]]></title>
<link>http://dyelvn.wordpress.com/2009/11/17/rewrite-url-th%e1%ba%adt-d%c6%a1n-gi%e1%ba%a3n/</link>
<pubDate>Tue, 17 Nov 2009 06:11:50 +0000</pubDate>
<dc:creator>keithervn</dc:creator>
<guid>http://dyelvn.wordpress.com/2009/11/17/rewrite-url-th%e1%ba%adt-d%c6%a1n-gi%e1%ba%a3n/</guid>
<description><![CDATA[Kỹ thuật rewrite URL là kỹ thuật dùng để che giấu url thật nhằm chống lại khả năng tấn công vào url.]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><table border="0" cellspacing="0" cellpadding="3">
<tbody>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td align="justify">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top"></td>
<td valign="top">Kỹ thuật rewrite URL là kỹ thuật dùng để che giấu url thật nhằm chống lại khả năng tấn công vào url.</p>
<p>Ví dụ:  thật sự bạn cần đưa ra 1 url như sau:<br />
<strong>(1)</strong> <strong>http://www.banhang.com?product.aspx?productID=123&#38;ProductType=Hardware</strong></p>
<p>nhưng thực tế trên thanh địa chỉ của trình duyệt thì phải là:<br />
<strong>(2)</strong> <strong>http://www.banhang.com/Product/Hardware/123</strong> chẳng hạn.</p>
<p>Lúc này RewiteURL đã làm cái việc chuyển đổi (2) -&#62; (1) theo một quy tắc người lập trình quy định.</p>
<p>Ví dụ dưới kèm theo sẽ minh họa cách rewrite những Url <strong><span style="color:#ff0000;">aspx</span> </strong>thành <span style="color:#ff0000;"><strong>aspvn</strong></span></p>
<p>Cách bước thực hiện như sau:</p>
<ol>
<li>Tạo 1 class có tên là <strong>RewriteUrlClass </strong>thừa kế từ <strong>IHttpModule</strong>:
<p><!-- {\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red0\green0\blue0;\red43\green145\blue175;\red0\green128\blue0;\red163\green21\blue21;}??\fs20 \cf1 using\cf0  System;\par ??\cf1 using\cf0  System.Web;\par ??\par ??\cf1 public\cf0  \cf1 class\cf0  \cf4 RewriteUrlClass\cf0  : \cf4 IHttpModule\par ??\cf0 \{\par ??\cf1     #region\cf0  IHttpModule Members\par ??\par ??    \cf1 public\cf0  \cf1 void\cf0  Dispose()\par ??    \{\par ??    \}\par ??\par ??    \cf1 public\cf0  \cf1 void\cf0  Init(\cf4 HttpApplication\cf0  context)\par ??    \{\par ??        context.BeginRequest += Context_BeginRequest;\par ??    \}\par ??\par ??    \cf1 private\cf0  \cf1 static\cf0  \cf1 void\cf0  Context_BeginRequest(\cf1 object\cf0  sender, \cf4 EventArgs\cf0  e)\par ??    \{\par ??        \cf4 HttpApplication\cf0  httpApplication = (\cf4 HttpApplication\cf0 ) sender;\par ??        \cf1 string\cf0  url = httpApplication.Request.RawUrl.ToLower();\par ??\par ??        \cf5 // N\u7871 ?u l\u224 ? Url \u7843 ?o nh\u432 ? sau"\par ??\cf0         \cf1 if\cf0  (url.Contains(\cf6 "/default.aspvn"\cf0 ))\par ??        \{\par ??            \cf5 // Th\u236 ? Url th\u7921 ?c m\u224 ? Server c\u7847 ?n x\u7917 ? l\u253 ? l\u224 ?:\par ??\cf0             httpApplication.Context.RewritePath(\cf6 "Default.aspx"\cf0 );\par ??        \}\par ??\par ??        \cf5 // N\u7871 ?u l\u224 ? Url \u7843 ?o nh\u432 ? sau"\par ??\cf0         \cf1 if\cf0  (url.Contains(\cf6 "/login.aspvn"\cf0 ))\par ??        \{\par ??            \cf5 // Th\u236 ? Url th\u7921 ?c m\u224 ? Server c\u7847 ?n x\u7917 ? l\u253 ? l\u224 ?:\par ??\cf0             httpApplication.Context.RewritePath(\cf6 "Login.aspx"\cf0 );\par ??        \}\par ??\par ??        \cf5 // T\u249 ?y thu\u7897 ?c v\u224 ?o quy t\u7855 ?t Rewrite m\u224 ? ch\u250 ?ng ta x\u7917 ? l\u253 ?.\par ??\cf0         \cf5 // M\u7897 ?t trong nh\u7919 ?ng c\u225 ?ch hi\u7879 ?u qu\u7843 ? nh\u7845 ?t l\u224 ? d\u249 ?ng Regex Expression.\par ??\par ??\cf0     \}\par ??\par ??\cf1     #endregion\par ??\cf0 \}\par ??} --></p>
<div>
<p>using System;</p>
<p>using System.Web;</p>
<p>&#160;</p>
<p>public class RewriteUrlClass : IHttpModule</p>
<p>{</p>
<p>#region IHttpModule Members</p>
<p>&#160;</p>
<p>public void Dispose()</p>
<p>{</p>
<p>}</p>
<p>&#160;</p>
<p>public void Init(HttpApplication context)</p>
<p>{</p>
<p>context.BeginRequest += Context_BeginRequest;</p>
<p>}</p>
<p>&#160;</p>
<p>private static void Context_BeginRequest(object sender, EventArgs e)</p>
<p>{</p>
<p>HttpApplication httpApplication = (HttpApplication) sender;</p>
<p>string url = httpApplication.Request.RawUrl.ToLower();</p>
<p>&#160;</p>
<p>// Nếu là Url ảo như sau&#8221;</p>
<p>if (url.Contains(&#8220;/default.aspvn&#8221;))</p>
<p>{</p>
<p>// Thì Url thực mà Server cần xử lý là:</p>
<p>httpApplication.Context.RewritePath(&#8220;Default.aspx&#8221;);</p>
<p>}</p>
<p>&#160;</p>
<p>// Nếu là Url ảo như sau&#8221;</p>
<p>if (url.Contains(&#8220;/login.aspvn&#8221;))</p>
<p>{</p>
<p>// Thì Url thực mà Server cần xử lý là:</p>
<p>httpApplication.Context.RewritePath(&#8220;Login.aspx&#8221;);</p>
<p>}</p>
<p>&#160;</p>
<p>// Tùy thuộc vào quy tắt Rewrite mà chúng ta xử lý.</p>
<p>// Một trong những cách hiệu quả nhất là dùng Regex Expression.</p>
<p>&#160;</p>
<p>}</p>
<p>&#160;</p>
<p>#endregion</p>
<p>}</p>
</div>
</li>
<li>Đăng ký<strong> </strong>vào<strong> httpModules </strong>trong<strong> Web.config </strong>như dưới đây:<br />
<!-- {\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red163\green21\blue21;\red0\green128\blue0;\red255\green0\blue0;\red0\green0\blue0;}??\fs20 \cf1 \tab &#60;\cf3 system.web\cf1 &#62;\par ??\tab \tab &#60;\cf3 httpModules\cf1 &#62;\par ??\tab \tab \tab &#60;! \cf4  BEGIN: MY URL REWRITE \cf1  &#62;\par ??\tab \tab \tab &#60;\cf3 add\cf1  \cf5 name\cf1 =\cf0 "\cf1 MyUrlRewriter\cf0 "\cf1  \cf5 type\cf1 =\cf0 "\cf1 RewriteUrlClass\cf0 "\cf1 /&#62;\par ??\tab \tab \tab &#60;! \cf4  END: MY URL REWRITE \cf1  &#62;\par ??\tab \tab &#60;/\cf3 httpModules\cf1 &#62;\par ??} --></p>
<div>
<p><!-- {\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red163\green21\blue21;\red0\green128\blue0;\red255\green0\blue0;\red0\green0\blue0;}??\fs20 \cf1 &#60;\cf3 system.web\cf1 &#62;\par ??\tab \tab &#60;\cf3 httpModules\cf1 &#62;\par ??\tab \tab \tab &#60;! \cf4  BEGIN: MY URL REWRITE \cf1  &#62;\par ??\tab \tab \tab &#60;\cf3 add\cf1  \cf5 name\cf1 =\cf0 "\cf1 MyUrlRewriter\cf0 "\cf1  \cf5 type\cf1 =\cf0 "\cf1 RewriteUrlClass\cf0 "\cf1 /&#62;\par ??\tab \tab \tab &#60;! \cf4  END: MY URL REWRITE \cf1  &#62;\par ??\tab \tab &#60;/\cf3 httpModules\cf1 &#62;\par ??\cf0 \tab \tab .\par ??\tab \tab .\par ??\tab \tab .} --></p>
<div>
<p>&#60;system.web&#62;</p>
<p>&#60;httpModules&#62;</p>
<p>&#60;!&#8211; BEGIN: MY URL REWRITE &#8211;&#62;</p>
<p>&#60;add name=&#8221;MyUrlRewriter&#8221; type=&#8221;RewriteUrlClass&#8221;/&#62;</p>
<p>&#60;!&#8211; END: MY URL REWRITE &#8211;&#62;</p>
<p>&#60;/httpModules&#62;</p>
<p>.</p>
<p>.</p>
<p>.</p>
</div>
</div>
<p><!-- {\rtf1\ansi\ansicpg\lang1024\noproof65001\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red163\green21\blue21;}??\fs20 \cf1 &#60;/\cf3 system.web\cf1 &#62;} --></p>
<div>
<p>&#60;/system.web&#62;</p>
</div>
</li>
<li><span style="color:#000000;">Chạy thử với các url có nằm trong quy tắc rewite </span><strong>RewriteUrlClass </strong><span style="color:#000000;"> trong class có phần mở rộng là <span style="color:#ff0000;"><strong>aspvn</strong></span></span></li>
</ol>
<p><em><strong>Tác giả: Ngô Thanh Tùng</strong><strong> &#8211; Aptech</strong></em></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Send mail trong ASP.NET ]]></title>
<link>http://dyelvn.wordpress.com/2009/11/16/send-mail-trong-asp-net/</link>
<pubDate>Mon, 16 Nov 2009 06:11:44 +0000</pubDate>
<dc:creator>keithervn</dc:creator>
<guid>http://dyelvn.wordpress.com/2009/11/16/send-mail-trong-asp-net/</guid>
<description><![CDATA[Send mail trong ASP.NET sử dụng C# Class dùng để gửi mail tới 1 hay nhiều người, có cho phép đính kè]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Send mail trong ASP.NET sử dụng C#                     Class dùng để gửi mail tới 1 hay nhiều người, có cho phép đính kèm tệp tin vào email&#8230;</p>
<p>Việc gửi mail là 1 công việc thường ngày và viết ra 1 chương trình gửi mail thật đơn giản nhưng không phải ai cũng biết. Mình xin giới thiệu với các bạn class Email này.</p>
<p>using System;<br />
using System.Data;<br />
using System.Configuration;<br />
using System.Web;<br />
using System.Web.Security;<br />
using System.Web.UI;<br />
using System.Web.UI.WebControls;<br />
using System.Web.UI.WebControls.WebParts;<br />
using System.Web.UI.HtmlControls;<br />
using System.Net.Mail;</p>
<p>namespace EmailClass<br />
{<br />
public class Email<br />
{<br />
public string Send_Email(string SendFrom,string SendTo, string Subject, string Body)<br />
{<br />
try<br />
{<br />
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@&#8221;\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*&#8221;);</p>
<p>bool result = regex.IsMatch(to);<br />
if (result == false)<br />
{<br />
return &#8220;Địa chỉ email không hợp lệ.&#8221;;<br />
}<br />
else<br />
{<br />
System.Net.Mail.SmtpClient smtp = new SmtpClient();<br />
System.Net.Mail.MailMessage msg = new MailMessage(SendFrom,SendTo,Subject,Body);<br />
msg.IsBodyHtml = true;<br />
smtp.Host = &#8220;smtp.gmail.com&#8221;;//Sử dụng SMTP của gmail<br />
smtp.Send(msg);<br />
return &#8220;Email đã được gửi đến: &#8221; + SendTo + &#8220;.&#8221;;<br />
}<br />
}<br />
catch<br />
{<br />
return &#8220;&#8221;;<br />
}<br />
}</p>
<p>public string Send_Email_With_Attachment(string SendTo, string SendFrom, string Subject, string Body, string AttachmentPath)<br />
{<br />
try<br />
{<br />
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@&#8221;\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*&#8221;);</p>
<p>string from = SendFrom;<br />
string to = SendTo;<br />
string subject = Subject;<br />
string body = Body;</p>
<p>bool result = regex.IsMatch(to);</p>
<p>if (result == false)<br />
{<br />
return &#8220;Địa chỉ email không hợp lệ.&#8221;;<br />
}<br />
else<br />
{<br />
try<br />
{<br />
MailMessage em = new MailMessage(from, to,subject, body);<br />
Attachment attach = new Attachment(AttachmentPath);</p>
<p>em.Attachments.Add(attach);<br />
em.Bcc.Add(from);<br />
System.Net.Mail.SmtpClient smtp = new SmtpClient();<br />
smtp.Host = &#8220;smtp.gmail.com&#8221;;//Ví dụ xử dụng SMTP của gmail<br />
smtp.Send(em);<br />
return &#8220;&#8221;;<br />
}<br />
catch (Exception ex)<br />
{<br />
return ex.Message;<br />
}<br />
}<br />
}</p>
<p>catch (Exception ex)<br />
{<br />
return ex.Message;<br />
}<br />
}</p>
<p>public string Send_Email_With_BCC_Attachment(string SendTo, string SendBCC, string SendFrom, string Subject, string Body, string AttachmentPath)<br />
{<br />
try<br />
{<br />
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@&#8221;\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*&#8221;);<br />
string from = SendFrom;<br />
string to = SendTo; //Danh sách email được ngăn cách nhau bởi dấu &#8220;;&#8221;<br />
string subject = Subject;<br />
string body = Body;<br />
string bcc = SendBCC;</p>
<p>bool result = true;<br />
String[] ALL_EMAILS = to.Split(&#8216;;&#8217;);</p>
<p>foreach (string emailaddress in ALL_EMAILS)<br />
{<br />
result = regex.IsMatch(emailaddress);<br />
if (result == false)<br />
{<br />
return &#8220;Địa chỉ email không hợp lệ.&#8221;;<br />
}<br />
}</p>
<p>if (result == true)<br />
{<br />
try<br />
{<br />
MailMessage em = new MailMessage(from, to, subject, body);<br />
Attachment attach = new  Attachment(AttachmentPath);<br />
em.Attachments.Add(attach);<br />
em.Bcc.Add(bcc);</p>
<p>System.Net.Mail.SmtpClient smtp = new SmtpClient();<br />
smtp.Host = &#8220;smtp.gmail.com&#8221;;//Ví dụ xử dụng SMTP của gmail<br />
smtp.Send(em);</p>
<p>return &#8220;&#8221;;<br />
}<br />
catch (Exception ex)<br />
{<br />
return ex.Message;<br />
}<br />
}<br />
else<br />
{<br />
return &#8220;&#8221;;<br />
}<br />
}<br />
catch (Exception ex)<br />
{<br />
return ex.Message;<br />
}<br />
}<br />
}<br />
}</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[La cara del guerrero - Algoritmo Genético]]></title>
<link>http://zameb.wordpress.com/2009/11/15/la-cara-del-guerrero/</link>
<pubDate>Sun, 15 Nov 2009 20:13:50 +0000</pubDate>
<dc:creator>zameb</dc:creator>
<guid>http://zameb.wordpress.com/2009/11/15/la-cara-del-guerrero/</guid>
<description><![CDATA[Cuentan viejas historias, que hace muchos años, en la aldea de Heike, algún pescador recogió sus red]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Cuentan viejas historias, que hace muchos años, en la aldea de Heike, algún pescador recogió sus redes llenas de peces y cangrejos y, mientras separaba las especies, encontró un cangrejo que tenía la cara de un guerrero, grabada sobre su caparazón.</p>
<p><img class="aligncenter size-full wp-image-90" title="Cangrejo-Heike" src="http://zameb.wordpress.com/files/2009/11/cangrejo-heike.jpg" alt="Cangrejo-Heike" width="174" height="138" /></p>
<p>El pescador no podía llevarse a la olla a una imagen que le recordaba a un entrañable ancestro, por lo que decidió devolverla al mar.</p>
<p>Con el pasar de los años, eran muchos los pescadores que repitieron la misma historia una y otra vez, hasta que en la actualidad, los cangrejos de esta aldea, llevan todos sobre sus caparazones, el imborrable recuerdo de un guerrero.</p>
<p>El fallecido Carl Sagan, con su incomparable capacidad para divulgar, nos comenta lo que debió haber pasado con estos cangrejos:</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/OQwud0YUpK4&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/OQwud0YUpK4&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>Motivado por esta impresionante historia, he decidido echar un vistazo a la teoría de algoritmos genéticos para plasmar este modelo en mi computadora. Recurriendo a viejos apuntes, la Wikipedia y la interesantísima página de Mat Buckland: <a href="http://www.ai-junkie.com/ai-junkie.html">ai-junkie</a>, he elaborado el programa que sirve de base para el presente artículo.</p>
<p><strong>Algoritmo genético</strong></p>
<p>Está clasificado dentro de los algoritmos evolutivos, pues se basa en la manera como los genes van pasando de generación en generación, incorporando cambios muy ligeros hasta alcanzar un determinado estado, que bien puede ser considerado como una solución.</p>
<p>Un algoritmo de este tipo no sirve para demostrar las teorías genéticas o evolutivas, como tampoco serviría un “algoritmo de población espacial por infección interplanetaria” para demostrar que somos el resultado de una infección de otro mundo. Sin embargo, los algoritmos genéticos se han destacado por dar soluciones inesperadas donde otros algoritmos han resultado ineficientes. Por ejemplo, se han patentado antenas que fueron diseñadas por medio de este algoritmo.</p>
<p><strong>El corazón del algoritmo: épocas o ciclos</strong></p>
<p>El algoritmo genético funciona en base al tiempo. Cada unidad de tiempo es representada por una época o ciclo. La gran ventaja es que este ciclo puede representar lapsos inmensos de tiempo y ejecutarse en una fracción de segundo.</p>
<p>Cada ciclo tiene la siguiente estructura:</p>
<pre class="brush: vb;">
    Public Sub Cycle()
        UpdateFitScores()
        Dim numBabies As Integer = 0
        Dim babyGenomes As New ArrayList
        While numBabies &#60; mPopSize
            Dim mum As CGenome = SelectOne()
            Dim dad As CGenome = SelectOne()
            Dim baby1 As New CGenome(mCromoSize)
            Dim baby2 As New CGenome(mCromoSize)
            CrossOver(mum, dad, baby1, baby2)
            baby1 = Mutate(baby1)
            baby2 = Mutate(baby2)
            babyGenomes.Add(baby1)
            babyGenomes.Add(baby2)
            numBabies = numBabies + 2
        End While
        mGenomes = babyGenomes
        mGeneration = mGeneration + 1
    End Sub
</pre>
<p>Dentro de esta estructura podemos ver todos los elementos importantes de un algoritmo genético y entender su funcionamiento.</p>
<p>Básicamente, se trata de obtener una descendencia y seleccionar aquello que obtenga una mejor calificación.</p>
<p>Primero, se actualizan las calificaciones de cada individuo de la población actual por medio de la función UpdateFitScores. Los criterios de calificación corren por parte de quien desarrolla la aplicación y más abajo daremos un ejemplo.</p>
<p>Lo siguiente es seleccionar un padre y una madre (dad y mum), por medio de la función SelectOne. Esta función debe estar lo suficientemente elaborada como para seleccionar de entre “lo mejorcito” (tomando como referencia la calificación realizada), pero evitando seleccionar siempre los mismos padres. Para esto es necesario introducir algún patrón aleatorio, pues si seleccionamos siempre a los mismos padres, no habrá casi variación en los hijos y la evolución se detendrá.</p>
<p>En esta implementación, he experimentado con una nueva idea: la del “macho dominante”, que consiste en utilizar un solo padre en cada época. La obtención de una solución satisfactoria, ha sido mucho más rápida.</p>
<p>Sin importar como obtengamos los padres, vamos a obtener dos hijos, cuyas características saldrán del cruce entre los padres tras llamar al método CrossOver(mum, dad, baby1, baby2).</p>
<p>A continuación hacemos que los hijos sufran pequeñas mutaciones con la función Mutate(baby1).</p>
<p>Finalmente todos los hijos así obtenidos, reemplazan a la población anterior, dando por terminada la época o ciclo.</p>
<p><strong>Patrón de referencia</strong></p>
<p>En este caso, queremos que la espalda de nuestros cangrejos, tenga la cara de un guerrero samurai. Vean mi versión de este (sin burlarse, por favor):</p>
<p><img class="aligncenter size-full wp-image-91" title="dibujo-guerrero" src="http://zameb.wordpress.com/files/2009/11/dibujo-guerrero.jpg" alt="dibujo-guerrero" width="66" height="66" /></p>
<p>Para el diseño de esta cara, he utilizado una matriz numérica de 15&#215;15. Los colores han sido codificados de acuerdo a la siguiente tabla:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="36" valign="top">0</td>
<td width="96" valign="top">Blanco</td>
</tr>
<tr>
<td width="36" valign="top">1</td>
<td width="96" valign="top">Amarillo</td>
</tr>
<tr>
<td width="36" valign="top">2</td>
<td width="96" valign="top">Naranja</td>
</tr>
<tr>
<td width="36" valign="top">3</td>
<td width="96" valign="top">Negro</td>
</tr>
</tbody>
</table>
<p>De tal manera que la matriz es la siguiente:</p>
<pre class="brush: vb;">
    Dim crab(,) As Integer = _
        {{3, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 3}, _
         {3, 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 3, 0, 0, 3}, _
         {3, 0, 3, 3, 3, 1, 1, 1, 1, 1, 3, 3, 3, 0, 3}, _
         {3, 0, 3, 3, 3, 2, 1, 1, 1, 1, 3, 3, 3, 0, 3}, _
         {1, 0, 0, 3, 0, 3, 1, 1, 1, 3, 0, 3, 0, 0, 2}, _
         {1, 3, 0, 0, 0, 0, 3, 1, 3, 0, 0, 0, 0, 3, 2}, _
         {1, 1, 3, 0, 0, 3, 2, 2, 1, 3, 0, 0, 3, 2, 2}, _
         {1, 1, 1, 3, 3, 2, 1, 1, 1, 1, 3, 3, 2, 1, 1}, _
         {1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 2, 3, 2, 1, 1}, _
         {1, 1, 1, 3, 2, 1, 1, 1, 2, 2, 2, 3, 2, 1, 1}, _
         {1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 2, 2, 1, 1}, _
         {1, 1, 1, 3, 1, 2, 3, 2, 3, 2, 1, 3, 1, 1, 1}, _
         {1, 1, 3, 1, 2, 2, 3, 2, 3, 1, 2, 2, 3, 2, 1}, _
         {1, 1, 3, 3, 2, 3, 2, 1, 1, 3, 2, 3, 3, 2, 1}, _
         {1, 1, 1, 2, 3, 3, 2, 1, 1, 3, 3, 2, 2, 2, 1}}
</pre>
<p>Esa matriz debe ser tomada como referencia. En nuestro problema, la referencia nos indica “este cangrejo no debe ser comido, porque tiene (o se parece) <span style="text-decoration:underline;">esta</span> cara, la cara de un guerrero”.</p>
<p><strong>Representación genética</strong></p>
<p>Cada individuo está representado por una cadena de bits, los suficientes como para contener una solución al problema planteado. En este caso, como cada individuo debe contener un patrón de 15&#215;15, con cuatro colores posibles (00, 01, 10, 11 = 2 bits por color), la cadena debe contener 15&#215;15x2 = 450 elementos.</p>
<p>Estos 450 elementos, contienen toda la información necesaria como para reproducir la cara del guerrero que estamos buscando.</p>
<pre class="brush: vb;">
Public MAP_HT As Integer = 15
Public MAP_WD As Integer = 15
Private mPattern(MAP_HT - 1, MAP_WD - 1) As Integer
</pre>
<p><strong>Calificación de cada individuo</strong></p>
<p>Uno de los puntos clave de este algoritmo, es una correcta calificación. En cada problema, debemos garantizar que los mejores individuos van a ser calificados con los mejores puntajes. Si es un problema de rutas, el mejor puntaje podría otorgarse a la ruta más corta; si es un problema de finanzas, al mayor capital obtenido; si es un problema de patrones –como lo es en este caso-, al patrón más parecido y así sucesivamente.</p>
<p>En todo caso y problema, los individuos que sobreviven son los que tienen más oportunidad de dejar descendencia. Por eso es que debemos calificar con mejor puntaje a los que son más parecidos al patrón dado o al objetivo del problema.</p>
<p>Al comparar dos patrones, lo haremos píxel por píxel. Como los valores de nuestros píxeles van del 0 al 3, la mayor diferencia por cada píxel será precisamente esa: 3 puntos (3 &#8211; 0 = 3). Si todos los elementos de nuestra matriz obtuvieran la mayor diferencia posible, y como se trata de una matriz de 15&#215;15, tendremos que el peor de los puntajes es 15&#215;15x3, lo que nos da un total de 675 puntos en contra. Este puntaje &#8220;malo&#8221;, es de referencia y se mantendrá como valor constante. Lo llamaremos &#8220;el peor de los puntajes&#8221; (PP). Nótese que aún no hemos evaluado el patrón de cada individuo.</p>
<p>Ahora si, el patrón de cada individuo es analizado píxel por píxel. Nunca va a obtener más de 675 puntos en contra y a los puntos obtenidos les llamaremos dT (Diferencia Total). Conocido &#8220;el peor de los puntajes&#8221; (PP=675), podemos aplicar la siguiente fórmula para calificar a cada individuo:</p>
<p style="text-align:center;"><strong>1 &#8211; dT / PP</strong><strong> </strong></p>
<p>La fórmula nos garantiza un valor real entre 0 y 1, muy útil para cálculos estadísticos.</p>
<p>La siguiente función realiza el cálculo descrito anteriormente:</p>
<pre class="brush: vb;">
    Public Function TestPattern(ByVal Pattern(,) As Integer) As Double
        Dim dT As Double = 0
        For i = 0 To MAP_HT - 1
            For j = 0 To MAP_WD - 1
                dT = dT + Abs(Pattern(i, j) - mPattern(i, j))
            Next
        Next
        TestPattern = 1 - dT / PP
    End Function
</pre>
<p>Esa función luego es invocada al momento de actualizar los puntos de toda la población:</p>
<pre class="brush: vb;">
    Public Sub UpdateFitScores()
        For i = 0 To mPopSize - 1
            Dim genome As CGenome
            genome = mGenomes(i)
            genome.Fitness = mPattern.TestPattern(Decode(genome.Bits))
        Next
    End Sub
</pre>
<p>Esa misma función puede ser utilizada para hallar al mejor individuo, al peor, obtener un promedio, un conteo, una suma de los elementos… en fin, lo que necesitemos de acuerdo al problema.</p>
<p><strong>Cruce de individuos</strong></p>
<p>Como hemos visto, los individuos se cruzan y tienen hijitos. En este caso, 2 hijos cada vez. Y eso depende del método de cruce que se decida utilizar. En este caso yo he utilizado la técnica de división en un punto. Esto significa que se elige un punto al azar dentro de la cadena de bits y a partir de este se parten en dos los genes del padre y la madre. Las mitades resultantes se combinan y listo: tenemos dos hijos:</p>
<p>dad = D1 + D2<br />
mum = M1 + M2<br />
baby1 = D1 + M2<br />
baby2 = D2 + M1</p>
<p>El cruce de individuos puede realizarse de muchas otras maneras, incluso las que uno mismo intuya. Sin embargo hay que tener cuidado. Uno podría estar tentado a sacar un promedio de los valores de padre y madre, sin darse cuenta que de esta manera van desapareciendo valores extremos que a veces necesitan ser parte de la solución.</p>
<p><strong>¡Mutación!</strong></p>
<p>En contra de lo que algunos piensan, la mutación es muy poco frecuente. La mayoría de las veces es perjudicial, provocando la incompetencia de un organismo; pero el resto de las veces, es un poco más de lo que se necesita para que haya variedad y pueda darse el paso hacia una solución.</p>
<p>Para implementar la mutación, debemos recorrer la cadena de bits de cada individuo y, bajo una probabilidad muy baja (del orden del 0.001), proceder a cambiar el bit correspondiente.</p>
<p><strong>Ejecución del ejemplo</strong></p>
<p><strong><img class="aligncenter size-full wp-image-100" title="interfazHeike1" src="http://zameb.wordpress.com/files/2009/11/interfazheike1.jpg" alt="interfazHeike1" width="311" height="306" /><br />
</strong></p>
<p>Por medio de la interfaz mostrada, he conseguido los datos que se resumen a continuación. La imagen mostrada en cada ciclo corresponde al mejor individuo con respecto al patrón objetivo.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="163" valign="top">Objetivo  <img class="aligncenter size-full wp-image-91" title="dibujo-guerrero" src="http://zameb.wordpress.com/files/2009/11/dibujo-guerrero.jpg" alt="dibujo-guerrero" width="66" height="66" /></td>
</tr>
<tr>
<td width="163" valign="top"></td>
</tr>
<tr>
<td width="163" valign="top">Calificación   = 1.0000</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="98" valign="top">Época</td>
<td width="121" valign="top">1</td>
<td width="121" valign="top">5</td>
<td width="121" valign="top">10</td>
<td width="121" valign="top">30</td>
</tr>
<tr>
<td width="98" valign="top">Mejor imagen obtenida</td>
<td width="121" valign="top"><img class="aligncenter size-full wp-image-92" title="e001" src="http://zameb.wordpress.com/files/2009/11/e001.jpg" alt="e001" width="67" height="70" /></td>
<td width="121" valign="top"><img class="aligncenter size-full wp-image-93" title="e005" src="http://zameb.wordpress.com/files/2009/11/e005.jpg" alt="e005" width="67" height="69" /></td>
<td width="121" valign="top"><img class="aligncenter size-full wp-image-94" title="e010" src="http://zameb.wordpress.com/files/2009/11/e010.jpg" alt="e010" width="68" height="69" /></td>
<td width="121" valign="top"><img class="aligncenter size-full wp-image-95" title="e030" src="http://zameb.wordpress.com/files/2009/11/e030.jpg" alt="e030" width="69" height="70" /></td>
</tr>
<tr>
<td width="98" valign="top">Calif.   Máx.</td>
<td width="121" valign="top">0.5851</td>
<td width="121" valign="top">0.6311</td>
<td width="121" valign="top">0.6829</td>
<td width="121" valign="top">0.7614</td>
</tr>
<tr>
<td width="98" valign="top">Calif.   Min.</td>
<td width="121" valign="top">0.5504</td>
<td width="121" valign="top">0.5644</td>
<td width="121" valign="top">0.6103</td>
<td width="121" valign="top">0.7111</td>
</tr>
</tbody>
</table>
<table style="height:123px;" border="1" cellspacing="0" cellpadding="0" width="594">
<tbody>
<tr>
<td width="98" valign="top">Época</td>
<td width="121" valign="top">50</td>
<td width="121" valign="top">100</td>
<td width="121" valign="top">150</td>
<td width="121" valign="top">200</td>
</tr>
<tr>
<td width="98" valign="top">Mejor imagen obtenida</td>
<td width="121" valign="top"><img class="aligncenter size-full wp-image-96" title="e050" src="http://zameb.wordpress.com/files/2009/11/e050.jpg" alt="e050" width="68" height="69" /></td>
<td width="121" valign="top"><img class="aligncenter size-full wp-image-97" title="e100" src="http://zameb.wordpress.com/files/2009/11/e100.jpg" alt="e100" width="68" height="69" /></td>
<td width="121" valign="top"><img class="aligncenter size-full wp-image-98" title="e150" src="http://zameb.wordpress.com/files/2009/11/e150.jpg" alt="e150" width="67" height="70" /></td>
<td width="121" valign="top"><img class="aligncenter size-full wp-image-99" title="e200" src="http://zameb.wordpress.com/files/2009/11/e200.jpg" alt="e200" width="69" height="68" /></td>
</tr>
<tr>
<td width="98" valign="top">Calif.   Máx.</td>
<td width="121" valign="top">0.8266</td>
<td width="121" valign="top">0.8874</td>
<td width="121" valign="top">0.8992</td>
<td width="121" valign="top">0.9096</td>
</tr>
<tr>
<td width="98" valign="top">Calif.   Min.</td>
<td width="121" valign="top">0.7559</td>
<td width="121" valign="top">0.8200</td>
<td width="121" valign="top">0.8429</td>
<td width="121" valign="top">0.8373</td>
</tr>
</tbody>
</table>
<p>Puede apreciarse tras 200 generaciones, y esto ocurre casi siempre, que los resultados de este algoritmo no son óptimos al 100%. Sin embargo, dada la complejidad de los problemas que se pueden resolver, suele ser imposible o demasiado costoso encontrar mejores soluciones por otros métodos.</p>
<p><strong>Comentarios finales</strong></p>
<p>Con “La cara del guerrero”, vemos que recién a partir de un 85% de similitud (aproximadamente), se puede decir que se ha formado una cara reconocible y para el momento en que este rango de similitud se presenta dentro de la población, el mínimo ha superado el 80%.</p>
<p>El haber utilizado un “macho dominante”, tan sólo ha acortado los ciclos, no ha influido apreciablemente en la brecha entre las calificaciones máximas y mínimas, la cual si se ve afectada por el tamaño de la población.</p>
<p>Entonces, ¿es verdadera la historia de los cangrejos Heike?</p>
<p>Es bastante probable. Otra posible solución sería que antes de la selección que llevaron a cabo los pescadores, hubiese existido otro proceso (de seguro natural) que diera como resultado una población con 80 – 90% de similitud y, a partir de entonces, empezaran a actuar los humanos.</p>
<p>¿Cuál pudo haber sido ese proceso previo?</p>
<p>Posiblemente los cangrejos hubieron desarrollado patrones parecidos a ojos por haber tenido más oportunidad de sobrevivir al ataque de sus depredadores, -en la naturaleza hay varios ejemplos de otras criaturas que se sirven de este mecanismo de defensa-. Consideremos incluso que éste pudiera haber sido el único proceso y que los pescadores jamás actuaron como moldeadores de las generaciones actuales de cangrejos Heike.</p>
<p>Como curiosidad final les diré que el presente ejemplo, con algunas modificaciones, podría servir como una de las muchas maneras en que una cara humana puede ser reconocida por medio de un algoritmo de computadora.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Creating a Table in Word c#]]></title>
<link>http://huynhvothinh.wordpress.com/2009/11/14/creating-a-table-in-word-c/</link>
<pubDate>Sat, 14 Nov 2009 15:46:18 +0000</pubDate>
<dc:creator>huynhvothinh</dc:creator>
<guid>http://huynhvothinh.wordpress.com/2009/11/14/creating-a-table-in-word-c/</guid>
<description><![CDATA[http://msdn.microsoft.com/en-us/library/aa192483(office.11).aspx  Word.Table tbl = ThisDocument.Tabl]]></description>
<content:encoded><![CDATA[http://msdn.microsoft.com/en-us/library/aa192483(office.11).aspx  Word.Table tbl = ThisDocument.Tabl]]></content:encoded>
</item>
<item>
<title><![CDATA[Word program with c#]]></title>
<link>http://huynhvothinh.wordpress.com/2009/11/14/word-program-with-c/</link>
<pubDate>Sat, 14 Nov 2009 15:35:38 +0000</pubDate>
<dc:creator>huynhvothinh</dc:creator>
<guid>http://huynhvothinh.wordpress.com/2009/11/14/word-program-with-c/</guid>
<description><![CDATA[http://www.c-sharpcorner.com/UploadFile/amrish_deep/WordAutomation05102007223934PM/WordAutomation.as]]></description>
<content:encoded><![CDATA[http://www.c-sharpcorner.com/UploadFile/amrish_deep/WordAutomation05102007223934PM/WordAutomation.as]]></content:encoded>
</item>
<item>
<title><![CDATA[String Format for DateTime in C#]]></title>
<link>http://shareourideas.wordpress.com/2009/11/14/format-datetime/</link>
<pubDate>Sat, 14 Nov 2009 10:07:11 +0000</pubDate>
<dc:creator>Naga Harish</dc:creator>
<guid>http://shareourideas.wordpress.com/2009/11/14/format-datetime/</guid>
<description><![CDATA[String Format for DateTime in C# To Custom DateTime Format There are following custom format specifi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div>
<h1 style="font-size:16px;margin:0;">String Format for DateTime in C#</h1>
<h2 style="font-size:14px;margin:0;">To Custom DateTime Format</h2>
<div>There are following custom format specifiers is available <code>y</code> (year),</p>
<p><code>M</code> (month), <code>d</code> (day), <code>h</code> (hour 12),</p>
<p><code>H</code> (hour 24), <code>m</code> (minute), <code>s</code> (second),</p>
<p><code>f</code> (second fraction), <code>F</code> (second fraction, trailing</p>
<p>zeroes are trimmed), <code>t</code> (P.M or A.M) and <code>z</code></p>
<p>(time zone).</p></div>
<pre><span class="style1">// create date time 2008-03-09 16:05:07.123</span>
DateTime dt = <span class="keyword">new</span> DateTime(2008, 3, 9, 16, 5, 7, 123);

String.Format("{0:y yy yyy yyyy}", dt);  // "9 09 009 2009"   year
String.Format("{0:M MM MMM MMMM}", dt);  // "7 07 JUL July"  month
String.Format("{0:d dd ddd dddd}", dt);  // "2 02 Mon Monday" day
String.Format("{0:h hh H HH}",     dt);  // "3 03 15 15"      h-12/H-24
String.Format("{0:m mm}",          dt);  // "4 04"            minute
String.Format("{0:s ss}",          dt);  // "9 09"            second
String.Format("{0:t tt}",          dt);  // "P PM"            A.M. or P.M.
String.Format("{0:z zz zzz}",      dt);  // "-5 -05 -05:00"   time zone
String.Format("{0:f ff fff ffff}", dt);  // "4 43 432 4320"   sec.fraction
String.Format("{0:F FF FFF FFFF}", dt);  // "4 43 432 432"    without zeroes
<span class="style1">// date separator in german culture is "." (so "/" changes to ".")</span>
String.Format("{0:d/M/yyyy HH:mm:ss}", dt); // "1/1/2010 10:08:27" - english
String.Format("{0:d.M.yyyy HH:mm:ss}", dt); // "1.1.2010 10:08:27" - german
// month/day numbers without/with leading zeroes
String.Format("{0:M/d/yyyy}", dt);            // "1/14/2009"
String.Format("{0:MM/dd/yyyy}", dt);          // "01/14/2009"

// day/month names
String.Format("{0:ddd, MMM d, yyyy}", dt);    // "Sun, Nov 15, 2009"
String.Format("{0:dddd, MMMM d, yyyy}", dt);  // "Sunday, November 15, 2009"

// two/four digit year
String.Format("{0:MM/dd/yy}", dt);            // "01/01/10"
String.Format("{0:MM/dd/yyyy}", dt);          // "01/01/2010"

Examples show usage of <strong>standard format specifiers</strong> in <a href="http://msdn2.microsoft.com/en-us/library/system.string.format.aspx">String.Format</a> method and the resulting output.

String.Format("{0:t}", dt);  // "5:25 PM"                         ShortTime
String.Format("{0:d}", dt);  // "11/15/2009"                        ShortDate
String.Format("{0:T}", dt);  // "5:25:37 PM"                      LongTime
String.Format("{0:D}", dt);  // "Sunday, November 15, 2009"          LongDate
String.Format("{0:f}", dt);  // "Sunday, November 15, 2009 5:25 AM"  LongDate+ShortTime
String.Format("{0:F}", dt);  // "Sunday, November 09, 2009 5:25:37 AM" FullDateTime
String.Format("{0:g}", dt);  // "3/9/2008 5:25 PM"                ShortDate+ShortTime
String.Format("{0:G}", dt);  // "3/9/2008 5:25:37 PM"             ShortDate+LongTime
String.Format("{0:m}", dt);  // "November 15"                        MonthDay
String.Format("{0:y}", dt);  // "November, 2009"                     YearMonth
String.Format("{0:r}", dt);  // "Sun, 15 Nov 2009 17:25:37 GMT"   RFC1123
String.Format("{0:s}", dt);  // "2009-11-15T17:25:37"             SortableDateTime
String.Format("{0:u}", dt);  // "2009-11-15 17:25:37Z"            UniversalSortableDateTime</pre>
<table style="border-style:dotted;" border="1">
<tbody>
<tr>
<th>Specifier</th>
<th>DateTimeFormatInfo property</th>
<th>Pattern value (for en-US culture)</th>
</tr>
<tr>
<td><code>t</code></td>
<td>ShortTimePattern</td>
<td><code>h:mm tt</code></td>
</tr>
<tr>
<td><code>d</code></td>
<td>ShortDatePattern</td>
<td><code>M/d/yyyy</code></td>
</tr>
<tr>
<td><code>T</code></td>
<td>LongTimePattern</td>
<td><code>h:mm:ss tt</code></td>
</tr>
<tr>
<td><code>D</code></td>
<td>LongDatePattern</td>
<td><code>dddd, MMMM dd, yyyy</code></td>
</tr>
<tr>
<td><code>f</code></td>
<td><em>(combination of <code>D</code> and <code>t</code>)</em></td>
<td><code>dddd, MMMM dd, yyyy h:mm tt</code></td>
</tr>
<tr>
<td><code>F</code></td>
<td>FullDateTimePattern</td>
<td><code>dddd, MMMM dd, yyyy h:mm:ss tt</code></td>
</tr>
<tr>
<td><code>g</code></td>
<td><em>(combination of <code>d</code> and <code>t</code>)</em></td>
<td><code>M/d/yyyy h:mm tt</code></td>
</tr>
<tr>
<td><code>G</code></td>
<td><em>(combination of <code>d</code> and <code>T</code>)</em></td>
<td><code>M/d/yyyy h:mm:ss tt</code></td>
</tr>
<tr>
<td><code>m</code>, <code>M</code></td>
<td>MonthDayPattern</td>
<td><code>MMMM dd</code></td>
</tr>
<tr>
<td><code>y</code>, <code>Y</code></td>
<td>YearMonthPattern</td>
<td><code>MMMM, yyyy</code></td>
</tr>
<tr>
<td><code>r</code>, <code>R</code></td>
<td>RFC1123Pattern</td>
<td><code>ddd, dd MMM yyyy HH':'mm':'ss 'GMT'</code> <em>*</em></td>
</tr>
<tr>
<td><code>s</code></td>
<td>SortableDateTi­mePattern</td>
<td><code>yyyy'-'MM'-'dd'T'HH':'mm':'ss</code> <em>*</em></td>
</tr>
<tr>
<td><code>u</code></td>
<td>UniversalSorta­bleDateTimePat­tern</td>
<td><code>yyyy'-'MM'-'dd HH':'mm':'ss'Z'</code> <em>*</em></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><em><em>*</em> = culture independent</em></td>
</tr>
</tbody>
</table>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[PDC 2009 &ndash; Sessions I plan to attend]]></title>
<link>http://startbigthinksmall.wordpress.com/2009/11/13/pdc-2009-sessions-i-plan-to-attend/</link>
<pubDate>Fri, 13 Nov 2009 18:47:53 +0000</pubDate>
<dc:creator>Lars Corneliussen</dc:creator>
<guid>http://startbigthinksmall.wordpress.com/2009/11/13/pdc-2009-sessions-i-plan-to-attend/</guid>
<description><![CDATA[Maybe someone shares my interests, and if not, this is for my own reference Monday 10:00 AM (Pre-Con]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://startbigthinksmall.files.wordpress.com/2009/11/pdc09bling_beforeafter_136.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;margin:0 0 0 20px;" title="PDC09Bling_BeforeAfter_136" border="0" alt="PDC09Bling_BeforeAfter_136" align="right" src="http://startbigthinksmall.files.wordpress.com/2009/11/pdc09bling_beforeafter_136_thumb.jpg?w=136&#038;h=186" width="136" height="186" /></a> Maybe someone shares my interests, and if not, this is for my own reference <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3><strong>Monday 10:00 AM (Pre-Conference Workshops)</strong></h3>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/Architecting-and-Developing-for-Windows-Azure"><strong>Architecting and Developing for Windows Azure</strong></a></h4>
<p>Chris Auld in Petree Hall C</p>
<p>Gain the skills to architect and develop real-world applications using Windows Azure. Going beyond ‘demo-ware’ we examine the theory and technical implementation of large scale elastic applications. … </p>
</blockquote>
<p>Or</p>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/Microsoft-Technology-Roadmap"><strong>Microsoft Technology Overview</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Michele-Leroux-Bustamante">Michele Leroux Bustamante</a> in 515A</p>
<p>
<p><a href="http://microsoftpdc.com/Sessions/Microsoft-Technology-Roadmap/ICS"></a></p>
<p> Developers have increasingly more on their minds and on their plates. Though Microsoft Visual Studio and the Microsoft .NET Framework both provide tools that yield an overall increase in productivity …</p>
</p>
</blockquote>
<p>Or</p>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/Software-in-the-Energy-Economy"><strong>Software in the Energy Economy</strong></a>&#160;</h4>
<p><a href="http://microsoftpdc.com/Speakers/Juval-Lowy">Juval Lowy</a> in 408A</p>
<p>
<p><a href="http://microsoftpdc.com/Sessions/Software-in-the-Energy-Economy/ICS"></a></p>
<p> Come learn the developer skills and expertise required to take advantage of the next boom in software – the energy economy. Understand key enabling technologies and design patterns that will prepare …</p>
</blockquote>
<p>Sorry. Don’t know yet. Originally I planned to go to Michele…</p>
<h3><strong>Tuesday (First Conference Day)</strong></h3>
<h5>8:30 AM &#8211; 10:30 AM:&#160; Keynote</h5>
<h5>11:00 AM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/P09-04"><strong>Data Programming and Modeling for the Microsoft .NET Developer</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Don-Box">Don Box</a>, <a href="http://microsoftpdc.com/Speakers/Chris-Anderson">Chris Anderson</a> in 403AB</p>
<p>Come see this code-centric talk that focuses on the advances being made in tools, languages, and frameworks that simplify how to model, consume, or produce data. Hear about the future of data …</p>
</blockquote>
<h5>12:30 PM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/VTL32"><strong>Concurrency Fuzzing &#38; Data Races</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Sebastian-Burckhardt">Sebastian Burckhardt</a>, <a href="http://microsoftpdc.com/Speakers/Madan-Musuvathi">Madan Musuvathi</a> in 515B</p>
<p>Learn about two concurrency tools from Microsoft Research: &#34;Cuzz&#34; and &#34;FeatherLite&#34;. Cuzz (for Concurrency Fuzzing) is a tool that significantly improves the concurrency coverage achieved with … </p>
</blockquote>
<h5>1:30 PM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/FT25"><strong>Microsoft Application Server Technologies: Present and Future</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Anil-Nori">Anil Nori</a> in Hall F</p>
<p>
<p><a href="http://microsoftpdc.com/Sessions/FT25/ICS"></a></p>
<p> Hear how Microsoft is evolving its application server technologies to address the challenges of building, deploying, and managing composite applications in Windows Server and Windows Azure. See how …</p>
</blockquote>
<h5>3:00 PM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/FT10"><strong>Evolving ADO.NET Entity Framework in Microsoft .NET Framework 4 and Beyond</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Shyam-Pather">Shyam Pather</a>, <a href="http://microsoftpdc.com/Speakers/Chris-Anderson">Chris Anderson</a> in Petree Hall D</p>
<p>Come see how the ADO.NET Entity Framework enables new capabilities to leverage multiple development approaches, for example the use of code-first, model-first, and database-first. Hear how, regardless …</p>
</blockquote>
<h5>4:30 PM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/BOF106"><strong>Behavior-Driven Development vs. Test-Driven Development: What’s What?</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Dennis-Doomen">Dennis Doomen</a> in 309 </p>
<p>Automated testing is a hot item these days and Microsoft is jumping on board with ASP.NET MVC and Visual Studio 2010. Test-Driven Development and Behavior-Driven Development both try to significantly …</p>
</blockquote>
<h3><strong>Wednesday (Second Conference Day)</strong></h3>
<h5>8:30 AM &#8211; 11:00 AM: Keynote</h5>
<h5>11:30 AM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/FT52"><strong>Microsoft Perspectives on the Future of Programming</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Butler-Lampson">Butler Lampson</a>, <a href="http://microsoftpdc.com/Speakers/Erik-Meijer">Erik Meijer</a>, <a href="http://microsoftpdc.com/Speakers/Don-Box">Don Box</a>, <a href="http://microsoftpdc.com/Speakers/Jeffrey-Snover">Jeffrey Snover</a>, <a href="http://microsoftpdc.com/Speakers/Herb-Sutter">Herb Sutter</a>, <a href="http://microsoftpdc.com/Speakers/Burton-Smith">Burton Smith</a> in Petree Hall C </p>
<p><a href="http://microsoftpdc.com/Sessions/FT52/ICS"></a></p>
<p>Come hear from several of the Microsoft senior technical leaders about the future of programming, programming languages, and tools.</p>
</blockquote>
<p>Or. Hm. Isn’t this the future vision? Anyways.</p>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/FT50"><strong>Building Data-Driven Applications Using Microsoft Project Code Name &#34;Quadrant&#34; and Microsoft Project Code Name &#34;M&#34;</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Chris-Sells">Chris Sells</a>, <a href="http://microsoftpdc.com/Speakers/Douglas-Purdy">Douglas Purdy</a> in 408B on Wednesday at 11:30 AM</p>
<p>
<p><a href="http://microsoftpdc.com/Sessions/FT50/ICS"></a></p>
<p> Come learn how to use &#34;Quadrant&#34; and &#34;M&#34;, part of the Microsoft data platform, to interact with Microsoft SQL Server databases in rich new ways, including dynamic views and multi-user editing. See how …</p>
</blockquote>
<h5>12:00 – 01:30 Germans @ PDC 09 – Lunch</h5>
<p><a href="http://www.facebook.com/event.php?eid=173746173193">Sign up here:</a></p>
<ul>
<li><a href="http://www.facebook.com/event.php?eid=173746173193">http://www.facebook.com/event.php?eid=173746173193</a> </li>
</ul>
<h5>1:00 PM ( I’ll be late )</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/FT34"><strong>Microsoft Project Code Name “M”: The Data and Modeling Language</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Don-Box">Don Box</a>, <a href="http://microsoftpdc.com/Speakers/Jeff-Pinkston">Jeff Pinkston</a> in 408A on Wednesday at 1:00 PM</p>
<p>Come review how to use “M” to build a DSL and author data schema, then hear how we&#8217;re going to make “M” more relevant to you, the Microsoft .NET developer. Explore the future of “M” where DSL, schema, …</p>
</blockquote>
<h5>2:00 PM </h5>
<ul>
<li><a href="http://microsoftpdc.com/Sessions/FT17">Spice Up Your Applications with Windows Workflow Foundation 4</a></li>
<li><a href="http://microsoftpdc.com/Sessions/BOF101">Should I Use Silverlight, MVC, and Web Forms for Web User Interface Development?</a></li>
<li><a href="http://microsoftpdc.com/Sessions/VTL05">A New Approach to Exploring Information on the Web</a></li>
<li><a href="http://microsoftpdc.com/Sessions/SVC28">The ‘M’-Based System.Identity Model for Accessing Directory Services</a>&#160;</li>
<li><strong>or just a long break.</strong></li>
</ul>
<p><strong>3:15 PM</strong></p>
<ul>
<li><a href="http://microsoftpdc.com/Sessions/P09-17">The State of Parallel Programming</a></li>
<li><a href="http://microsoftpdc.com/Sessions/VTL04">Rx: Reactive Extensions for .NET</a>, because Erik Meijer is always funny</li>
<li><a href="http://microsoftpdc.com/Sessions/P09-22">Windows Workflow Foundation 4 from the Inside Out</a></li>
<li><a href="http://microsoftpdc.com/Sessions/BOF109">Is Open Source Old News?</a></li>
<li><strong>or just a even longer break.</strong></li>
</ul>
<h5>4:30 PM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/BOF104"><strong>Exception Management – Handling and Reporting Exceptions Effectively</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Paul-Sheriff">Paul Sheriff</a> in 309 on Wednesday at 4:30 PM</p>
<p>There are many ways to handle exceptions in .NET. What do you do to ensure that exception information is not lost? How do you report exceptions to your end-user and to your system administrator? This …</p>
</blockquote>
<p>Or</p>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/FT23"><strong>Extending the Microsoft Visual Studio 2010 Code Editor to Visualize Runtime Intelligence</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Bill-Leach">Bill Leach</a>, <a href="http://microsoftpdc.com/Speakers/Gabriel-Torok">Gabriel Torok</a> in 408B on Wednesday at 4:30 PM</p>
<p>Come see how PreEmptive Solutions built an editor extension for Visual Studio 2010 that provides in-line visualizations of usage and stability data collected from applications in production via …</p>
</blockquote>
<h5>5:30 PM &#8211; 7:00 PM: Ask The Experts</h5>
<h5>7:00 PM &#8211; 9:00 PM: GeekFest</h5>
<h3><strong>Thursday (Third Conference Day)</strong></h3>
<h5>8:30 AM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/CL16"><strong>Optimizing for Performance with the Windows Performance Toolkit</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Michael-Milirud">Michael Milirud</a> in 502A </p>
<p>The Windows Performance Toolkit (WPT) is constantly used by the Windows team to build an optimized Windows OS. Come and see how the Windows Performance team used the WPT throughout the Windows 7 …</p>
</blockquote>
<h5>10:00 AM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/FT13"><strong>What’s New for Windows Communication Foundation 4</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Ed-Pinto">Ed Pinto</a> in Petree Hall D</p>
<p>Learn about the investments made in Windows Communication Foundation 4 that add new capabilities for service composition and reduced configuration and deployment complexity. Discover how improvements …</p>
</blockquote>
<h5>11:30 AM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/FT14"><strong>Workflow Services and “Dublin”</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Mark-Fussell">Mark Fussell</a> in Petree Hall D</p>
<p>Learn how to use Windows Workflow Foundation (WF) 4, Windows Communication Foundation (WCF) 4, and “Dublin” to build and manage scalable, reliable, and highly-available applications. Discover the …</p>
</blockquote>
<h5>12:45 PM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/BOF203"><strong>BOF @Lunch: Fear and Loathing in IT Security</strong></a></h4>
<p>in 309</p>
<p>Wherever we look we find security threats that are made out to be the end of the world as we know it. The problem is that there is a lot of wolf-crying going on in this space. Is this part of your job …</p>
</blockquote>
<h5>1:45 PM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/FT27"><strong>Application Server Extensibility with Microsoft Project Code Name “Dublin” and Microsoft .NET Framework 4</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Nicholas-Allen">Nicholas Allen</a> in Petree Hall D</p>
<p>.NET 4 and “Dublin” provide new application hosting, tracking, and persistence capabilities. Learn the benefits of different hosting options and how to choose the right option for your scenario. Learn …</p>
</blockquote>
<h5>3:00 PM</h5>
<blockquote><h4><a href="http://microsoftpdc.com/Sessions/P09-02"><strong>Automating &#34;Done Done&#34; in the Team Workflows with Microsoft Visual Studio Ultimate and Team Foundation Server 2010</strong></a></h4>
<p><a href="http://microsoftpdc.com/Speakers/Brian-Randell">Brian Randell</a>, <a href="http://microsoftpdc.com/Speakers/Jamie-Cool">Jamie Cool</a> in Petree Hall D</p>
<p>Learn how Visual Studio Team System (VSTS) 2010 automates the validation of code quality and enriches the interaction between developers and testers on a software team. Explore how the VSTS 2010 …</p>
</blockquote>
<p>That’s it! I’ll be there on Friday too, so if anybody want’s too hook up during the conference or on Sunday or Friday, just email me to <a href="mailto:lars@corneliussen.de">lars@corneliussen.de</a>!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[C# sem Mistério - Logout usando FormsAuthentication]]></title>
<link>http://juarezsilva.wordpress.com/2009/11/12/dotnet_formtauthentication_logout/</link>
<pubDate>Thu, 12 Nov 2009 20:05:36 +0000</pubDate>
<dc:creator>juarezsilva</dc:creator>
<guid>http://juarezsilva.wordpress.com/2009/11/12/dotnet_formtauthentication_logout/</guid>
<description><![CDATA[Olá, Quando o controle de acesso (login) de sua aplicação é baseada em FormsAuthentication, uma das ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Olá,</p>
<p>Quando o controle de acesso (login) de sua aplicação é baseada em FormsAuthentication, uma das necessidades mais comum é fazer o Logout ou Log Of (como cada um gosta de chamar). O Fato é que para não obrigarmos nossos usuários sairem da aplicação e chamá-la novamente apenas para trocar de usuário por exemplo, temos que adicionar o recurso de Log Of , ou seja, matar a sessão do <strong>FormsAuthentication </strong>atual e eliminarmos a instância do <strong>HttpContext</strong>.</p>
<p>Para isso bastar criarmos o código necessário e fazermos a devida chamada em qualquer objeto de ação, LinkButton, Button. etc:<br />
<code><br />
void FazerLogout()<br />
{</p>
<p style="padding-left:30px;"><span style="color:#33cccc;">HttpContext</span>.Current.Response.Cookies.Clear();</p>
<p style="padding-left:30px;"><span style="color:#33cccc;">HttpContext</span>.Current.Response.Clear();</p>
<p style="padding-left:30px;"><span style="color:#33cccc;">FormsAuthentication</span>.SignOut();<br />
<span style="color:#33cccc;">FormsAuthentication</span>.RedirectToLoginPage();</p>
<p>}<br />
</code></p>
<p>C# sem Mistério.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[My SVN Global Ignore Pattern for C# and Resharper]]></title>
<link>http://blogs.edwardwilde.com/2009/11/11/my-svn-global-ignore-pattern-for-c-and-resharper/</link>
<pubDate>Wed, 11 Nov 2009 16:16:01 +0000</pubDate>
<dc:creator>Edward Wilde</dc:creator>
<guid>http://blogs.edwardwilde.com/2009/11/11/my-svn-global-ignore-pattern-for-c-and-resharper/</guid>
<description><![CDATA[*\bin* *\obj* *.suo *.user *.bak **.ReSharper** **\_ReSharper.** StyleCop.Cache]]></description>
<content:encoded><![CDATA[<div class='snap_preview'></p>
<p><code>*\bin* *\obj* *.suo *.user *.bak **.ReSharper** **\_ReSharper.** StyleCop.Cache</code></p>
<pre><code></code></pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[C# sem mistério - IFormatProvider ]]></title>
<link>http://juarezsilva.wordpress.com/2009/11/11/iformatprovider-dotnet/</link>
<pubDate>Wed, 11 Nov 2009 14:16:04 +0000</pubDate>
<dc:creator>juarezsilva</dc:creator>
<guid>http://juarezsilva.wordpress.com/2009/11/11/iformatprovider-dotnet/</guid>
<description><![CDATA[IFormatProvider para Números [C#] Este exemplo mostra como converter float para string e string para]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h1>IFormatProvider para Números [C#]</h1>
<p>Este exemplo mostra como converter <strong>float para string</strong> e <strong>string para float</strong> usando <a href="http://msdn2.microsoft.com/en-us/library/system.iformatprovider.aspx">IFormatProvider</a>. Para utilizar o IFormatProvider você precisa utilizar primeiro a instância do  <a href="http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo_members.aspx">CultureInfo</a>.</p>
<h2>Obter a informação da CultureInfo não variável (Invariant)  ou específica</h2>
<p><strong>Invariant culture</strong> é um tipo especial de cultura que é culture-insensitive. Você poderia usar esta cultura quando você precisar de um <strong>resultado independe em relação a cultura padrão que estiver setada</strong>, exemplo: quando você formatar ou passar valores através de um arquivo XML. A invariant culture está internamente associada com o idioma Inglês. Para obter a instância da invariant <a href="http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo_members.aspx">CultureInfo</a> utilize a propriedade stática <a href="http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo.invariantculture.aspx">CultureInfo.In­variantCulture</a>.</p>
<p>Para uma instância <a href="http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo_members.aspx">CultureInfo</a> específica utilize o método estático <a href="http://msdn2.microsoft.com/en-us/library/yck8b540.aspx">CultureInfo.Get­CultureInfo</a> com o nome da Cultura específica. Exemplo: para o idioma Alemão: <code>CultureInfo.GetCultureInfo("de-DE")</code>.</p>
<h2>Formatando e convertendo número usando IFormatProvider</h2>
<p>Uma vez que você tem a instância da CultureInfo use a propriedade <a href="http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo.numberformat.aspx">CultureInfo.Num­berFormat</a> para obeter o <strong>IFormatProvider para números</strong> (o objeto  <a href="http://msdn2.microsoft.com/en-us/library/system.globalization.numberformatinfo.aspx">NumberFormatInfo</a>)</p>
<p>[C#]</p>
<pre>// formatando float para string
float num = 1.5f;
string str = num.<strong>ToString</strong>(CultureInfo.InvariantCulture.<strong>NumberFormat</strong>);        // "1.5"
string str = num.<strong>ToString</strong>(CultureInfo.GetCultureInfo("de-DE").<strong>NumberFormat</strong>); // "1,5"
</pre>
<p>[C#]</p>
<pre>// convertendo para float uma string
float num = float.<strong>Parse</strong>("1.5", CultureInfo.InvariantCulture.<strong>NumberFormat</strong>);
float num = float.<strong>Parse</strong>("1,5", CultureInfo.GetCultureInfo("de-DE").<strong>NumberFormat</strong>);
</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Uso del control WPF-ListView – Parte 2]]></title>
<link>http://zameb.wordpress.com/2009/11/10/uso-del-control-wpf-listview-%e2%80%93-parte-2/</link>
<pubDate>Tue, 10 Nov 2009 09:58:49 +0000</pubDate>
<dc:creator>zameb</dc:creator>
<guid>http://zameb.wordpress.com/2009/11/10/uso-del-control-wpf-listview-%e2%80%93-parte-2/</guid>
<description><![CDATA[En esta ocasión veremos una de las características más atractivas de este control: la inclusión de o]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>En esta ocasión veremos una de las características más atractivas de este control: la inclusión de otros controles dentro de las celdas.<br />
El resultado será el siguiente:</p>
<p><img class="aligncenter size-full wp-image-82" title="listview-pictures" src="http://zameb.wordpress.com/files/2009/11/listview-pictures.jpg" alt="listview-pictures" width="513" height="476" /></p>
<p>El control ListView mostrado cuenta con dos paneles Stackpanel que agruparán a los demás controles, una imagen leída del disco, controles Textblock para mostrar el nombre del libro y el autor y un control Button totalmente funcional.<br />
Para el presente ejemplo, se ha hecho uso del objeto DataTemplate, el cual sirve para especificar el patrón que se aplicará a cada fila.<br />
Analizar cuidadosamente el código XAML, y no se asusten, que inmediatamente detallo cada parte:</p>
<pre class="brush: xml;">
&#60;Page x:Class=&#34;ListViewSample5&#34;
      xmlns=&#34;http://schemas.microsoft.com/winfx/2006/xaml/presentation&#34;
      xmlns:x=&#34;http://schemas.microsoft.com/winfx/2006/xaml&#34;
      DataContext=&#34;{Binding RelativeSource={RelativeSource Self}}&#34;
      Title=&#34;ListView1&#34; Background=&#34;CadetBlue&#34; Name=&#34;Page1&#34;&#62;
    &#60;Grid Height=&#34;500&#34; Width=&#34;491&#34;&#62;
        &#60;ListView Name=&#34;lstBooks&#34; Margin=&#34;0,10,0,40&#34; ItemsSource=&#34;{Binding books}&#34;&#62;
            &#60;ListView.ItemTemplate&#62;
                &#60;DataTemplate&#62;
                    &#60;StackPanel Orientation=&#34;Horizontal&#34; Margin=&#34;5&#34;&#62;
                        &#60;Image Source=&#34;{Binding Imagen}&#34;/&#62;
                        &#60;StackPanel Margin=&#34;5&#34; Width=&#34;300&#34;&#62;
                            &#60;TextBlock FontWeight=&#34;Bold&#34; FontSize=&#34;20&#34;
                                       Text=&#34;{Binding Path=Titulo}&#34; TextWrapping=&#34;Wrap&#34;/&#62;
                            &#60;TextBlock FontWeight=&#34;Bold&#34; FontSize=&#34;12&#34; Text=&#34;{Binding Path=Autor}&#34;/&#62;
                            &#60;Button Name=&#34;cmdSeleccionar&#34; Width=&#34;100&#34;
                                    Click=&#34;doSeleccionar&#34; CommandParameter=&#34;{Binding Path=Calificacion}&#34;&#62;
                                Seleccionar
                            &#60;/Button&#62;
                        &#60;/StackPanel&#62;
                    &#60;/StackPanel&#62;
                &#60;/DataTemplate&#62;
            &#60;/ListView.ItemTemplate&#62;
        &#60;/ListView&#62;
    &#60;/Grid&#62;
&#60;/Page&#62;
</pre>
<p>Un DataTemplate ayuda a que un mismo patrón se aplique a todas las filas. Dentro del código XAML se está indicando que este DataTemplate se aplique a la propiedad ItemTemplate de nuestro ListView. La estructura es la siguiente:</p>
<pre class="brush: xml;">
            &#60;ListView.ItemTemplate&#62;
                &#60;DataTemplate&#62;
                &#60;/DataTemplate&#62;
            &#60;/ListView.ItemTemplate&#62;
</pre>
<p>Dentro del DataTemplate tenemos dos StackPanel anidados, uno es horizontal y el otro vertical (por defecto) y tienen la siguiente estructura:</p>
<pre class="brush: xml;">
            &#60;StackPanel Orientation=&#34;Horizontal&#34; Margin=&#34;5&#34;&#62;
                &#60;StackPanel Margin=&#34;5&#34; Width=&#34;300&#34;&#62;
                &#60;/StackPanel&#62;
            &#60;/StackPanel&#62;
</pre>
<p>Estos panels nos ayudan a apilar los controles que se encuentran en su interior y actúan como contenedores, ya que de lo contrario sólo podríamos colocar un control dentro del DataTemplate.</p>
<p>Obsérvense los Binding Paths de cada control agregado:</p>
<pre class="brush: xml;">
         &#60;TextBlock Text=&#34;{Binding Path=Titulo}&#34;/&#62;
         &#60;TextBlock Text=&#34;{Binding Path=Autor}&#34;/&#62;
         &#60;Image Source=&#34;{Binding Imagen}&#34;/&#62;
</pre>
<p>No me pregunten porqué en el caso del control Image la sintaxis para enlazar es distinta… son cosas de los creadores de este Framework. El caso es que nuestra clase personalizada debe tener las propiedades Título, Autor e Imagen.</p>
<p>El caso del control Button es un tanto diferente:</p>
<pre class="brush: xml;">
         &#60;Button Name=&#34;cmdSeleccionar&#34;
                 Click=&#34;doSeleccionar&#34;
                 CommandParameter=&#34;{Binding Path=Calificacion}&#34;&#62;
             Seleccionar
         &#60;/Button&#62;
</pre>
<p>El nombre del control es cmdSeleccionar (“notación Húngara”, aún la uso y creo que resulta muy útil dentro de esta sopa de nombres y etiquetas), el texto mostrado es Seleccionar, el método que se ejecutará cuando se presione el botón es doSeleccionar y lo demás, es algo que se me ha ocurrido: He utilizado la propiedad CommandParameter para enviar algún valor que nos indique cuál de todos los botones es el que hemos pulsado, al método doSeleccionar. Por la funcionalidad simple de este ejemplo, y dado que nuestra clase personalizada bookBO aún no tiene un identificador para cada registro, he decidido utilizar directamente el valor del campo Calificacion.</p>
<p>No creo que los programadores de Microsoft hayan pensado en darle ese uso a CommandParameter, por lo que aceptaré si alguien me recomienda alguna forma más eficiente de hacer lo mismo… aunque los ejemplos que he visto son realmente kilométricos cuando se trata de implementar características parecidas.</p>
<p>Como anotación adicional, este mismo método podría utilizarse para recuperar un dato más significativo, como el identificador único de un registro y, a partir de este, acceder al resto de la información.</p>
<p><strong>Código de respaldo</strong></p>
<p>Me hubiera gustado hacer todo lo anterior por medio de código, pero la tendencia dicta que debemos usar más XAML y menos código… a Microsoft le fascina llenar el mundo con Code Monkeys.</p>
<p>La buena noticia es que el código de respaldo es bastante breve. En esta ocasión he aprovechado para hacer uso de una clase derivada de ObservableCollection (colBooks) y asignarla a la propiedad lstBooks.ItemsSource. Y para que nuestro ListView pueda hacer uso de esta propiedad, debemos crearle acceso mediante métodos Get y Set:</p>
<pre class="brush: vb;">
    Private mbooks As New colBooks

    Public Property books() As colBooks
        Get
            books = mbooks
        End Get
        Set(ByVal value As colBooks)
            mbooks = value
        End Set
    End Property
</pre>
<p>Quizás la única novedad dentro del código de respaldo sea la manera en que recuperamos el valor de bookBO.Calificacion (el mismo que se envía de parámetro cada vez que pulsamos un botón dentro de la lista).<br />
Lo que hacemos es simplemente recuperar el valor de myButton.CommandParameter. La instancia de MyButton la recuperamos a partir del objeto Sender (que representa al objeto que ha invocado a este método):</p>
<pre class="brush: vb;">
        myButton = sender
        num = myButton.CommandParameter
</pre>
<p>El código de respaldo completo es el siguiente:</p>
<pre class="brush: vb;">
Partial Public Class ListViewSample5
    Private mbooks As New colBooks

    Public Property books() As colBooks
        Get
            books = mbooks
        End Get
        Set(ByVal value As colBooks)
            mbooks = value
        End Set
    End Property

    Private Sub Page1_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
        fillTable()
    End Sub

    Sub fillTable()
        Dim fileName1 As String = &#34;E:/eduardo/dotNetStudy/images/wpf-unleashed.jpg&#34;
        Dim fileName2 As String = &#34;E:/eduardo/dotNetStudy/images/pro-wpf-vb.jpg&#34;
        Dim fileName3 As String = &#34;E:/eduardo/dotNetStudy/images/ProgrammingWpf.jpg&#34;
        mbooks.addBook(&#34;Windows Presentation Foundation Unleashed&#34;, &#34;Adam Nathan&#34;, 5, fileName1)
        mbooks.addBook(&#34;Pro WPF with VB 2008&#34;, &#34;Matthew McDonald&#34;, 4, fileName2)
        mbooks.addBook(&#34;Programming WPF&#34;, &#34;Chris Sells&#34;, 2, fileName3)
    End Sub

    Sub doSeleccionar(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        Dim num As Integer
        Dim myButton As Button
        myButton = sender
        num = myButton.CommandParameter
        MessageBox.Show(&#34;Ha seleccionado un libro calificado con &#34; + Str(num) + &#34; puntos&#34;)
    End Sub

End Class
</pre>
<p><strong>Nota</strong>: Los archivos de imagen deben existir en el disco duro. Estas imágenes se pueden obtener fácilmente a través de Google Images, indicando el nombre del libro y/o el autor.</p>
<p><strong>ObservableCollection colBooks</strong></p>
<p>Para implementar esta colección he hecho uso de la herencia. La principal razón ha sido que quería implementar un método que me permitiera leer las imágenes desde el disco y asignarlas a la propiedad Imagen de la clase bookBO.</p>
<pre class="brush: vb;">
Imports System.Collections.ObjectModel

Public Class colBooks
    Inherits ObservableCollection(Of bookBO)

    Public Sub addBook(ByVal titulo As String, ByVal autor As String, _
                       ByVal calificacion As Integer, ByVal fileName As String)

        Dim book As New bookBO(titulo, autor)

        If System.IO.File.Exists(fileName) Then
            Dim img As New BitmapImage(New Uri(fileName, UriKind.Absolute))
            book.Imagen = img
        End If
        book.Calificacion = calificacion
        Me.Add(book)
    End Sub

End Class
</pre>
<p><strong>Clase personalizada bookBO</strong></p>
<p>Nuestra clase personalizada debe tener algunos cambios con respecto a la versión anterior. Es muy probable que en futuros artículos siga introduciendo modificaciones.<br />
Por ahora, este es su estado:</p>
<pre class="brush: vb;">
Public Class bookBO
    Private mTitulo As String
    Private mAutor As String
    Private mCalificacion As Integer
    Private mImagen As BitmapImage

    Public Sub New(ByVal Titulo As String, ByVal Autor As String)
        mTitulo = Titulo
        mAutor = Autor
        mCalificacion = 5
    End Sub

    Public Property Titulo() As String
        Get
            Titulo = mTitulo
        End Get
        Set(ByVal value As String)
            mTitulo = value
        End Set
    End Property

    Public Property Autor() As String
        Get
            Autor = mAutor
        End Get
        Set(ByVal value As String)
            mAutor = value
        End Set
    End Property

    Public Property Imagen() As BitmapImage
        Get
            Imagen = mImagen
        End Get
        Set(ByVal value As BitmapImage)
            mImagen = value
        End Set
    End Property

    Public Property Calificacion() As Integer
        Get
            Calificacion = mCalificacion
        End Get
        Set(ByVal value As Integer)
            mCalificacion = value
        End Set
    End Property

End Class
</pre>
<p><strong>Final</strong></p>
<p>Espero no haberlos mareado y que el presente artículo les sea de utilidad. En realidad hay ejemplos por toda la red, pero generalmente son mucho más largos y se centran  más en exquisiteces del XAML que en la funcionalidad deseada.</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Uso del control WPF-ListView – Parte 1]]></title>
<link>http://zameb.wordpress.com/2009/11/08/uso-del-control-wpf-listview-%e2%80%93-parte-1/</link>
<pubDate>Sun, 08 Nov 2009 16:09:12 +0000</pubDate>
<dc:creator>zameb</dc:creator>
<guid>http://zameb.wordpress.com/2009/11/08/uso-del-control-wpf-listview-%e2%80%93-parte-1/</guid>
<description><![CDATA[En este artículo veremos como se crea la siguiente lista: &nbsp; &nbsp; Hay que empezar por olvidarn]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>En este artículo veremos como se crea la siguiente lista:</p>
<p>&#160;</p>
<p><img src="http://zameb.wordpress.com/files/2009/11/listview-gridview1.jpg" alt="listview-gridview" title="listview-gridview" width="463" height="237" class="alignnone size-full wp-image-69" /></p>
<p>&#160;</p>
<p>Hay que empezar por olvidarnos de mucho de lo que conocíamos del ListView de las versiones previas de Visual Studio. En primer lugar, no existe una colección de SubItems asociada a cada Item, tampoco tenemos las clásicas vistas para mostrar íconos grandes, medianos y pequeños o la clásica vista “Report”, para mostrar varias columnas. Estas son las dos primeras grandes diferencias que inicialmente saltan a la vista y que tendremos que aprender a sortear.</p>
<p>&#160;</p>
<p><strong>Agregar elementos</strong></p>
<p>La forma más sencilla de agregar Items, si se mantiene tal como la conocíamos y es la siguiente:</p>
<p>&#160;</p>
<pre class="brush: vb;">
        lstBooks.Items.Add(&#34;Pro WPF with VB 2008&#34;)
</pre>
<p>&#160;</p>
<p>De tal manera que es posible añadir cadenas para verlas directamente dentro de la lista.</p>
<p>Un poco más complicado resulta si queremos agregar elementos que luego se puedan mostrar en un listado multicolumna. Y es aquí donde no hará más falta utilizar la colección SubItems, ya que en su lugar, podemos agregar cualquier objeto personalizado a nuestra colección de Items, tal como se ve en el siguiente ejemplo:</p>
<p>&#160;</p>
<pre class="brush: vb;">
lstBooks.Items.Add(New bookBO(&#34;Coquito&#34;, &#34;Ediciones Bruño&#34;, 5))
</pre>
<p>&#160;</p>
<p>Lo que es lo mismo que:</p>
<p>&#160;</p>
<pre class="brush: vb;">
dim book as New bookBO()
book.Nombre = &#34;Coquito&#34;
book.Editor = &#34;Ediciones Bruño&#34;
book.Calificacion = 5
lstBooks.Items.Add(book)
</pre>
<p>&#160;</p>
<p>En ambos casos se ha agregado un Nuevo elemento del tipo bookBO (una clase personalizada).</p>
<p>&#160;</p>
<p><strong>Visualizar la lista</strong></p>
<p>Si en nuestro ListView sólo hemos agregado Strings, la visualización será inmediata; pero si es que hemos agregado elementos de una clase personalizada, tenemos dos alternativas: dotar a nuestra clase personaliza de una función ToString, que devuelva la cadena que deseamos que se muestre para cada fila de la lista; o, establecer adecuadamente la propiedad View.</p>
<p>&#160;</p>
<p>Aunque la propiedad View aún se mantiene, su funcionalidad es distinta. Ahora esta propiedad se utiliza para indicar un objeto del tipo GridView (el cual es configurable) o alguna clase personalizada que se derive de ViewBase.</p>
<p>&#160;</p>
<p>Si vamos a utilizar la clase GridView, podemos configurarla por código como se muestra en el siguiente ejemplo:</p>
<p>&#160;</p>
<pre class="brush: vb;">
        'Crear un objeto del tipo GridView
        Dim myGridView As New GridView()
        'Crear las columnas a agregar
        Dim gvc1 As New GridViewColumn()
        Dim gvc2 As New GridViewColumn()

        'Establecer las propiedades de cada columna
        gvc1.Header = &#34;Libro&#34;
        gvc1.Width = 140
        gvc1.DisplayMemberBinding = New Binding(&#34;NombreLibro&#34;)

        gvc2.Header = &#34;Autor&#34;
        gvc2.Width = 240
        gvc2.DisplayMemberBinding = New Binding(&#34;NombreAutor&#34;)

        'Agregar las columnas al objeto GridView
        myGridView.Columns.Add(gvc1)
        myGridView.Columns.Add(gvc2)

        'Establecer la vista del ListView
        lstBooks.View = myGridView
</pre>
<p>&#160;</p>
<p>Es importante notar la propiedad DisplayMemberBinding de cada columna. En esta propiedad se indica cual de las propiedades de nuestra clase personalizada corresponde a esa columna. Nuestra clase personalizada podría tener decenas de propiedades, pero de esta manera indicamos que sólo se muestren unas cuantas.</p>
<p>&#160;</p>
<p>Como alternativa, el código de ejemplo anterior, puede ser implementado en nuestro formulario de diseño por medio del siguiente código XAML:</p>
<p>&#160;</p>
<pre class="brush: xml;">
        &#60;ListView Name=&#34;lstBooks&#34; Margin=&#34;0,10,0,0&#34;&#62;
            &#60;ListView.View&#62;
                &#60;GridView&#62;
                    &#60;GridViewColumn Width=&#34;140&#34; Header=&#34;Libro&#34; DisplayMemberBinding=&#34;{Binding NombreLibro}&#34;  /&#62;
                    &#60;GridViewColumn Width=&#34;240&#34; Header=&#34;Autor&#34; DisplayMemberBinding=&#34;{Binding NombreAutor}&#34; /&#62;
                &#60;/GridView&#62;
            &#60;/ListView.View&#62;
        &#60;/ListView&#62;
</pre>
<p>&#160;</p>
<p><strong>Enlazar el ListView con una colección</strong></p>
<p>Es posible que la información ya la tengamos disponible en una colección. En tal caso no es necesario recorrerla para leer cada item y agregarlo al ListView, sino que podemos establecer la propiedad ItemsSource:</p>
<p>&#160;</p>
<pre class="brush: vb;">
	lstBooks.ItemsSource = MyCollection
</pre>
<p>&#160;</p>
<p>Esta posibilidad es especialmente efectiva si el objeto MyCollection es de la clase ObservableCollection, que para el ejemplo anterior se declara de la siguiente manera:</p>
<p>&#160;</p>
<pre class="brush: vb;">
	Dim MyCollection As ObservableCollection(Of bookBO)
</pre>
<p>&#160;</p>
<p>La ventaja de utilizar una clase ObservableCollection es que cualquier cambio que se realiza en la colección es automáticamente notificado y actualizado en la lista. De no ser así, nosotros mismos tendríamos que actualizar la lista cada vez que se modifique alguno de sus elementos (tal como lo hice en algún ejemplo del patrón MVC).</p>
<p>&#160;</p>
<p><strong>Ejemplo</strong></p>
<p>A continuación un ejemplo que resume algo de lo revisado en este artículo.</p>
<p>&#160;</p>
<p>XAML:</p>
<pre class="brush: xml;">
&#60;Page x:Class=&#34;ListViewSample3&#34;
    xmlns=&#34;http://schemas.microsoft.com/winfx/2006/xaml/presentation&#34;
    xmlns:x=&#34;http://schemas.microsoft.com/winfx/2006/xaml&#34;
    Title=&#34;ListView1&#34; Background=&#34;CadetBlue&#34; Name=&#34;Page1&#34;&#62;
    &#60;Grid Height=&#34;268&#34; Width=&#34;591&#34;&#62;
        &#60;ListView Margin=&#34;73,50,0,0&#34; Name=&#34;lstBooks&#34; HorizontalAlignment=&#34;Left&#34; Width=&#34;429&#34; Height=&#34;196&#34; VerticalAlignment=&#34;Top&#34; /&#62;
    &#60;/Grid&#62;
&#60;/Page&#62;
</pre>
<p>&#160;</p>
<p>Código fuente del formulario:</p>
<pre class="brush: vb;">
Partial Public Class ListViewSample3

    Private Sub Page1_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
        createTable()
        fillTable()
    End Sub

    Sub createTable()
        Dim myGridView As New GridView()
        Dim gvc1 As New GridViewColumn()
        Dim gvc2 As New GridViewColumn()

        gvc1.Header = &#34;Título&#34;
        myGridView.Columns.Add(gvc1)
        gvc1.Width = 200
        gvc1.DisplayMemberBinding = New Binding(&#34;Titulo&#34;)

        gvc2.Header = &#34;Autor&#34;
        myGridView.Columns.Add(gvc2)
        gvc2.Width = 200
        gvc2.DisplayMemberBinding = New Binding(&#34;Autor&#34;)

        lstBooks.View = myGridView
    End Sub

    Sub fillTable()
        lstBooks.Items.Clear()

        lstBooks.Items.Add(New bookBO(&#34;Windows Presentation Foundation Unleashed&#34;, &#34;Adam N&#34;))
        lstBooks.Items.Add(New bookBO(&#34;Pro WPF with VB 2008&#34;, &#34;Matthew McD&#34;))
        lstBooks.Items.Add(New bookBO(&#34;3D Programming-for-windows by WPF&#34;, &#34;Charles P&#34;))
    End Sub

End Class
</pre>
<p>&#160;</p>
<p>Clase BookBO:</p>
<pre class="brush: vb;">
Public Class bookBO

Public Class bookBO
    Private mTitulo As String
    Private mAutor As String

    Public Sub New(ByVal Titulo As String, ByVal Autor As String)
        mTitulo = Titulo
        mAutor = Autor
    End Sub

    Public Property Titulo() As String
        Get
            Titulo = mTitulo
        End Get
        Set(ByVal value As String)
            mTitulo = value
        End Set
    End Property

    Public Property Autor() As String
        Get
            Autor = mAutor
        End Get
        Set(ByVal value As String)
            mAutor = value
        End Set
    End Property

    'Esta funcion no es necesaria, solo para mostrar su implementacion
    Public Overrides Function ToString() As String
        ToString = mTitulo + &#34; - &#34; + mAutor
    End Function
End Class
</pre>
<p>&#160;</p>
<p>&#160;</p>
<p>Resultado<br />
<img src="http://zameb.wordpress.com/files/2009/11/listview-gridview1.jpg" alt="listview-gridview" title="listview-gridview" width="463" height="237" class="alignnone size-full wp-image-69" /></p>
<p>&#160;</p>
<p>En el próximo artículo revisaremos como agregar controles (gráficos incluidos) dentro de un ListView y mantenerlos enlazados con nuestra clase personalizada.</p>
<p>&#160;</p>
<p>Hasta pronto!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Best tool for UI testing]]></title>
<link>http://ajayqc.wordpress.com/2009/11/07/best-tool-for-ui-testing/</link>
<pubDate>Sat, 07 Nov 2009 05:18:30 +0000</pubDate>
<dc:creator>ajayqc</dc:creator>
<guid>http://ajayqc.wordpress.com/2009/11/07/best-tool-for-ui-testing/</guid>
<description><![CDATA[For Best Speed for a website&#8230;or check heavy site&#8230;&#8230;Click on this link and download]]></description>
<content:encoded><![CDATA[For Best Speed for a website&#8230;or check heavy site&#8230;&#8230;Click on this link and download]]></content:encoded>
</item>

</channel>
</rss>
