Ideas for instant messenger

  • (3 Pages)
  • +
  • 1
  • 2
  • 3

32 Replies - 4698 Views - Last Post: 23 June 2012 - 12:36 PM Rate Topic: -----

#1 realMudassir  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 14
  • Joined: 09-June 12

Ideas for instant messenger

Posted 09 June 2012 - 12:08 PM

I've been learning C# for about a month for my upcoming mini project and I've decided to make instant messenger. I would like to have a intermediate server and database to record details. It would be highly appreciated if I could help starting it. I'm completely new to C# and .net so I need basic ideas for construction like which class to use.
Is This A Good Question/Topic? 0
  • +

Replies To: Ideas for instant messenger

#2 macosxnerd101  Icon User is offline

  • Self-Trained Economist
  • member icon




Reputation: 10437
  • View blog
  • Posts: 38,651
  • Joined: 27-December 08

Re: Ideas for instant messenger

Posted 09 June 2012 - 12:11 PM

We have a couple Chat tutorials. However, if you don't know where to start on this project, trust me when I say you're biting off more than you want to chew. This isn't a project you should be tackling with only one month programming experience.

http://www.dreaminco...cation-in-c%23/
http://www.dreaminco...-chat-advanced/
Was This Post Helpful? 1
  • +
  • -

#3 realMudassir  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 14
  • Joined: 09-June 12

Re: Ideas for instant messenger

Posted 09 June 2012 - 12:16 PM

View Postmacosxnerd101, on 09 June 2012 - 12:11 PM, said:

We have a couple Chat tutorials. However, if you don't know where to start on this project, trust me when I say you're biting off more than you want to chew. This isn't a project you should be tackling with only one month programming experience.

http://www.dreaminco...cation-in-c%23/
http://www.dreaminco...-chat-advanced/

Thanks for the quick reply. Could you suggest me any topic that I could use for mini project? I've 5 months time and i know intermediate programming but just beginning c#.
Was This Post Helpful? 0
  • +
  • -

#4 RexGrammer  Icon User is offline

  • Coding Dynamo
  • member icon

Reputation: 181
  • View blog
  • Posts: 777
  • Joined: 27-October 11

Re: Ideas for instant messenger

Posted 09 June 2012 - 12:22 PM

Wait, why would you need a database to hold details? What in IM needs to be kept?

Are you developing both the server and the client?

Check out those tutorials that macosxnerd101 mentioned, clone the programs from there build upon that.

You have an intermediate experience in programming. OOP? Then it won't be hard for you to plan the application. When it comes to coding you can always use the internet as a resource. There is EVERYTHING and I do mean everything, you just have to look.

This post has been edited by RexGrammer: 09 June 2012 - 12:23 PM

Was This Post Helpful? 0
  • +
  • -

#5 macosxnerd101  Icon User is offline

  • Self-Trained Economist
  • member icon




Reputation: 10437
  • View blog
  • Posts: 38,651
  • Joined: 27-December 08

Re: Ideas for instant messenger

Posted 09 June 2012 - 12:22 PM

Check out Martyr2's Project List.
Was This Post Helpful? 0
  • +
  • -

#6 Skydiver  Icon User is offline

  • Code herder
  • member icon

Reputation: 3529
  • View blog
  • Posts: 10,931
  • Joined: 05-May 12

Re: Ideas for instant messenger

Posted 09 June 2012 - 12:23 PM

Instead of chat, consider yet another Twitter. This it's a common demo that various technologies and/or languages do in about 30 minutes in front of a live audience, but is ripe for enhancements which never end. There are also interesting scaling problems if want to tackle those as part of your project.

Sent from my T-Mobile G2 using Tapatalk 2
Was This Post Helpful? 0
  • +
  • -

#7 tlhIn`toq  Icon User is offline

  • Please show what you have already tried when asking a question.
  • member icon

Reputation: 5464
  • View blog
  • Posts: 11,731
  • Joined: 02-June 10

Re: Ideas for instant messenger

Posted 09 June 2012 - 12:24 PM

None of us live in your head. We have no idea what your class is, what your interests are, or what your skill level is. But we can make an educated guess as to what it isn't based on your time in the course.

You say you have an intermediate programming skill level, but only starting C#. Care to elaborate on that? Like what other coding languages you do know? Or what you consider 'intermediate'?

You should read the tutorials that macosxnerd101 linked to you. If they are gibberish, then that topic will probably be too advanced for you. But you said you had 5 months. So if you don't rely strictly on class (because all courses are 10 times slower than you can teach yourself from a good book) you might be able to do it.

If you spent those 5 months applying yourself to lots of other resources then you have a real chance at doing the chat app. The fact that you are thinking about it now and not 5 days before deadline already puts you one up on most of the students we see.

Quote

Where do I start?


You start by learning a coding language FIRST.
Learn to plan before you type.
THEN you start designing software with a purpose.



Resources, references and suggestions for new programmers. - Updated Mar 2012
Spoiler

Was This Post Helpful? 2
  • +
  • -

#8 realMudassir  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 14
  • Joined: 09-June 12

Re: Ideas for instant messenger

Posted 09 June 2012 - 12:29 PM

View PostRexGrammer, on 09 June 2012 - 12:22 PM, said:

Wait, why would you need a database to hold details? What in IM needs to be kept?

Are you developing both the server and the client?

Check out those tutorials that macosxnerd101 mentioned, clone the programs from there build upon that.

You have an intermediate experience in programming. OOP? Then it won't be hard for you to plan the application. When it comes to coding you can always use the internet as a resource. There is EVERYTHING and I do mean everything, you just have to look.


Yes. Both client and server. More like msn or google talk close but no way related to them.

Database is to hold registered users and record conversation.

And Internet has everything but many things too. ! There are so many ideas but they don't fit my criteria and it is very hard to choose the best or the appropriate one. :dozingoff:
Was This Post Helpful? 0
  • +
  • -

#9 realMudassir  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 14
  • Joined: 09-June 12

Re: Ideas for instant messenger

Posted 09 June 2012 - 11:57 PM

View PosttlhIn`toq, on 09 June 2012 - 12:24 PM, said:

None of us live in your head. We have no idea what your class is, what your interests are, or what your skill level is. But we can make an educated guess as to what it isn't based on your time in the course.

You say you have an intermediate programming skill level, but only starting C#. Care to elaborate on that? Like what other coding languages you do know? Or what you consider 'intermediate'?


Well I'll be entering the final year of MCA and I'm in my summer vacation right now.

By intermediate programming skill I mean,

Know all the syntax of C/C++ and Java to solve common problems.
And by syntax, I mean core programming concepts. No collections or libraries(I prefer to code myself instead to use collections).

Know threading concept but never used realtime. Book examples don't help either.

Know ADO.Net but prefer coding myself instead of giving Visual Studio to do the connections.

Know basics for WPF.

Did a mini project on Inventory System using VB.Net 2 years ago using Access for back end.



On seeing these, could you tell me what level I'm in actually because I would like to know myself better.


The reason for selecting the Chat application project is,

1. networking(connecting remotely)
2. database(to maintain users and conversations)
3. multithreading(chat with multiple users)
4. WPF(UI design)
5. multiplatform(desktop, web and mobile versions, if time permits)

All these may look greedy and overwhelming but I got time and I can do it if I could get right guidance.

The requirements are

1. server and database run to monitor incoming connections and route message for intended users. Server is given a permanent address using a DNS service.
2. users must be registered(not LAN messenger). eg., by email for verification and username. They can connect from anywhere(not restricted to 1 location or IP).
3. online status.(could be a row in table). Server may ping the connected user at constant intervals to see if the user is still connected.
4. Log conversations.


With these requirements, I would like to know what are the classes and namespaces I can use to achieve these.
I promise that I will be restricting myself for asking the code. I just need pointers.

Any help is deeply appreciated. :chinese:
Was This Post Helpful? 0
  • +
  • -

#10 Julyuary  Icon User is offline

  • D.I.C Head

Reputation: 38
  • View blog
  • Posts: 106
  • Joined: 20-December 11

Re: Ideas for instant messenger

Posted 10 June 2012 - 12:10 AM

View PostrealMudassir, on 09 June 2012 - 07:29 PM, said:

View PostRexGrammer, on 09 June 2012 - 12:22 PM, said:

Wait, why would you need a database to hold details? What in IM needs to be kept?

Are you developing both the server and the client?

Check out those tutorials that macosxnerd101 mentioned, clone the programs from there build upon that.

You have an intermediate experience in programming. OOP? Then it won't be hard for you to plan the application. When it comes to coding you can always use the internet as a resource. There is EVERYTHING and I do mean everything, you just have to look.


Yes. Both client and server. More like msn or google talk close but no way related to them.

Database is to hold registered users and record conversation.

And Internet has everything but many things too. ! There are so many ideas but they don't fit my criteria and it is very hard to choose the best or the appropriate one. :dozingoff:

Quick note. Msn stores the chat logs in xmls on the users machine. That isn't what you meant by recording information by any chance, is it?
Was This Post Helpful? 0
  • +
  • -

#11 realMudassir  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 14
  • Joined: 09-June 12

Re: Ideas for instant messenger

Posted 10 June 2012 - 12:28 AM

View PostJulyuary, on 10 June 2012 - 12:10 AM, said:

Quick note. Msn stores the chat logs in xmls on the users machine. That isn't what you meant by recording information by any chance, is it?


Yes but google talk and others store information on a server. and also it's not appropriate to store username and passwords in xml.

And by the way, a client can be connected to the server by a static IP. How can the server communicate back to the client since it's not static or at 1 location.
Was This Post Helpful? 0
  • +
  • -

#12 RexGrammer  Icon User is offline

  • Coding Dynamo
  • member icon

Reputation: 181
  • View blog
  • Posts: 777
  • Joined: 27-October 11

Re: Ideas for instant messenger

Posted 10 June 2012 - 01:02 AM

He didn't say it stores usernames and passwords in xml files just the chat logs.

You say that you know the C/C++ syntax but then refer to it as programming concepts...

Quote

I prefer to code myself instead to use collections


Uhmmmm.... This really doesn't make sense.

Quote

Know ADO.Net but prefer coding myself instead of giving Visual Studio to do the connections.


Uhmmmm..... VS doesn't "do" (by the way define what "do" means to you) the connections on it's own.

And if you coded in C/C++, C# or VB, then you've surely used one big library. It's the .NET Framework. You just can't code everything from scratch, that's why the .NET Framework is there, to help you.

So I guess your level is pretty basic. You should really think about a project more suited for you.

So go to: Martyr2'S Mega Project Ideas List! and find something easier to do.

Also I recommend you first read a C# book from cover to cover. I recommend Microsoft Visual C# 2010 Step by Step, but that's just my preference, if you want to take a look at what others recommend check out: Recommended C# Books

We also have a great Learning C# Series | New To C#? Start Here!, although it's still in production, it's enough to get you on your feet.

This post has been edited by RexGrammer: 10 June 2012 - 01:13 AM

Was This Post Helpful? 1
  • +
  • -

#13 realMudassir  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 14
  • Joined: 09-June 12

Re: Ideas for instant messenger

Posted 10 June 2012 - 02:33 AM

Quote

You say that you know the C/C++ syntax but then refer to it as programming concepts...

Quote

I prefer to code myself instead to use collections


Uhmmmm.... This really doesn't make sense.


As far as I'v learned, C/C++ syntax includes core programming constructs like keywords, control structures and such which is (as far as I know) part of original specification. STL(collections as in C#) was introduced much later. My college syllabus still follows the former and we still use 'Turbo C' (which everyone knows its pretty much outdated yet still a very powerful tool).

So I refer 'original spec of the language' as syntax and STL as collections. And I also know about the old library using the header file, if you're wondering.

Quote

Quote

Know ADO.Net but prefer coding myself instead of giving Visual Studio to do the connections.


Uhmmmm..... VS doesn't "do" (by the way define what "do" means to you) the connections on it's own.


By 'do', I mean using the 'data source' provided in VS which builds the connection string by itself(on instructions, though), connection object and handles data(like binding data to datagrid). I prefer creating a new connecting object myself and bind to datagrid manually. This way I know what all the operations I could do with and I'll be certain with it. I know that we can make VS to do for us and customize but still VS hides some code(which can be retrieved) and makes me uncomfortable.

Quote

And if you coded in C/C++, C# or VB, then you've surely used one big library. It's the .NET Framework. You just can't code everything from scratch, that's why the .NET Framework is there, to help you.


Obviously, I know what the .Net library is and (almost) every program needs at least 1 library to be used. My point is to say that .Net library is enormous. I need help in identifying the needed classes that I must concentrate in order to start my project.
Was This Post Helpful? 0
  • +
  • -

#14 RexGrammer  Icon User is offline

  • Coding Dynamo
  • member icon

Reputation: 181
  • View blog
  • Posts: 777
  • Joined: 27-October 11

Re: Ideas for instant messenger

Posted 10 June 2012 - 09:14 AM

By collections people usually mean classes like: Array, List<T>, etc. etc.

You probably mean library. As in: Library (computing). Quote from the article:

Quote

In computer science, a library is a collection of resources used to develop software.[disputed – discuss] These may include pre-written code and subroutines, classes, values or type specifications.


In the world of .NET, most often you won't need anything else than what's provided in the .NET Base Class Library (Ok, there are some specific needs that have to be suited by third-party libraries, but it's something highly specialized which really isn't used every day).

You complain about VS doing to much for you? There is nothing stopping you to code the connection object and everything else related to the database CRUD functionality of your program by hand (as in write the code yourself in the text editor).

You don't know where to start? Why don't you take a look at those tutorials? You should be able to figure out what classes are used in those tutorials.

Here's some namespaces you might want to check out:

1. System.Net (Specifically System.Net.Sockets)
2. System.Threading

Of course you will have to use other namespaces, but these contain classes that are used to make application that utilize the Network.

This post has been edited by RexGrammer: 10 June 2012 - 09:24 AM

Was This Post Helpful? 2
  • +
  • -

#15 realMudassir  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 14
  • Joined: 09-June 12

Re: Ideas for instant messenger

Posted 10 June 2012 - 10:57 AM

Ah yes. This is something close to I was looking for.

I know this might be amateurish but I need help in this.

How do dynamically create an object(and invoke method) and start its own thread?

For eg.,
server listens for connections.
When a client wants to connect, the server must handle it on a new thread and continue listening for connections.
Was This Post Helpful? 0
  • +
  • -

  • (3 Pages)
  • +
  • 1
  • 2
  • 3