Client Server app using winsock

  • Thread starter Thread starter Nigel V Thomas
  • Start date Start date
N

Nigel V Thomas

I have been commissioned to produce a client server application.

Budget constraints prevent me from using a commercially available server so
I will have to write my own which I have done successfully using VB6 and
Winsock in the past.

Although the app will run on an internal network, my customer also wants it
to run over the internet (not browser based - rich client is the term I
think)

I have the following questions if anyone can help please:

1. Does the .NET framework support secure winsock communications?
2. If not can anyone suggest, from experience, a suitable component?
3. Is using Winsock the correct approach to this application

Cheers

Nigel
 
Nigel V Thomas said:
I have been commissioned to produce a client server application.

Budget constraints prevent me from using a commercially available server
so
I will have to write my own which I have done successfully using VB6 and
Winsock in the past.

Although the app will run on an internal network, my customer also wants
it
to run over the internet (not browser based - rich client is the term I
think)

I have the following questions if anyone can help please:

1. Does the .NET framework support secure winsock communications?
2. If not can anyone suggest, from experience, a suitable component?
3. Is using Winsock the correct approach to this application


Well, WCF service sitting on the backend that can be Web Server based or a
non Web server based WCF solution, with Windows Web browser or Windows
desktop based application as the WCF clients.

There are several forms of secure communications between a WCF service and
it's clients.

http://en.wikipedia.org/wiki/Windows_Communication_Foundation

I contracted in a company where WCF was hosted on a Web server, the best
approach, that is using Windows desktop WCF clients, around the US.

I say WCF as that is what MS is pushing and supporting as the primary means
of communications between programs, based on a recent .Net seminar on WCF I
attended recently.

Make no mistake about it, WCF is faboulous technology in a SOA solution,
which I have used recently in .Net application developement.

I sugget you get a good book on WCF. It's not that hard to use.

All I can say is VB6 is not VB.NET and the key to .NET is do you understand
OOP and how to use it, which is what you're going to have to use in your SOA
solution.

You should think MVP with your Windows Desktop SOA solution.

===========================================================================

What is Object-oriented-programming?

(OOP) is a programming paradigm that uses "objects" and their interactions
to design applications and computer programs.

The key concepts of OOP are the following:

Class

Object

Instance

Method

Message passing

Inheritance

Abstraction

Encapsulation

Polymorphism

Decoupling



http://en.wikipedia.org/wiki/Object-oriented_programming

No matter what development platform Java, .Net or others OPP is OPP.

http://math.hws.edu/eck/cs124/downloads/OOP2_from_Univ_KwaZulu-Natal.pdf

http://www.blackwasp.co.uk/ObjectOrientedConcepts.aspx





What are design patterns?

Design patterns are recurring solutions to software design problems you find
again and again in real-world application development. Patterns are about
design and interaction of objects, as well as providing a communication
platform concerning elegant, reusable solutions to commonly encountered
programming challenges.

http://www.developer.com/design/article.php/1502691

http://www.dofactory.com/Patterns/Patterns.aspx

http://computerprogramming.suite101.com/article.cfm/patterns_and_antipatterns

http://msdn.microsoft.com/en-us/library/ms954638.aspx

http://www.designpatternsfor.net/Presentations.aspx?tid=3&cid=4



What is Domain Driven Design?

(DDD) is an approach to the design of software, based on the two premises
[1] that complex domain designs should be based on a model, and that, for
most software projects, the primary focus should be on the domain and domain
logic (as opposed to being the particular technology used to implement the
system).

http://en.wikipedia.org/wiki/Domain-driven_design



What is Test Driven Design?

(TDD) is a software development technique that uses short development
iterations based on pre-written test cases that define desired improvements
or new functions. Each iteration produces code necessary to pass that
iteration's tests. Finally, the programmer or team refactors the code to
accommodate changes. A key TDD concept is that preparing tests before coding
facilitates rapid feedback changes. Note that test-driven development is a
software design method, not merely a method of testing.

http://en.wikipedia.org/wiki/Test-driven_development

http://weblogs.asp.net/rhurlbut/archive/2007/07/16/another-tdd-and-ddd-success-story.aspx



I really can't find a link on this information. So a link to a book might be
helpful.

http://whitepapers.zdnet.com/abstract.aspx?docid=260168



What is Unified Modeling Language?

(UML) is a standardized general-purpose modeling language in the field of
software engineering. UML includes a set of graphical notation techniques to
create abstract models of specific systems.



http://en.wikipedia.org/wiki/Unified_Modeling_Language

http://www.smartdraw.com/tutorials/software/uml/tutorial_01.htm



What is Model -View- Controller?

(MVC) is an architectural pattern used in software engineering. Successful
use of the pattern isolates business logic from user interface
considerations, resulting in an application where it is easier to modify
either the visual appearance of the application or the underlying business
rules without affecting the other. In MVC, the model represents the
information (the data) of the application; the view corresponds to elements
of the user interface such as text, checkbox items, and so forth; and the
controller manages the communication of data and the business rules used to
manipulate the data to and from the model.

http://en.wikipedia.org/wiki/Model-view-controller

http://msdn.microsoft.com/en-us/library/ms978748.aspx

http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx

http://cristobal.baray.com/indiana/projects/mvc.html

http://www.devx.com/dotnet/Article/29992/0/page/1



What is Model -View- Presenter?

MVP is a software pattern considered a derivative of the
Model-view-controller.

http://en.wikipedia.org/wiki/Model_View_Presenter

http://msdn.microsoft.com/en-us/magazine/cc188690.aspx

http://mrrask.files.wordpress.com/2008/01/model-view-presenter.pdf

http://www.mvcsharp.org/Reworking_ASPNET_MVC_Store/Default.aspx

http://www.codeproject.com/KB/aspne...lect=2822806#Reusing the presenter in windows

http://codebetter.com/blogs/jeremy....net-and-the-model-view-presenter-pattern.aspx



MODEL-VIEW-PRESENTER

http://www.polymorphicpodcast.com/

click 'Shows'

click 'Design Patterns Bootcamp: Model View * Patterns*

view parts 1-5



What is Object Relational Mapping?

(ORM) is a programming technique for converting data between incompatible
type systems in relational databases and object-oriented programming
languages. This creates, in effect, a "virtual object database," which can
be used from within the programming language. There are both free and
commercial packages available that perform object-relational mapping,
although some programmers opt to create their own ORM tools.

http://en.wikipedia.org/wiki/O-RM

http://www.objectmatter.com/vbsf/docs/maptool/ormapping.html



What is Language Integrated Query?

LINQ is a Microsoft .NET Framework component that adds native data querying
capabilities to .NET languages.

Microsoft LINQ defines a set of query operators that can be used to query,
project and filter data in arrays, enumerable classes, XML, relational
database, and third party data sources. While it allows any data source to
be queried, it requires that the data be encapsulated as objects. So, if the
data source does not natively store data as objects, the data must be mapped
to the object domain. Queries written using the query operators are executed
either by the LINQ query processing engine or, via an extension mechanism,
handed over to LINQ providers which either implement a separate query
processing engine or translate to a different format to be executed on a
separate data store (such as on a database server as SQL queries). The
results of a query are returned as a collection of in-memory objects that
can be enumerated using a standard iterator function such as C#'s foreach.

Many of the concepts that LINQ has introduced were originally tested in
Microsoft's C? research project. LINQ was released as a part of .NET
Framework 3.5 on November 19, 2007.

http://en.wikipedia.org/wiki/Language_Integrated_Query



What is Linq-to-SQL?

LINQ to SQL, a component of Visual Studio Code Name "Orcas", provides a
run-time infrastructure for managing relational data as objects without
losing the ability to query. It does this by translating language-integrated
queries into SQL for execution by the database, and then translating the
tabular results back into objects you define. Your application is then free
to manipulate the objects while LINQ to SQL stays in the background tracking
your changes automatically.

http://msdn.microsoft.com/en-us/library/bb425822.aspx



What is ADO.NET Entities framework?

ADO.NET Entity Framework is an object-relational mapping (ORM) framework for
the .NET Framework. This framework is Microsoft's first ORM offering for the
..NET Framework. While Microsoft provided objects to manage the
Object-relational impedance mismatch (such as a DataSet).

ADO.NET Entity Framework is included with .NET Framework 3.5 Service Pack 1
and Visual Studio 2008 Service Pack 1, released on 11 Aug 2008. It also
includes the capability of executing LINQ against ADO.NET Entity Framework
entities

http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework

http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx

http://www.springerlink.com/content/kg3216v2014r00u0/

http://blogs.msdn.com/adonet/archive/2008/03/27/ado-net-entity-framework-performance-comparison.aspx







__________ Information from ESET NOD32 Antivirus, version of virus signature database 4188 (20090625) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
 
1. Does the .NET framework support secure winsock communications?
Yes.

2. If not can anyone suggest, from experience, a suitable component?
Java.


3. Is using Winsock the correct approach to this application

Nope, but it works just fine.
Microsoft is *great* about maintaining backwards compatibility; that's why
the apps are so friggin huge.
 
Hi Nigel

Probably I have very close to you situation:

1) I have application- driver like software (for providing cash payment).
This I have written in vb6.
external communication had been done in three ways:
- DCOM technology
- through Serial Port
- TCP/IP connection with the use of winsock
(they are optional, depending on the settings)
2) Bitween layer written in .NET VB working in to directions (To
apllication-driver from one side and to exterhal communication (for instance
to Point-of-Sale system, which can be any system supporting tcp/ip
communication: Windows, Lunix, mainframes and so on)).

This communication is based mainly on TCPClient and TCPListener.
Of course it is not so obvious solution but works perfect. I would advise
you to move in this direction.
Regards, Jamal
 
Back
Top