Re: Win App Development Program Structure

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



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

.



Relevant Pages

  • Re: Expert of Design Patterns
    ... You need to READ the pattern specified by another and interpret it. ... rather context evaluation. ... design patterns can be expected, by definition, to make good choices about ...
    (comp.object)
  • Re: MooTools: An Objective Look
    ... What design patterns in Mootools were criticized? ... host objects were the design patterns I have been commenting on in this ... A design pattern is a reusable solution to a problem in a context. ... So if this is a pattern, we could look at the goals, usage, and constraints in Mootools. ...
    (comp.lang.javascript)
  • Re: Design Patterns and Functional programming
    ... a pattern match gives yes/no ... Then you can use pattern matching to manipulate XML ... I'm assuming there are design patterns representing special cases of pattern ... to dispatch to some virtual method from the constructor. ...
    (comp.object)
  • Re: Why i dont switch to Lisp
    ... I would argue that a design pattern which is invisible actually /isn't/ ... there, and as evidence, I would cite its very invisibility. ... them to the restrictions of the language. ... the way design patterns are presented reinforces the ...
    (comp.lang.lisp)
  • Re: iPAQ 2210 power on by itself (again)
    ... other apps may be interfering as well. ... and then see if you can see a pattern. ... | The problem is that sometimes I find my iPAQ turned on in the morning. ... The iPAQ Backup schedule is NOT enabled. ...
    (microsoft.public.pocketpc)