Application Architecture Question - Web Apps vs Smart Clients vs Windows Applications vs ???

  • Thread starter Thread starter Jeff
  • Start date Start date
J

Jeff

Please note this is NOT a rant or complaint! And yes, I'm over-simplifying,
but intentionally. Here goes...

With ASP.NET Web applications I like that I can access data from anywhere
without installing anything on the client (but I hate HTML and markup in
general and it's limitations, the request/response model, state management,
etc).

AFAIK, Smart apps or smart clients or whatever we call them are simply
variations of Web applications that somehow decide which markup to send to
some dumb client (perhaps to a full browser or to a handheld device)... but
we're still dealing with the request-response model (AJAX notwithstanding).

Then there are Windows applications - ahhhh yes! The good ole message pump
and the full capabilities of the local machine, .NET Framework etc all at
our immediate disposal. No more request-response model to slow things down
and no HTML or other markup getting in the way of our UI design efforts.

WHAT I want is the best of all application types. What application type or
types should I create in order to have the best of each of these application
types [in one "system"]. For the sake of this question, suppose the
application to be written is a basic CRM app (client contact manager). It
needs to provide the users with the ability to insert/update/delete
companies, contacts, appointments and notes, generate reports, and send
e-mail. It must be accessible via the Web and because we all know that
Windows XP is rather prevalent, we can assume that a large percentage of
users will have the .NET Framework.

So, the scenario is that we need an application that is available on the
public Internet and accessible to people with uplevel Web Browsers (and
nothing else installed locally), but for those with Windows XP and the .NET
Framework we can give them a much better and faster user experience than is
available via a browser.

Do I need to create two application? An ASP.NET Web application and a
separate Windows application that talks to my Web site via a Web service or
..NET Remoting? What would be the most efficient way to satisfy the
requirements while giving users the best possible experience given their
local machine's capabilities?

Thanks for your thoughtful reponses!

-Jeff
 
The best solution would be to implement a web service to hold all the
application logic, and thin clients including an ASP.NET web site and a
Smart Client (winform app) consuming this service. I'm afraid your
understanding of "Smart apps" is incorrect. They are fully featured windows
applications (no "markup sending", nor request-response model). Starting
from .NET 2.0, we have "ClickOnce" technology, which would be best choice
for your Smart Client part of solution.
check out
http://msdn.microsoft.com/smartclient/understanding/windowsforms/2.0/features/clickonce.aspx

Jeff said:
Please note this is NOT a rant or complaint! And yes, I'm
over-simplifying, but intentionally. Here goes...

With ASP.NET Web applications I like that I can access data from anywhere
without installing anything on the client (but I hate HTML and markup in
general and it's limitations, the request/response model, state
management, etc).

AFAIK, Smart apps or smart clients or whatever we call them are simply
variations of Web applications that somehow decide which markup to send to
some dumb client (perhaps to a full browser or to a handheld device)...
but we're still dealing with the request-response model (AJAX
notwithstanding).

Then there are Windows applications - ahhhh yes! The good ole message pump
and the full capabilities of the local machine, .NET Framework etc all at
our immediate disposal. No more request-response model to slow things down
and no HTML or other markup getting in the way of our UI design efforts.

WHAT I want is the best of all application types. What application type or
types should I create in order to have the best of each of these
application types [in one "system"]. For the sake of this question,
suppose the application to be written is a basic CRM app (client contact
manager). It needs to provide the users with the ability to
insert/update/delete companies, contacts, appointments and notes, generate
reports, and send e-mail. It must be accessible via the Web and because we
all know that Windows XP is rather prevalent, we can assume that a large
percentage of users will have the .NET Framework.

So, the scenario is that we need an application that is available on the
public Internet and accessible to people with uplevel Web Browsers (and
nothing else installed locally), but for those with Windows XP and the
.NET Framework we can give them a much better and faster user experience
than is available via a browser.

Do I need to create two application? An ASP.NET Web application and a
separate Windows application that talks to my Web site via a Web service
or .NET Remoting? What would be the most efficient way to satisfy the
requirements while giving users the best possible experience given their
local machine's capabilities?

Thanks for your thoughtful reponses!

-Jeff
 
Thank you for your helpful response and link - especially the correction on
my apparent misunderstanding of smart apps.



Lebesgue said:
The best solution would be to implement a web service to hold all the
application logic, and thin clients including an ASP.NET web site and a
Smart Client (winform app) consuming this service. I'm afraid your
understanding of "Smart apps" is incorrect. They are fully featured
windows applications (no "markup sending", nor request-response model).
Starting from .NET 2.0, we have "ClickOnce" technology, which would be
best choice for your Smart Client part of solution.
check out
http://msdn.microsoft.com/smartclient/understanding/windowsforms/2.0/features/clickonce.aspx

Jeff said:
Please note this is NOT a rant or complaint! And yes, I'm
over-simplifying, but intentionally. Here goes...

With ASP.NET Web applications I like that I can access data from anywhere
without installing anything on the client (but I hate HTML and markup in
general and it's limitations, the request/response model, state
management, etc).

AFAIK, Smart apps or smart clients or whatever we call them are simply
variations of Web applications that somehow decide which markup to send
to some dumb client (perhaps to a full browser or to a handheld
device)... but we're still dealing with the request-response model (AJAX
notwithstanding).

Then there are Windows applications - ahhhh yes! The good ole message
pump and the full capabilities of the local machine, .NET Framework etc
all at our immediate disposal. No more request-response model to slow
things down and no HTML or other markup getting in the way of our UI
design efforts.

WHAT I want is the best of all application types. What application type
or types should I create in order to have the best of each of these
application types [in one "system"]. For the sake of this question,
suppose the application to be written is a basic CRM app (client contact
manager). It needs to provide the users with the ability to
insert/update/delete companies, contacts, appointments and notes,
generate reports, and send e-mail. It must be accessible via the Web and
because we all know that Windows XP is rather prevalent, we can assume
that a large percentage of users will have the .NET Framework.

So, the scenario is that we need an application that is available on the
public Internet and accessible to people with uplevel Web Browsers (and
nothing else installed locally), but for those with Windows XP and the
.NET Framework we can give them a much better and faster user experience
than is available via a browser.

Do I need to create two application? An ASP.NET Web application and a
separate Windows application that talks to my Web site via a Web service
or .NET Remoting? What would be the most efficient way to satisfy the
requirements while giving users the best possible experience given their
local machine's capabilities?

Thanks for your thoughtful reponses!

-Jeff
 
Back
Top