Windows app or ASP.NET ?

A

Alan T

I am not sure which way to go:
Want to learn C# but C# is implemented both in Windows desktop application
and ASP.NET. I am not familiar with web programming, should I start with
Windows app or ASP .NET?
 
M

Michael Starberg

Alan T said:
I am not sure which way to go:
Want to learn C# but C# is implemented both in Windows desktop application
and ASP.NET. I am not familiar with web programming, should I start with
Windows app or ASP .NET?

Why not both?

- Michael Starberg
 
M

Michael A. Covington

Start with Windows application programming.

I think trying to do both at once would be confusing.
 
M

Michael Starberg

Alan T said:
I would love to but I need to get started from choosing one of them first
anyway.

First you need to learn to not top-post, if your message is not final.

But I'd start in the middle if I where you,
building a simple webservice, and have a small website and a winapp work
with that.

Why just a master-detail using the Northwnd database.
Some Databinding, GUI-gridding. And maybe some Validation.

Another thing you could do is to do a really slow Tetris,
in a console application. Using Console.Read()
you could redraw the 'game-area' for each move,
and spend time having fun with OO.
maybe IBrick knows when it hits IWall.
Or maybe IGame knows when a brick hits a wall.
Maybe the singleton Floor could raise an event
when it observes that a straight line has been done..

Lousy design, true, but it will get you going...

- Michael Starberg
 
M

Michael A. Covington

Michael Starberg said:
First you need to learn to not top-post, if your message is not final.

Top-posting has come into wide use for a good reason. I challenge the
anti-top-posting crowd to enumerate the advantages of both bottom- and
top-posting. I'm afraid that for many people nowadays, telling others not
to top-post is merely a way of claiming status.

But I'd start in the middle if I where you,
building a simple webservice, and have a small website and a winapp work
with that.

Why just a master-detail using the Northwnd database.
Some Databinding, GUI-gridding. And maybe some Validation.

Another thing you could do is to do a really slow Tetris,
in a console application. Using Console.Read()
you could redraw the 'game-area' for each move,
and spend time having fun with OO.
maybe IBrick knows when it hits IWall.
Or maybe IGame knows when a brick hits a wall.
Maybe the singleton Floor could raise an event
when it observes that a straight line has been done..

Lousy design, true, but it will get you going...

Are those serious proposals? You seem to be trying to construct unusually
difficult things for a first project.

I generally tell beginners to build a simple interactive Windows app with
some buttons and textboxes; when the button is pressed, have it read the
textboxes, do a calculation, and report the result in another textbox. From
there, it's a simple step to games, graphical display of data, etc.
 
S

Smithers

Going with a Windows desktop application would be *far* simpler than going
with an ASP.NET Web application.

With a Windows desktop application, all you have to deal with is Visual
Studio. Everything you need for your UI is right there. You design, write
code, compile and off you go, possibly with a few 3rd party controls where
necessary.

With an ASP.NET Web application, you would need to learn [at least something
about] each of the following:
1. Web server (IIS) and the role it plays in a Web application... including
Virtual directories, application pools, DNS to even get to the correct site
on the server, possibly HTTP Headers, etc.
2. HTML (only an idiot would think you can rely only on Visual Studio,
FrontPage, or DreamWeaver to write all of your HTML for you. That's just
naive. You will need or want to be able to write HTML by hand.).
3. JavaScript (or ECMA Script, and if you're on the fringes, VBScript).
4. The role of HTTP and it's simple request/response model according to
which Web applications communicate.
5. State. You'd have to think carefully about where different variables live
throughout your application - much more carefully than you would with a
desktop application. In an ASP.NET Web application you have (1) application
state, (2) session state, and (3) page state ("ViewState" in ASP.NET).
6. Graphics. In order to have a reasonably attractive Web page, you'll need
graphics (.gif or .jpg files) to be of a particular size and for several
such graphics to work well together to make the page look reasonably good.
Odds are that you'd need to learn FireWorks or PhotoShop or some such
similar graphics manipulation app in order to tweak grahics files to your
liking or requirements.
7. Cascading Style Sheets (CSS) for making the pages look good uniformly
without using the depracated HTML tags like <Font> etc.
8. Client-side vs Server-side events and code (including the ASP.NET
code-behind model).
9. Browser differences... they all have quirks and differences in how they
interpret the HTML standards.

I could go on.

You should get the idea though... to do a truly useful ASP.NET Web
application is a significantly more costly endeavor in all respects... from
setting the thing up to creating an attractive UI to writing code.

-HTH

-S
 
M

Michael Starberg

Michael A. Covington said:
Top-posting has come into wide use for a good reason. I challenge the
anti-top-posting crowd to enumerate the advantages of both bottom- and
top-posting. I'm afraid that for many people nowadays, telling others
not to top-post is merely a way of claiming status.

A: Because it ruines the flow of conversation.
Q: Why is top-posting bad?

That said, I often top-post.
But then I also clean-up and only leave relevant posts below.

I think it is fair to correct someone, while Alan surely ment no harm.
Also, I think you you are semi-correct on the 'claiming status' thingy.

It is not easy to join a new 'cluster' of friends in any situation.
Doesn't matter if it a rock-festival, a coktail-party or especially,
a usenet-cannel.

If I seems like a bigot to you,
then I semi-apologize for that
Are those serious proposals? You seem to be trying to construct unusually
difficult things for a first project.

Yes, indeed. I am trying to get the basics of OO across
And this is not doing tetris from scratch in pure c.

If you have read my post, you'd see I asked questions.
Maybe Alan will start with learning how to get just one brick on a window.
Maybe interfaces will make him interested.
Maybe he needs simple OO theory.
I generally tell beginners to build a simple interactive Windows app with
some buttons and textboxes; when the button is pressed, have it read the
textboxes, do a calculation, and report the result in another textbox.
From there, it's a simple step to games, graphical display of data, etc.

Yep yep.
That would be a good start.
But by doing that, what have your pupil really learned?
Except using a mouse and keyboard?

I prefer to throw my pupils in the water
and tell them this would be a good time
to learn how to swim. =)

Alan:
Note that we are talking generally here,
noone is getting wet by force.


- Michael Starberg
 
M

Michael Starberg

I can't skip this one Smithers.



1. Web server (IIS) and the role it plays in a Web application...
including Virtual directories, application pools, DNS to even get to the
correct site on the server, possibly HTTP Headers, etc.

Or just press F5 in VS2005.
But I'd say the above is good to know.
2. HTML (only an idiot would think you can rely only on Visual Studio,
FrontPage, or DreamWeaver to write all of your HTML for you. That's just
naive. You will need or want to be able to write HTML by hand.).

<q>
The BLINK tag in HTML was a joke, okay? If we thought it would actually be
used, we wouldn't have written it! (Mark Andreessen)
<q/>

The mystery of html is not that that hard anymore.
3. JavaScript (or ECMA Script, and if you're on the fringes, VBScript).

With .NET 3.0 and WPF and XAML, not much JavaScript is needed.
But good to know.
4. The role of HTTP and it's simple request/response model according to
which Web applications communicate.

If this is hard to grasp for a programmer,
even a beginner, Tjeesus. Let go of the keyboard and call a doctor.

Me Tarzan, You Jane. I throw my balls to you, you throw it back.

Obvious to know
5. State. You'd have to think carefully about where different variables
live throughout your application - much more carefully than you would with
a desktop application. In an ASP.NET Web application you have (1)
application state, (2) session state, and (3) page state ("ViewState" in
ASP.NET).

Which is a great open door to learn about threading.
Good to know.
6. Graphics. In order to have a reasonably attractive Web page, you'll
need graphics (.gif or .jpg files) to be of a particular size and for
several such graphics to work well together to make the page look
reasonably good. Odds are that you'd need to learn FireWorks or PhotoShop
or some such similar graphics manipulation app in order to tweak grahics
files to your liking or requirements.

Odds are that one needs not.
Nice try.

You can't 'learn' to make things look good.
Are you asking a coder to paint?

In my world, we use AD and usability experts for that.
7. Cascading Style Sheets (CSS) for making the pages look good uniformly
without using the depracated HTML tags like <Font> etc.

With VS 2008 this is really easy, as you get intellisence all the way.
And a nifty designer. Just my using a mouse,
even I can do .css as a pro, almost *s*
8. Client-side vs Server-side events and code (including the ASP.NET
code-behind model).

This sometimes confuses me.
What to do in the constructor,
Page_Init, Page_Load and for master-pages,
Page_PreInit.

Good to know

9. Browser differences... they all have quirks and differences in how they
interpret the HTML standards.

Oh, html-standards are so prio 1 when learning C#
Now you are just grasping for air.
I could go on.

I bet you could =)
You should get the idea though... to do a truly useful ASP.NET Web
application is a significantly more costly endeavor in all respects...
from setting the thing up to creating an attractive UI to writing code.

Have you played around with the ajax-support in .NET 3.0?
Because most stuff you are talking about 'feels' really 1.1
and maybe even ASP3.0 and 2001.

Mr. Burns
- Michael Starberg
 
C

Chris Shepherd

Alan said:
I am not sure which way to go:
Want to learn C# but C# is implemented both in Windows desktop application
and ASP.NET. I am not familiar with web programming, should I start with
Windows app or ASP .NET?

As Smithers mentioned, ASP.NET has a few extra complications to it.
Start simple with a WinForms app.

Chris.
 
M

Michael A. Covington

Yep yep.
That would be a good start.
But by doing that, what have your pupil really learned?
Except using a mouse and keyboard?

Obviously, they haven't learned much OOP yet. But they also aren't lost.
They have a foundation.
I prefer to throw my pupils in the water
and tell them this would be a good time
to learn how to swim. =)

How many of them drown? One of my goals (and I've been teaching for 27
years) is for everyone to succeed to the best of his/her ability -- for
nobody to get lost unnecessarily. I figure they're *all* paying tuition.
 
C

Chris Shepherd

Michael said:
Top-posting has come into wide use for a good reason. I challenge the
anti-top-posting crowd to enumerate the advantages of both bottom- and
top-posting. I'm afraid that for many people nowadays, telling others not
to top-post is merely a way of claiming status.

This should really be a separate thread...

What is the "good reason" top-posting is becoming more common?

The cons to top-posting, as far as I'm concerned:
- Counterintuitive flow to conversation by convention (at least in
predominantly English speaking groups).
- In point-based analysis/response it fails to address or indicate which
points it relates to.

The primary con (really the only one that strikes me) with
bottom-posting is that if you're thoroughly familiar with the
conversation at hand, sifting through a person's quotes is nuisance.
However, in branching discussions such as Usenet this is handy since you
could jump from one branch in the discussion tree to another.

To summarize:
- Top-posting goes against every reading convention in the
English-speaking world. Print is designed to be read left to right, top
to bottom. Forum software is always designed to show you the most recent
posts at the bottom (by default, anyway). Heck, you even write left to
right, top to bottom.
- Bottom-posting does none of these things, and suits Usenet very well.

As for it being a "claim to status" that probably depends on the
individual posting more than the concept itself, though how you comport
yourself in a verbal fashion tends to indicate your status, so I imagine
to a degree that does apply to written material. Either way, if people
find top-posting confusing, and they say not to do it because it is a
barrier to communication then you probably ought to heed their
suggestions. Especially here in a newsgroup where people are frequently
asking for help.

Chris.
 
C

Cor Ligthert[MVP]

Michael,

This is not a Linux newsgroup. Topposting is the standard in Outlook Express
(Now Windows Mail) as most Microsoft Windows users use for newsgroups.

Bottom posting is in my idea from the previous millenium.

Cor
 
C

Cor Ligthert[MVP]

Alan,

Take the one that gives you the most fun. Be aware that you need for ASP.Net
an open ASP.Net server, those are not always provided, you can use your own
computer as it is a professional version, however then your computer is
almost wide open if you have not very strong firewall hard- or software.

Beside that you need then a continuous connection to internet. I live in
Holland where that is common for most people, I assume that this is not
standard in Australia.

Cor
 
M

Michael A. Covington

Well said, Cor! Top posting is indeed the standard in the world of threaded
newsreaders and very fast news delivery.

We no longer need for each message to contain the whole thread, quoted in
order; we can see the thread already. Yet it is handy to have the old
material available in the message just in case it didn't arrive through
normal channels. Hence -- top posting, to see the new stuff immediately
with the option of scrolling down to see the old stuff when you need to.

I definitely don't believe computers were perfect in 1980 or that old
traditions should be preserved forever. I *was* using computers in 1980.
Even 1975 (Urbana PLATO) and even 1973 (CDC 6400). :)
 
M

Michael A. Covington

This should really be a separate thread...

What is the "good reason" top-posting is becoming more common?

I just replied in the original thread; see that. Briefly: A top-posted
reply is quicker to read because the reply is visible without scrolling
down. You normally do not need to scroll down to see the old material
because you are using a threaded newsreader and have already seen the prior
messages, in order. But if you do need it, it's there.
The cons to top-posting, as far as I'm concerned:
- Counterintuitive flow to conversation by convention (at least in
predominantly English speaking groups).

Unless you have already read the prior messages in the thread.
- In point-based analysis/response it fails to address or indicate which
points it relates to.

True, and I don't top-post in that situation. Instead I do what I'm doing
now.
The primary con (really the only one that strikes me) with bottom-posting
is that if you're thoroughly familiar with the conversation at hand,
sifting through a person's quotes is nuisance.

Exactly. That can add up to thousands of down-arrow presses during a short
session.
To summarize:
- Top-posting goes against every reading convention in the
English-speaking world. Print is designed to be read left to right, top to
bottom.

Messages with top-posted replies aren't intended to be read through. The
assumption is that normally, the latest reply is the only part you need to
see.
- Bottom-posting does none of these things, and suits Usenet very well.

When Usenet ran on DECwriters or ADM-3A's, and mail took 2 days to appear on
a server, yes. In those days you needed every message to really be a
complete thread, in order, because you weren't going to be able to see the
rest of the thread.
As for it being a "claim to status" that probably depends on the
individual posting more than the concept itself, though how you comport
yourself in a verbal fashion tends to indicate your status, so I imagine
to a degree that does apply to written material.

What I suspect is that some invectives against top posting are from young
people trying to give the impression they were on the Net back in the Elder
Days (when top posting really was unacceptable). (Or that they are superior
because they know the rules from the Elder Days.) At age 50, I spend a
remarkable amount of time telling people half my age (or less) to move into
modern times. I did not expect to play this role, but the world of
computers is *full* of 1980s nostalgia, and is, in my opinion, hobbled by
it.
Either way, if people find top-posting confusing, and they say not to do
it because it is a barrier to communication then you probably ought to
heed their suggestions. Especially here in a newsgroup where people are
frequently asking for help.

A large number of people are reading, and they don't all have the same
preference.
 
A

Alan T

Thank you very much the advices you all guys have given.
First of all, some threads discussed about my top-post, yes, this is my
habit as a result of my using Outlook Express as newsreader, that's the
default. I only use bottom-post when there are more than 1 previous material
to refer.

I forgot to mention in my original message, I have been programming C# using
VS 2005 for 6 months, but really have not much knowledge about the CSS,
session, web security (although several years ago I worked with web project
using Javascript and HTML).

I agree I should start with Windows application but not sure WHEN I should
start learning ASP .NET?
Can I just buy a book like Beginning ASP.NET with C# that go forward without
through understanding of Javascript, CSS, HTMl, XHTML, sessions,
Ajax.....etc.
 
S

Smithers

I can't skip this one Smithers.

Maybe you should have. Nothing you wrote changes the reality that Web
applications are more complicated than Windows applications - which is what
my point was.

Or just press F5 in VS2005.
But I'd say the above is good to know.

It's more than "good to know" - it's an required piece of the puzzle. Even
VS2005 needs a Web server... yup provides one of its own, but why would you
imply that it's really not important and just "good to know". A Web server
is a *required* piece of the puzzle - regardless of where it comes from.
It's also something that's not requried in Windows Forms apps - which is the
point here.


<q>
The BLINK tag in HTML was a joke, okay? If we thought it would actually be
used, we wouldn't have written it! (Mark Andreessen)
<q/>

The mystery of html is not that that hard anymore.
With proper usage of <div> and .css and intellisense it is not so
difficult.
Good to know.

Here you go with "good to know" again. HTML is *critically important* to Web
apps - you can't have a Web page without HTML.

"The mystery of html is not that hard anymore" -- What's that supposed to
mean? HTML has basically remained largely unchanged since 1999 or so. Some
tags have been depracated - but that's pretty much it. Your statement is
nonsensical - "not hard anymore" - implies that html has somehow changed.
Even if the tools have become better, anyone who has done any non trivial
Web app and page development understands the importance of being able to
tweak HTML manually or otherwise understand it.

"With proper usage" -- now you are supporting my point. How is anyone
supposed to know what "proper usage" is if they haven't learned what HTML is
and how it works - VS, Dreamweaver, FrontPage notwithstanding. It's yet
another thing to be learned for Web app development that is not there for
Windows Forms apps.

With .NET 3.0 and WPF and XAML, not much JavaScript is needed.
But good to know.

This statement makes it appear that JavaScript is somehow optional - and
just "good to know". That's simply false. Postbacks happen via client-side
JavaScript. .NET 3.0, WPF, and XAML do not replace JavaScript in any way.


If this is hard to grasp for a programmer,
even a beginner, Tjeesus. Let go of the keyboard and call a doctor.

Me Tarzan, You Jane. I throw my balls to you, you throw it back.

Obvious to know

No, it isn't obvious. Even if it is not a difficult concept (which it likely
isn't for most people), it must be accounted for in Web apps. It is yet
another thing to know for Web apps but not for Windows forms apps, which is
what the point here is.


Which is a great open door to learn about threading.
Good to know.

So there you go again supporting my point --- yet another thing to learn
with Web apps that one doesn't have to deal with in Windows Forms apps.

Threading and state are not in any way directly related or dependent on each
other... not sure where you came up with that... but let's not wander off
topic.


Odds are that one needs not.
Nice try.

"Odds are..." + "Nice try" ??? These statements make it pretty clear that
you have likely never developed an attractive Web page. They *need* graphics
in order to look good. (by "look good" I mean anything other than
"amatuerish"). Plus, CSS can take you only so far (i.e., no rounded borders,
for example).

You can't 'learn' to make things look good.

Yes, you can.
Are you asking a coder to paint?

Yes. The days of having coders who do only one thing are very much gone;
although maybe not in your world. In any case it's still another thing that
must be accounted for with Web apps that aren't required by Windows Forms
apps - which can look pretty good without bringing custom graphics into the
game. So even if we don't ask our coder to paint, the painting still needs
to be done if the page is going to look good.

So you still haven't written *anything* to support the ridiculous idea that
Web apps are somehow on par with Windows Forms apps in terms of difficulty.

In my world, we use AD and usability experts for that.

Wow! That doesn't take away from the fact that the work still needs to be
done. What is the OP supposed to take away from this statement of yours...
that he should have a staff of AD and usability experts in order to get his
Web apps to look good?

With VS 2008 this is really easy, as you get intellisence all the way.
And a nifty designer. Just my using a mouse,
even I can do .css as a pro, almost *s*

Intellisense cannot think for you. Your cavalier attitude suggests that one
doesn't need to really understand what's going on, as VS and intellisense
will keep you on the straight and narrow. What do you do when you don't like
what VS does for you? If you don't understand the HTML or CSS that VS
creates for you, then you're screwed until you go up the learning curve.

This sometimes confuses me.

I'll let that go (dang it!) :)

What to do in the constructor,
Page_Init, Page_Load and for master-pages,
Page_PreInit.

Good to know

None of what you wrote there has anything to do with "client-side vs.
serverj-side events" -- all those events you listed are server-side events.
They are far more than "good to know" - they are *required* knowledge, and
an understanding of the HTTP request pipeline is helpful for really
understanding when one might want to use these. ... yet another thing not
there to be dealt with in Windows Forms apps


Oh, html-standards are so prio 1 when learning C#
Now you are just grasping for air.

It is simply irresponsible to state that HTML standards are unimportant.
While they may have little or nothing to do with C# itself, HTML (and
therefore the HTML standards) are critically important for the development
of a sound and functional ASP.NET Web application.

I bet you could =)

Did I mention the HTTP Request Pipeline?

Have you played around with the ajax-support in .NET 3.0?
Because most stuff you are talking about 'feels' really 1.1
and maybe even ASP3.0 and 2001.

Everything I listed is all about the fundamentals - which didn't change with
..NET 3.0, AJAX, etc. You are apparently unclear on the fact that AJAX is
really not new - in terms of the fundamentals - it still relies on HTTP,
JavaScript, and HTML.

It is irresponsible to provide a newcomer with the mistaken impression that
the fundamentals have somehow been changed or depracated with the coming of
..NET 3.0, AJAX, and the sort.

The fundamentals are still there, and are as important as ever.

-S

-S
 
M

Michael Starberg

Michael A. Covington said:
Obviously, they haven't learned much OOP yet. But they also aren't lost.
They have a foundation.
oki.


How many of them drown?

None yet.. that I know of.
I don't count my 'pupils',
so I don't know. *s*
One of my goals (and I've been teaching for 27 years) is for everyone to
succeed to the best of his/her ability -- for nobody to get lost
unnecessarily. I figure they're *all* paying tuition.

Sure, but someone who knows what usenet is,
or know how to use google-groups,
probably don't need a teacher,
but a mentor.

I think we can both help
as in this battle of egos,
we kinda forgot someone,

Where is Alan? *s*

- Michael Starberg
 
M

Michael Starberg

Oki. I'll stand down.
What I was trying to say
is that top-posting encourages people not

Michael A. Covington said:
Well said, Cor! Top posting is indeed the standard in the world of
threaded newsreaders and very fast news delivery.

... to prune below posts.
I definitely don't believe computers were perfect in 1980 or that old
traditions should be preserved forever. I *was* using computers in 1980.
Even 1975 (Urbana PLATO) and even 1973 (CDC 6400). :)

Please stop giving us hardware-pr0n. I'm drooling. =)

- Michael Starberg
 

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