"Restructure a Windows application" from scratch in 2 months

R

Rajat Tandon

Hello Everybody,

Please guide me so that I can fulfill this challenging assisnment ...

I have been asked to "Restructure a Windows application" from scratch in 2
months. The existing application which is working but it is very heavy as no
proper application architecture and layering has been followed for this. It
was really hard to maintain (as I was maintaing it till now) .

First let me tell u a bit about my application ...

This appliction uses Window forms UI with a lot of panels put one on the top
of other.There are few separate forms for login etc. This UI interact with
webservices to get the data from our database and show in turn on UI. Three
Windows services are updating our database from some other remote database
after regular interval. So in this way we keep our database updated with
real data. Thus client UI don't has to wait for long to get the real time
data directly from the original source.We are currently deploying the Client
UI from web and using C# as language.

Being new to dotnet technology, I don't know how to start with this. Some of
the facts/questions that are coming to my mind after studying my application
and the concepts ...

1.
There is a lot of hype and demand about UML Tools like "Rational Rose" etc.
I want to use it to redevelop my application.
2.
Microsoft recommends the "Application pattern and practices" to design the
application. I am presently going through the following topics ...

..NET Data Access Architecture Guide

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/daag.asp
Desinging Data Tier Components and Passing Data Through Tiers

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/BOAGag.asp
Although these are very good resources but these are very vast and taking a
lot of time. Sometimes I am not able to follow these articles as I don't
have extensive experience.

Could you please point me towards 1 or 2 sample applications of "Similar
Kind" (Preferably with Full UML diagrams/documents) with of course easy to
understand documentation and source code, so that I have the practical view
of "Microsoft Pattern and Practices" and I can instantly follow them. It
would be better if these applications are not very complex and yet inclue
the layering concept as well as the usage of all technologies -Web
Services,Windows Services,UI,SQL Server connectivity etc.
3.
What is the best way to use Panels/Forms. Is it good to show multiple panels
on the same form and when needed use visible for 1 panel and invisible for
multiple panels or use multiple forms? And why the respective practice is
used?

Thank you for all of your patience to go through such a long mail. Please
advise me the best way to go about it keeping in mind the time constraint of
2 months.

Thanking you in advance,

Regards,
Rajat Tandon.
 
S

SP

Rajat Tandon said:
Hello Everybody,

Please guide me so that I can fulfill this challenging assisnment ...

I have been asked to "Restructure a Windows application" from scratch in 2
months. The existing application which is working but it is very heavy as
no
proper application architecture and layering has been followed for this.
It
was really hard to maintain (as I was maintaing it till now) .

I think the overall premise of "2 months to restructure" is flawed. Rather
than spend 2 months "straight" to restructure it would be best to refactor
as needed when you are making the changes that are currently being asked to
do. I suggest you pick up a copy of "Working Effectively With Legacy Code"
by Michael Feathers. It deals with this exact type of situation.
First let me tell u a bit about my application ...

This appliction uses Window forms UI with a lot of panels put one on the
top
of other.There are few separate forms for login etc. This UI interact with
webservices to get the data from our database and show in turn on UI.
Three
Windows services are updating our database from some other remote database
after regular interval. So in this way we keep our database updated with
real data. Thus client UI don't has to wait for long to get the real time
data directly from the original source.We are currently deploying the
Client
UI from web and using C# as language.

Being new to dotnet technology, I don't know how to start with this. Some
of
the facts/questions that are coming to my mind after studying my
application
and the concepts ...

1.
There is a lot of hype and demand about UML Tools like "Rational Rose"
etc.
I want to use it to redevelop my application.

Redevelop sounds like start from scatch not restructuring. You have to
decide if you are a) starting from a blank canvas and writing the
application, b) you have an existing application that you need to change /
refactor to make it easier to make changes in the future (or c - I will be
hidden away in the corner for 2 months and not disturbed - no new features
or maintenance will be done while I restructure - after 2 months I will
emerge with the application completely restructured and tested - yeah
right!!!).

SP
 
R

Rajat Tandon

Thank you for the prompt reply. Let me give you insight into the situation.

I have developed a sustantial part of the application.My UI, Database are
well placed so no need to redesign them (or very slight modification might
be required). I just want to restructure the application into different
layers using some UML ( I very well know the flow and classes so it should
not take much time). I am sorry if I sounded like "To Redevelop the
application". It is a restructuring work and you are correct ...

"I will be hidden away in the corner for 2 months and not disturbed - no
new features
or maintenance will be done while I restructure - after 2 months I will
emerge with the application completely restructured and tested" .

Regards,
Rajat.
 
S

SP

Rajat Tandon said:
Thank you for the prompt reply. Let me give you insight into the
situation.

I have developed a sustantial part of the application.My UI, Database are
well placed so no need to redesign them (or very slight modification might
be required). I just want to restructure the application into different
layers using some UML ( I very well know the flow and classes so it should
not take much time). I am sorry if I sounded like "To Redevelop the
application". It is a restructuring work and you are correct ...

It seems your biggest focus is on the use of UML / Rational Rose so other
newsgroups might be more helpful to you. Perhaps comp.object.
"I will be hidden away in the corner for 2 months and not disturbed - no
new features
or maintenance will be done while I restructure - after 2 months I will
emerge with the application completely restructured and tested" .

I would not add layers just to have more layers. Perhaps you have
dependencies that you are trying to break, e.g. UI has dependency on data
access layer. Why don't you get the code base under test while you refactor
and just go from there. Again I highly recommend the book I suggested in my
first post.

SP
 
S

Sahil Malik

You've got 2 months - why waste time on UML?

Run VS2005 - reverse engineer the source code.
Run classdesigner - that's your UML replacement (and you don't need any more
than that for a 2 month quickie).

Beta2 will come in Feb 2005 - that comes with a go-live license.

Regards the technical rearchitect of your project - that's a call based on
how much time you truly have - Hard to comment on that sitting thousands of
miles away from u.

- Sahil Malik
http://dotnetjunkies.com/weblog/sahilmalik
 
A

Ajay Kalra

It seems you are enamored by UML and other things which have very
little(if at all) to do with the architecture of your application. To
architect, you need to understand the current design and what is wrong
with it. You need to know its shortcomings before you go ahead with
redesign. No need to redesign if you dont know why you are doing it.
Otherwise you will be doing it again very soon.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,817
Latest member
DicWeils

Latest Threads

Top