Best Learning Tool

A

A

Hi

Aside from actually trying to write a website in ASP.NET, I am curious what
others have found helpful while trying to learn it correctly (Books,
Downloads, etc). I have downloaded the IBUYSPY to get an idea but am a
little frustrated. After reading some best practices material from
Microsoft it looks like they don't even use them in IBUYSPY but they do say
that IBUYSPY is best practice stuff.

Any REAL recommendations?
 
B

Bob Franklin

A few suggestions from my own experience:

1. I ditched my belief that I can learn this stuff *correctly*... it implies
that there is only one way or only one best way to do something. This is
practically never the case. If it were, then you'd find well-documented and
agreed-upon methods. What you will find is lots of authors and organizations
which perpetuate this belief. It's a nice and lofty belief to have, but look
at their own code and practices and you'll find that they almost never
practice what they preach (case in point - what you mentioned of your
findings on Microsoft's recommendations). Alternatively, you'll find that
"best" is a moving target. What's best today is different than what was best
yesterday. Keep up only if/when it makes sense to.

2. I adopted a new belief that I could learn many ways to do practically any
given programming task. This is all much more of an art than a science (this
statement is true for web page design, web application programming, database
design, database programming, and network engineering... and all this stuff
that colleges teach as computer *science*). The very word *science* in
computer science perpetuates the popular belief that there is THE way or a
right way to do this - and there isn't. There are many ways to implement
this stuff. While there is definitely a scientific aspect to much of this,
the implementation is arguably much more of an art than a science.

3. When it comes to learning ASP.NET (to specifically answer your question),
I studied the ASP.NET Starter kits
(http://www.asp.net/Default.aspx?tabindex=9&tabid=47), specifically the
Commerce starter kit first, and read a few books. The book by Dino
Esposito/Microsoft Press. It's the best book on the topic that I've found on
ASP.NET. Any non trivial ASP.NET Web application will almost certainly need
to interact with some database or other data store. Learn ADO.NET. David
Sceppa/Microsoft Press has the best book (IMHO) on ADO.NET.

4. Tackle specific tasks - and as you identify multiple potential solutions,
then go to the newsgroups to get other opinions. There's no substitute for
doing a real project. Just remember that as you do it, there is not going to
be a right way. Rather, come up with criterion that define what
implementation you want to live with (e.g., 1 - it has to be easily to
change because requirements often/always change after initial
implementation, 2 - it has to perform well (runtime execution speed has to
be fast, 3 - whatever is important to you).

5. Come up with a coding standard that you want to live with (e.g, variable
naming convention, class, object, database, table naming conventions). There
are a number of standards out there. Chose one and stick with it. What's
more important is to have a consistent naming convention (at least within a
project) than to come up with the best one - as there isn't.

Good Luck

Bob
MCSD, MCDBA, MCSA, MCSE
 
C

Colin Basterfield

I'd agree...

and IMHO...FWIW

ASP.NET
=======
Essential ASP.NET
ASP.NET Unleashed

C#
==
Programming C# - Jesse Liberty

..NET
====
Essential .NET - Don Box

General
=====
Agile Software Development - Robert C Martin
Refactoring - Martin Fowler

But like like Bob says, it isn't a science as such, more of an art,
excepting that certain goals have to be achieved, i.e. is it what the
customer wants, is is maintainable, so is is readable, is it well commented,
is it over engineered, is it a big design up front, are you being 'Agile',
can any of it be refactored, does it meet customer expectations in terms of
performance, how well does it lend itself to test driven development, is
there a design pattern that could make the above easier? Are you just
indulging yourself trying some neat way of doing something at the cost of
delivery and timelines?

Being an old hand at programming, but a complete novice at ASP.NET and .NET
I was recently guilty as charged trying to achieve a 'big design up front',
and found life far easier in all aspects of the process by being agile, i.e.
get something up and working, obviously adhering to certain standards, but
then look to refactor it into something that meets the above criteria.
One's confidence is boosted by having something up and running, a genuine
psychological milestone in my case, that can be used as a spring board to
something great, but again one has to consider what is required.

I'm sure someone will have something to say about this, so bring it on...

Colin
 
B

Bob Franklin

<<<I'm sure someone will have something to say about this, so bring it
on...>>>

I'll bring it on - you are a scholar and a gentleman!

Cheers!

Oh... and any discussion of "how to be a good programmer" must include one
of the best language-independent books on the topic - Code
Complete/Microsoft Press (sorry, I don't have the author). It should be
required reading for anyone coming out of a computer science program or
anyone mired in the mindset that there is one best way to implement
anything. It's especially good reading for our HTML-only friends who are
just getting into the programming side their business.

Bob

MCSD, MCDBA, MCSA, MCSE
 
C

Colin Basterfield

Steve McConnell...


Bob Franklin said:
<<<I'm sure someone will have something to say about this, so bring it
on...>>>

I'll bring it on - you are a scholar and a gentleman!

Cheers!

Oh... and any discussion of "how to be a good programmer" must include one
of the best language-independent books on the topic - Code
Complete/Microsoft Press (sorry, I don't have the author). It should be
required reading for anyone coming out of a computer science program or
anyone mired in the mindset that there is one best way to implement
anything. It's especially good reading for our HTML-only friends who are
just getting into the programming side their business.

Bob

MCSD, MCDBA, MCSA, MCSE





or has am
 
C

Colin Basterfield

btw thanks for your kind words...

Bob Franklin said:
<<<I'm sure someone will have something to say about this, so bring it
on...>>>

I'll bring it on - you are a scholar and a gentleman!

Cheers!

Oh... and any discussion of "how to be a good programmer" must include one
of the best language-independent books on the topic - Code
Complete/Microsoft Press (sorry, I don't have the author). It should be
required reading for anyone coming out of a computer science program or
anyone mired in the mindset that there is one best way to implement
anything. It's especially good reading for our HTML-only friends who are
just getting into the programming side their business.

Bob

MCSD, MCDBA, MCSA, MCSE





or has am
 
A

A

Thanks Bob and Colin,

I actually think I new this all along. I have been in C#/.Net for a few
years but not on the ASP.net side. The curve isn't that hard but it seems
that there is just too much info out there on how to do any single thing
that I am getting checkmated. I will probably just start doing what I
always have...fake it until you make it.
 

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

Top