Distributed applications

  • Thread starter Thread starter James
  • Start date Start date
J

James

I am not sure if it is even the correct term for it, but I am soon to
start writing an application for all our users on our network.

Previously at where I used to work we used some sort of sql scripting
language to accomplish something like this:
We had an application framework and database hosted on a server - then
an application on each users PC. When this was run it loaded it from
the server.
This was very useful because it was constantly changing to iron out
bugs, add new functionality etc.
In essence it worked like a website, the 'page' on the server was
updated and each user saw an instant reflection of that.

I want to accomplish the same thing, if possible, with .NET

Key ideas are it needs to be able to be updated constantly, even while
users are running it - then they can somehow just refresh there
appliaction somehow (or restart it) to see the new changes.

I would much rather to appliation based rather than web based, due to
that being where most of my experience is. Plus I would think it would
be quicker when running.

Is this feasible and where would I start looking?
 
I am not sure if it is even the correct term for it, but I am soon to
start writing an application for all our users on our network.

Previously at where I used to work we used some sort of sql scripting
language to accomplish something like this:
We had an application framework and database hosted on a server - then
an application on each users PC. When this was run it loaded it from
the server.
This was very useful because it was constantly changing to iron out
bugs, add new functionality etc.
In essence it worked like a website, the 'page' on the server was
updated and each user saw an instant reflection of that.

I want to accomplish the same thing, if possible, with .NET

Key ideas are it needs to be able to be updated constantly, even while
users are running it - then they can somehow just refresh there
appliaction somehow (or restart it) to see the new changes.

I would much rather to appliation based rather than web based, due to
that being where most of my experience is. Plus I would think it would
be quicker when running.

Is this feasible and where would I start looking?

Have a look at ClickOnce application deployment:

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

It does feature Web start (i.e., users just go to an intranet web site
and click on a link to start the application), and automatic updates
as well.

You might also want to consider WPF browser applications (XBAP):

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

Those are full-fledged rich WPF applications, with the entire .NET
framework accessible, that run within the browser (IE only though).
Note that they still use WPF for UI, not HTML, so you're not
restricted by HTML limitations. In this case, there's no need to auto-
update, since the application is never really installed on the client
PC - it is still downloaded, but then immediately opened in the
browser window. Still, by tweaking cache settings on the server and
the clients, you can come up with some pretty flexible schemes that
avoid re-downloading the app every time, but still allow to push the
new version to the clients immediately.
 
This is largely a follow up of what Pavel stated, but I want to make sure
you understand the significance of the choices.

First, let's separate deployment strategy from UI technology. XPF and
Windows Forms are UI technologies. WPF (XBAP) forces code and UI separation
better, but you should do this regardless of technology.

The rest of this deals more with deployment strategy and the tools
available.

Updating applications is largely accomplished by creating a bootstrap loader
to load the program. The bootstrap loader then contacts the server and sees
if there are new bits, generally through a web service, to see if it has the
latest or not. If it does not, it downloads the latest before attempting to
start them.

Above is the simplest architecture, from my experience, although you can
work through this a bit differently, depending on your own needs. If you
want to update after application start, you should use proper logical
tiering and move nearly all of your code out of the UI executable.

ClickOnce contains bits to help you keep the application up to date. Much of
this is done through configuration files, as detailed in the following:
http://msdn.microsoft.com/en-us/library/s22azw1e.aspx

I am not sure on XBAP, as the push is towards Silverlight. Both are browser
based, although XBAP does deliver more of a package. Do not think you have
to go this direction if you want to have an updatable WPF application, as
you can use WPF with ClickOnce.

Another option is the Updater Application Block, which released its last
version in October of 2007. It is now a community project, owned by the
SmartClientContrib group.
http://www.codeplex.com/scsfcontrib

The important takeaway is do not mix UI with deployment, as the two are not
married.

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

Subscribe to my blog
http://gregorybeamer.spaces.live.com/lists/feed.rss

or just read it:
http://gregorybeamer.spaces.live.com/

********************************************
| Think outside the box! |
********************************************
 
This is largely a follow up of what Pavel stated, but I want to make sure
you understand the significance of the choices.

First, let's separate deployment strategy from UI technology. XPF and
Windows Forms are UI technologies. WPF (XBAP) forces code and UI separation
better, but you should do this regardless of technology.

The rest of this deals more with deployment strategy and the tools
available.

Updating applications is largely accomplished by creating a bootstrap loader
to load the program. The bootstrap loader then contacts the server and sees
if there are new bits, generally through a web service, to see if it has the
latest or not. If it does not, it downloads the latest before attempting to
start them.

Above is the simplest architecture, from my experience, although you can
work through this a bit differently, depending on your own needs. If you
want to update after application start, you should use proper logical
tiering and move nearly all of your code out of the UI executable.

ClickOnce contains bits to help you keep the application up to date. Muchof
this is done through configuration files, as detailed in the following:http://msdn.microsoft.com/en-us/library/s22azw1e.aspx

I am not sure on XBAP, as the push is towards Silverlight. Both are browser
based, although XBAP does deliver more of a package. Do not think you have
to go this direction if you want to have an updatable WPF application, as
you can use WPF with ClickOnce.

Another option is the Updater Application Block, which released its last
version in October of 2007. It is now a community project, owned by the
SmartClientContrib group.http://www.codeplex.com/scsfcontrib

The important takeaway is do not mix UI with deployment, as the two are not
married.

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

Subscribe to my bloghttp://gregorybeamer.spaces.live.com/lists/feed.rss

or just read it:http://gregorybeamer.spaces.live.com/

********************************************
| Think outside the box!                               |

Thanks for the info, I'll start reading around some of these choices.
I think the key point would be for the program to be updatable while
the user is using it, without having to restart the app and download
new upadates.
I'll read up and probably post back with any more specific queries I
may have.

Cheers
 
Thanks for the info, I'll start reading around some of these choices.
I think the key point would be for the program to be updatable while
the user is using it, without having to restart the app and download
new upadates.
I'll read up and probably post back with any more specific queries I
may have.

Cheers- Hide quoted text -

- Show quoted text -

Since this is your intranet, why not a ASP.NET web application? You
can stil leverage all the good stuff that comes with the Windows/.NET
platform, while able to instantly update your pages.
Look at the Composite Web Application block and the Web Client
Software Factory on MSDN and/or codeplex.com
 
Back
Top