Sunday, May 29, 2011

New Features in C# 4.0 Framework

List of new features in C# 4.0 framework.
  1. Dynamic programming
  2. Named and optional parameters
  3. Covariance and Contravariance

Thursday, May 26, 2011

How to do FTP in C#

FtpWebResponse ftpResponse = null;

FtpWebRequest ftpRequest = null;

ftpRequest = (FtpWebRequest)WebRequest.Create("ftp://" + m_Server + "/" + Path.GetFileName(sFileNameWithLocation) + "");
ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;
ftpRequest.Proxy = null;
ftpRequest.UseBinary = true;
ftpRequest.Credentials = new NetworkCredential(sUserName, sPassword);

FileInfo fi = new FileInfo(sFileNameWithLocation);
byte[] fileContents = new byte[fi.Length];

using (FileStream fs = fi.OpenRead())
{
    fs.Read(fileContents, 0, Convert.ToInt32(fi.Length));
}

using (Stream writer = ftpRequest.GetRequestStream())
{
    writer.Write(fileContents, 0, fileContents.Length);
}

ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
Response.Write(ftpResponse.StatusDescription);

Write Byte array to a file

public void WriteByteArrayToFile(byte[] bArray, string fileName)
{
    FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite);
    BinaryWriter bw = new BinaryWriter(fs);
    bw.Write(bArray);
    bw.Close();
}



Wednesday, May 25, 2011

Convert/Migrate Web Service to WCF service

Step 1: Create an empty Web Application














Step 2:  Add new Web Service in this project














Now we can see the dummy code that is generated by Web Service default Template.
















Here we have a WebService class inherited from System.Web.Services.WebService. Class also have  a web method “HelloWorld” that returns “Hello World” string.

Step 3: Add reference of System.ServiceModel in your project.















Step 4: Add “ServiceContract” and “OperationContract” on class and method, and add
using System.ServiceModel; on the top of the code




















Step 5: Add WCFService in same project.
















Step 6: Remove WCF Service interface “IWCFService” and Class “WCFService.svc.cs” files.



















Step 7: Right click on .svc and .asmx file and Go to view Markup.

.svc markup view:

< %@ ServiceHost Language="C#" Debug="true" Service="ConvertWebServiceToWCFService.WCFService" CodeBehind="WCFService.svc.cs" %>

.asmx markup view:

< %@ WebService Language="C#" CodeBehind="WebService.asmx.cs" Class="ConvertWebServiceToWCFService.WebService" %>



Step 8: Change .svc and .asmx markup as below


.svc markup view:

< %@ ServiceHost Language="C#" Service="ConvertWebServiceToWCFService.WCFService" %>

.asmx markup view:

< %@ ServiceHost Language="C#" Service="ConvertWebServiceToWCFService.WebService" %>



Step 9: Changes in Web.Config file. Open config file.

Add below settings under tag.



< compilation debug="true" targetFramework="4.0">

< buildProviders>

< remove extension=".asmx"/>

< add extension=".asmx" type="System.ServiceModel.Activation.ServiceBuildProvider, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

< /buildProviders>

< /compilation>

< httpHandlers>

< remove path=".asmx" verb="*" />

< add path="*.asmx" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false" />

< /httpHandlers>




Add this also in web.config file of service.

< system.serviceModel>


< services>

< service name="MyService" behaviorConfiguration="MyServiceTypeBehaviors">

< endpoint contract="ConvertWebServiceToWCFService.WebService" binding="mexHttpBinding" address="mex" />

< /service>

< /services>

< behaviors>

< serviceBehaviors>

< behavior name="MyServiceTypeBehaviors">

< serviceMetadata httpGetEnabled="true" />

< serviceDebug includeExceptionDetailInFaults="true" />

< /behavior>

< behavior name="">

< serviceMetadata httpGetEnabled="true" />

< serviceDebug includeExceptionDetailInFaults="false" />

< /behavior>

< /serviceBehaviors>

< /behaviors>

< serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

< /system.serviceModel>





Step 10: Finally you can see Conversion is working fine:





Tuesday, May 24, 2011

Design Pattern Interview Questions

1. What are design patterns and why there is a need of design patters?
2. How many types of Design patters are there?
3. What is Singlton pattern?
4. Why we use Singlton pattern?
5. What is Abstract Factory pattern?
6. What is Factory Pattern?
7. Difference between Factory and Abstract Factory pattern?
8. Can we use Static variable in place of Singlton pattern?