Dec01-09 May 1, 2002
Microsoft .NET P2P
Team Members
Ben Miller
Kevin Moore
Steven Rysavy
Faculty Advisor
Prof. Manimaran Govindarasu
Client
Dan Fay
Presentation Outline
• Definition of Terms
• Problem Statement
• Design Objectives
• End-Product Description
• Assumptions and Limitations
• Project Risks and Concerns
• Technical Approach
• Milestones
• Future Work
• Human and Financial Budgets
• Lessons Learned
• Conclusion
Definition of Terms
• .NET Framework
– Environment for developing software
• C# (pronounced “C Sharp”)
– Object oriented language derived from C and
C++
• Peer-to-Peer Application
– Internet applications with no central servers
Problem Statement
• Develop a peer-to-peer application using
.NET framework
• Communicate using server-less
environment
• Exchange multiple types of data
• Write in the C# language
• Document source code for developers
Examples
ICQ MSN AOL
Design Objective
Functionality
• Rich Text Messaging
– Rich Text has colors, fonts, and sizes
• File Transfer
• Special Support for File Types
• Local Message History
• IP Caching
Design Objective
Constraints
• Functionality provided by .NET Framework
• System Resources
• Connection Resources
• No central server
Design Objectives
Users
• .NET environment enthusiasts
• People seeking a rich text messaging
application
End-Product Description
Features
• Documented Code • Rich text (multiple
• Connect using fonts, colors, sizes,
TCP/IP etc)
• One-to-Many • Support for special
Connections types (emoticons)
• Pure P2P • Message History
• Functional GUI (stored locally)
• IP Caching
End-Product Description
Ownership
• Code will be sent to our sponsor at
Microsoft
• Full project will be submitted to .NET
community sites:
– www.gotdotnet.com
– www.devhood.com
– www.c-sharpcorner.com
Assumptions
• The user is running an operating system
that supports the .NET Framework
• Functionality of .NET will not vary among
platforms
• The users are on an TCP/IP network
• Users will know the IP address of other
clients.
Limitations
• Assuring unique identity and finding users
might not be possible within a purely peer-
to-peer environment.
• Firewalls may limit or deny communication
between clients.
• Functionality will be limited by the capacity
and availability of the network.
Project Risks and Concerns
• The .NET Platform may change between
beta and final release
• .NET/C# are new technologies
– Group members have to learn new a new
language, framework, and tools
– There is less information about .NET/C# than
other, more established technologies
Technical Approach
• MSN Integration
• .NET P2P Framework
• Roll our own
MSN Integration
Benefits Drawbacks
• Wide scale • Not at all P2P
deployment • Implementation would
• Well defined, simple be trivial
interface
.NET P2P Framework
Benefits Drawbacks
• Designed with/for the • Implementation would
.NET Framework be trivial
• Purely P2P in nature • Only available in beta
• Provides functionality release
we couldn’t create in • Not stable
a semester
Roll our Own
Benefits Drawbacks
• Fine control over • Implementation is not
features trivial
• Demonstrates lower • Limits our features
level programming • No firewall support
• Pride of building it
ourselves
Milestones
• M1 - Basic Functionality
• M2 - Additional Chat Features
• M3 – Special Features
M1 – Basic Functionality
• Connect to multiple clients
• Send simple text messages
• Functional Interface
• Projected Date: 4/27/01
• Revised Date: 2/28/02
M2 – Additional Chat Features
• Sending of rich text messages
• Send files (push model) – Local end
initiates the transfer
• Sharing files (pull model) – Remote end
initiates the transfer
• Projected Date: 3/30/02
• Finished Date: 3/30/02
M3 – Special Features
• Interoperability with other messaging
applications and services
• Friendly names
• Emoticons
• Firewall connectivity
• Projected Date: 4/30/02
• Finished: 4/30/02
Milestone Progress
• M1 - 2/28/02
• M2 - 3/30/02
• M3 - 4/30/02
Future Work
Long term
– Additional features
• Voice chat
• Whiteboard
• File Transfer
Human Budget
165
161 Actual
160 159
Esitmated
155
150 147
146
145 144
143
140
135
130
Kevin Steve Ben
Financial Budget
Item Estimated Actual Cost
Cost
Poster $50 $50
.NET SDK Provided Provided
Visual Studio Provided Provided
.NET
Documentation Provided Provided
Lessons Learned
• Testing should be ongoing part of
development process
• Research features thoroughly before
committing
• Managing development
Conclusion
• Goal
– Build a peer-to-peer application that leverages
the .NET framework
• Solution
– Designed a peer-to-peer chat client using C#
which is well documented and easy to expand