Introduction:
In this article,i am going to explain how to create a elegant chat application using silverlight and Wcf.
Main:
Before Starting silverlight we need atleast the requirements,
1.We need some set of grouped users,
2.we need to post user message to common forum,once the user entered the message,
3.we need table collections for storing and retrieving messages,
Silverlight is a client side plugin,so we need either wcf or web services for fetching messages from
database.
Sample wcf contracts for silverlight chat application,
[ServiceContract]
public interface SlChatWcfService
{
[OperationContract]
int UserExist(string username, string password);
[OperationContract]
List<MessageContract> GetMessages(int messageID, int roomID, DateTime timeUserJoined);
[OperationContract]
void InsertMessage(int roomID, int userID, int? toUserID, string messageText, string color);
[OperationContract]
List<UserContract> GetUsers(int roomID, int userID);
[OperationContract]
void LogOutUser(int userID, int roomID, string username);
}
[DataContract]
public class MessageContract
{
[DataMember]
public int MessageID;
[DataMember]
public string Text;
[DataMember]
public string UserName;
[DataMember]
public string Color;
}
[DataContract]
public class UserContract
{
[DataMember]
public int UserID;
[DataMember]
public string UserName;
}
public class LinqChatService : SlChatWcfService
{
void SlChatWcfService.InsertMessage(int roomID, int userID, int? toUserID, string messageText, string color)
{
Message message = new Message();
message.RoomID = roomID;
message.UserID = userID;
message.ToUserID = toUserID;
message.Text = messageText;
message.Color = color;
message.TimeStamp = DateTime.Now;
LinqChatDataContext db = new LinqChatDataContext();
db.Messages.InsertOnSubmit(message);
try
{
db.SubmitChanges();
}
catch (Exception)
{
throw;
}
}
[ServiceContract] public interface SlChatWcfService { [OperationContract] int UserExist(string username, string password); [OperationContract] List<MessageContract> GetMessages(int messageID, int roomID, DateTime timeUserJoined); [OperationContract] void InsertMessage(int roomID, int userID, int? toUserID, string messageText, string color); [OperationContract] List<UserContract> GetUsers(int roomID, int userID); [OperationContract] void LogOutUser(int userID, int roomID, string username); } [DataContract] public class MessageContract { [DataMember] public int MessageID; [DataMember] public string Text; [DataMember] public string UserName; [DataMember] public string Color; } [DataContract] public class UserContract { [DataMember] public int UserID; [DataMember] public string UserName; } public class LinqChatService : SlChatWcfService { void SlChatWcfService.InsertMessage(int roomID, int userID, int? toUserID, string messageText, string color) { Message message = new Message(); message.RoomID = roomID; message.UserID = userID; message.ToUserID = toUserID; message.Text = messageText; message.Color = color; message.TimeStamp = DateTime.Now; LinqChatDataContext db = new LinqChatDataContext(); db.Messages.InsertOnSubmit(message); try { db.SubmitChanges(); } catch (Exception) { throw; } } |
Visit Main Article,
http://aspdotnetcodesonline.com/asp-net/creating-developing-wcf-silverlight-chat-application-xaml-c-wpf/
Conclusion:
Hope this helps,
Happy Coding