Re: Win App Development Program Structure
- From: "Steven Nagy" <learndotnet@xxxxxxxxxxx>
- Date: 2 Sep 2006 22:22:26 -0700
I agree with most of this statement.
But I would stress more about the TDD. Some call it Test Driven
Development, but at our work we call it Test Driven Design, because it
changes the way you approach development. It really is a big turn
around in the way you create your applications. We need TDD because our
web applications are used by thousands of government staff state-wide.
We also use Nunit, and nMock.
Also look into a particular design pattern called "Model View Presenter
(MVP)". We are pushing this extremely hard now and the benefits for
larger applications is massive, in terms of maintainability. Also, you
might want to first look into "Dependency Injection" pattern before
tackling MVP.
Just talking the talk helps you walk the walk when it comes to design
patterns. I would say read the suggested book and become familiar with
the terms. If you don't understand a particular pattern, just post to
this group.
<flame> Its way better than the VB group because the quality of
developers here is much higher.</flame> (that doesn't include me
naturally!).
Learn about other technologies, both MS and 3rd party. For example, we
use NANT quite a lot as well. And consider a source repositry such as
source safe or csv. Code generators such as 'Code Smith' are useful too
(version 2.8 is free I think) (another one is RDP, but I hate it
personally...)
Some companies like to write a core framework that's usable in all
applications. This might work and serve to increase productivity. We
certainly do this. Some of the things such as user authentication in
2.0 have made some of it redundant though, so there are always wins and
losses with this approach. We also have a core set of database tables
that always have the same name (such as the users, roles, logs, data
dictionary, etc) to be used with the framework.
nHibernate is being used here as well, but I am wondering how much will
be made redundant by the new features LINQ, vNext, and object data
binding (I was hung over in that presentation at Tech Ed and not paying
as much attention as I should have).
Also check out Enterprise library. They are an (unsupported) Microsoft
library of Application Blocks. I think they are trying to make things
easier in terms of speeding up development by wrapping existing .NET
Framework classes. From memory, there's a user authentication one,
encryption, and data layer blocks. Someone else may be able to give
more info and explanation as to how useful they are in speeding up
development (once you overcome the learning hurdle of course).
Thats about all I have to say right now. I'm only typing a long answer
because I'm waiting for someone to answer MY question about web
scraping... see yas.
dkode wrote:
Hello,
I was in the same shoes that you are. Now i'm to a place where some
apps are used by hundreds of people and designing the app is getting to
be pretty important for maintenance and sanity on my part as I am a
lone developer.
I recently came across test driven development (TDD) and O/R mappers,
in addition ive read several books on design patterns. these are some
good starting points to read up on.
There is no definitive source for "best practices", but i've taken a
little from each subject area trying to see what works for other
people. Alot of people will say this works better, or that works better
but it all comes down to what works for YOUR situation.
If you think you need to use something, stop and think of WHY you need
to use it. This will save you from implementing things that are not
needed, leading to code bloat; which i have had the pain of dealing
with a couple of times myself.
I would suggest reading a couple of books on design patterns. Design
patterns explained is one I bought. I believe its by Alan Shalloway.
One pitfall to design patterns though, if you dont understand how a
pattern works then dont use it, as you might mis-use the pattern.
The TDD tool I use is nunit
http://www.nunit.org
O/R Mappers are very handy. They eliminate a great portion of Data
Layer code. I am using NHibernate
http://www.nhibernate.org
It's open source and has a pretty big movement. I havent even scratched
the surface yet with this mapper though, it seems very complex. it has
a number of features that speed up the data layer.
Hope this helps somewhat!
Sean
RBD wrote:
Hi all,
I am a a self taught C# programmer. I have been developing custom apps
for a few years now, but they have mostly been very small apps for
individuals or departments. Now I am getting into fairly large custom
apps for small/medium sized companies.
My problem is I have been ok with the small apps, but I dont know how
to structure large apps. I need resources that will teach me how to
structure medium sized applications. I'm talking best practices etc.
Not things like naming conventions, but actual application structure. I
hope I am making sense.
Are there any experienced programmers out there that can point me to
some resources (books, websites, etc.) that will teach me this?
Thanks in advance!
---Richard
.
- Follow-Ups:
- Re: Win App Development Program Structure
- From: dkode
- Re: Win App Development Program Structure
- References:
- Win App Development Program Structure
- From: RBD
- Re: Win App Development Program Structure
- From: dkode
- Win App Development Program Structure
- Prev by Date: Re: Format always consistent for DateTime.ToString("s") ?
- Next by Date: Re: Strong Name Verification Failed
- Previous by thread: Re: Win App Development Program Structure
- Next by thread: Re: Win App Development Program Structure
- Index(es):
Relevant Pages
|