
 May 28, 2012 09:25 by 
 Scott
 Scott 
In an effort to start blogging more about the "helpful" items that I have encountered over the years this is one of my first "Quick Tips" related to improving the life of the developer. We all have had those times where we are tracking down a complex problem within an application and all along the way we have to spend endless time mousing over individual classes to find out what their values are when most commonly we just want to know about one or two key values. Well in this post, I'll show you a neat trick using the "DebuggerDisplay" attribute to help make this process easier.
 The Code 
 To get us started I'm going to just dive into the code, consider the following super condensed code sample. 
     1:  static void Main(string[] args)
    2:  {
    3:      var badSampleInstance = new BadSample() 
    4:                              { Name = "John Smith", 
    5:                                  Address = "123 Main Street", 
    6:                                  Phone = "515-555-1212" };
    7:      var goodSampleInstance = new GoodSample() 
    8:                              { Name = "John Smith", 
    9:                                  Address = "123 Main Street", 
   10:                                  Phone = "515-555-1212" };
   11:      Console.ReadLine();
   12:  }
   13:   
   14:  public class BadSample
   15:  {
   16:      public string Name { get; set; }
   17:      public string Address { get; set; }
   18:      public string Phone { get; set; }
   19:  }
   20:   
   21:  [DebuggerDisplay("{Name} ({Phone})")]
   22:  public class GoodSample
   23:  {
   24:      public string Name { get; set; }
   25:      public string Address { get; set; }
   26:      public string Phone { get; set; }
   27:  }
 From here we can see a very simple set of code with two classes. If you notice I have added an attribute "DebuggerDisplay" to the top of the GoodSample class. The value used for the display contains a few substitutions "{Name}" and "{Phone}". What this does is update all of the display areas in the debugger, that would typically show the type name for the value which isn't helpful to show the formatted value we supplied. An example of this can be seen here. 
 
 
 So as you can see this can help to get a good glance into your custom objects, and reduce a lot of the "mouseover" action that is common while debugging. 
 I hope that this content was helpful.
 
    
    
 May 21, 2012 08:20 by 
 Scott
 Scott 
This article Illustrate How to read mails from ASP.Net. Using POP commands you can access you email inbox from ASP.Net. Basic POP commands are USER, PASS, LIST, QUIT, RETR.
 More details POP command help you can check these links
//Creating Object for POPHelper
 //Parameters are Gmail,Yahoo or MSN Pop Server,
 //Port number
 //bool isSSL
 POPHelper objPopHelper = new POPHelper("pop.gmail.com", 995, true);
 objPopHelper.UserName = "Your Gmail Username eg:[email protected]";
 objPopHelper.Password = "GmailPassword";
 objPopHelper.Connect();
 GridView1.DataSource = p.DataSource;
 GridView1.DataBind();
 
  
 
 
 Code Of Connect Method 
public void Connect()
         {
             string response = string.Empty;
             ArrayList arrList = new ArrayList();
             try
             {
                 //Connect to Host server 
                 #region Connect Host
                 TcpClient _tcpClient = new TcpClient();
                 try
                 {
                     _tcpClient.Connect(_hostname, _port);
                     //if login is ssl
                     if (_isSsl)
                     {
                         _stream = new SslStream(_tcpClient.GetStream());
                         ((SslStream)_stream).AuthenticateAsClient(_hostname);
                     }
                     else
                     {
                         _stream = _tcpClient.GetStream();
                     }
                 }
                 catch (Exception ex)
                 {
                     throw new POPCommandException("Connection to " + _hostname + " Port: " + _port + " failed. Error Details"+ex.Message);
                 }
                 #endregion
                 // Send POP Commands (USER, PASS, LIST) to Host
                 #region POP Commands
                 _streamWriter = new StreamWriter(_stream, Encoding.ASCII);
                 _streamReader = new StreamReader(_stream, Encoding.ASCII);
 
                 //POP command for send Username
                 _streamWriter.WriteLine(POPCommands.USER.ToString()+" "+ UserName);
                 //send to server
                 _streamWriter.Flush();
 
                 //POP command for send  Password 
                 _streamWriter.WriteLine(POPCommands.PASS.ToString() + " " + Password);
                 //send to server
                 _streamWriter.Flush();
 
                 //POP command for List mails
                 _streamWriter.WriteLine(POPCommands.LIST.ToString());
                 //send to server
                 _streamWriter.Flush();
                 #endregion
                 //Read Response Stream from Host
                 #region Read Response Srteam
                 //Read Response Stream
                 response = null;
                 string resText = string.Empty;
                 while ((resText = _streamReader.ReadLine()) != null)
                 {
                     if (resText == ".")
                     { break; }
                     if (resText.IndexOf("-ERR") != -1)
                     { break; }
                     response += resText;
                     arrList.Add(resText);
                 }
                 #endregion
                 //Binding Properties
                 #region Bindings
                 //Bind Message count
                 BindMailCount(arrList);
                 //mails returns List
                 _mail = ReadMail(messagecount);
                 //get  mails Subjects returns List
                 _mailsub = FilterContent(_mail,FiltersOption.Subject);
                 _from = FilterContent(_mail, FiltersOption.From);
                 _to = FilterContent(_mail, FiltersOption.To);
                 SetDataSource(_mailsub, _from);
                 #endregion
             }
             catch (Exception ex)
             {
                 errors.Add(ex.Message);
             }
         } 
Class Diagram of POPHelper 
 
 
Reading Mails Using POP Command RETR from ASP.NET
 
 private List ReadMail(int Count) 
         {
             List lst = new List();
             try
             {
                 for (int i = 1; i <= Count; i++)
                 {
                     _streamWriter.WriteLine(POPCommands.RETR+" " + i.ToString());
                     _streamWriter.Flush();
                     string resText = string.Empty;
                     while ((resText = _streamReader.ReadLine()) != null)
                     {
                         if (resText == ".")
                         { break; }
                         if (resText.IndexOf("-ERR") != -1)
                         { break; }
                         lst.Add(resText);
                     }
                 }                
 
             }
             catch(Exception ex)
             {
                 errors.Add(ex.Message);
             }
             return lst;
         }
 
 Enumerates for Filer message subject and From Address and ToAddress
 
 
Method for Filer Content
 
 private List FilterContent(List Mails,FiltersOption filter) 
         {
             List filterItems = new List();
             try
             {
                 for (int i = 0; i < Mails.Count; i++)
                 {
                     if (Mails[i].StartsWith(filter.ToString() + ":"))
                     {
                         string sub = Mails[i].Replace(filter.ToString() + ":", "");
                         filterItems.Add(sub);
                     }
                 }
             }
             catch (Exception ex)
             {
                 errors.Add(ex.Message);
             }
             return filterItems;
         }
 
 Creating DataSource for GridView
 
 private DataTable SetDataSource(Listsubject,Listsender)
         {
             int messageCount = messagecount;
             dataTab = new DataTable();
             DataRow drow;
             DataColumn Sender = new DataColumn("Sender", typeof(string));
             DataColumn Subject = new DataColumn("Subject", typeof(string));
             dataTab.Columns.Add(Sender);
             dataTab.Columns.Add(Subject);
             for (int i = 0; i < subject.Count; i++)
             {
                 drow = dataTab.NewRow();
                 dataTab.Rows.Add(drow);
                 dataTab.Rows[i][Sender] = sender[i].ToString();
                 dataTab.Rows[i][Subject] = subject[i].ToString();
             }
             return dataTab;
         }
 
    
    
    
    
 
    
    
 May 4, 2012 08:40 by 
 Scott
 Scott
In this article I will explain how to read or write connection strings in web.config file using asp.net.
 I have one web application that contains many pages and each page contains relationship with database connection to get data from database and display it on page because of that I need to write database connections for each page to interact with database. Now the server name or credentials of database server has changed in that situation it will create problem because we need to modify the database connections of each page using asp.net.  
 To avoid this situation it would be better if we place connection string in one place and reuse it in every page wherever we need to connect to SQL Server. Web.config is the best place to store the connection strings in asp.net and it would be safer place to store the connection strings instead of writing connection strings in every web page. 
 Now we want to add connection string in web.config file for that first create new website using visual studio after that create new website open web.config file and search for “connectionStrings” and add new item in connectionStrings section 
 After open  web.config file in application and add sample db connection in connectionStrings section like this 
< connectionStrings>
< add name="yourconnectinstringName" connectionString="Data Source= DatabaseServerName; Integrated Security=true;Initial Catalog= YourDatabaseName; uid=YourUserName; Password=yourpassword; "
 providerName="System.Data.SqlClient"/>
</ connectionStrings >
 Example of declaring connectionStrings in web.config file like this 
< connectionStrings>
< add name="dbconnection" connectionString="Data Source=Scott;Integrated Security=true;Initial Catalog=MySampleDB" providerName="System.Data.SqlClient"/>
</ connectionStrings >
 Here to access my database server there is no need of username and password for that reason I didn’t enter username and password in connection string.  
 After add dbconnection in connectionString we need to write the some code in our codebehind file to get connection string from web.config file for that add following namespace in codebehind file and write the following code 
using  System.Configuration;
 
 This namespace is used to get configuration section details from web.config file.
 
 After add namespaces write the following code in code behind
 
 C# code
 
 using System;
 using System.Data.SqlClient;
 using System.Configuration;
 public partial class _Default : System.Web.UI.Page 
 {
 protected void Page_Load(object sender, EventArgs e)
 { 
 //Get connection string from web.config file 
 string strcon = ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString;
 //create new sqlconnection and connection to database by using connection string from web.config file 
 SqlConnection con = new SqlConnection(strcon);
 con.Open();
 }
 }
 
 VB.NET
 
 Imports System.Data.SqlClient
 Imports System.Configuration
 Partial Public Class _Default
 Inherits System.Web.UI.Page
 Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
 'Get connection string from web.config file 
 Dim strcon As String =
 ConfigurationManager.ConnectionStrings("dbconnection").ConnectionString
 'create new sqlconnection and connection to database by using connection string from web.config file 
 Dim con As New SqlConnection(strcon)
 con.Open()
 End Sub
 End Class
 
 OK, finish.