Kind of, but not really. Again, from a background in web development
MS appears to have opted to effectively shaft web standards with this
(naming conventions of elements, use of x/html elements as backend
control elements etc)
I have built a number of ASP.Net web applications that are completely in
line with W3C standards for XHTML, CSS, and scripting. I'm not sure what
other "standards" you may be referring to, but if you're referring to W3C
standards, you're way wrong. The fact that you *can* build ASP.Net web sites
that are not standards-adherent is simply a reflection of the flexibility of
the technology. You *can* create any HTTP output you want with ASP.Net, and
have full control over it.
I'm yet to find any instance of a iterators for output code with the
level of dexterity I want, while attempting some form of separation of
object control code from markup code. I've looked at repeaters, and
that's as close as I can get, but I still can't put inline controls
(if/if-else statements) within the repeater without pulling it away
from the markup code and into the object control code. What is the
model (ala Rails, Django etc's MCV methodology) that ASP.NET follows,
because it seems an incoherent mashup. Not really model focussed, nor
view focussed, nor, really, control focussed, but rather everything
mashed together.
What is the "model" that C++ follows? Answer: none. C++ is a technology, not
an architecture. It is the same with ASP.Net. You may use any architectural
models and patterns that you wish. It is up to you to implement them. Some
are suggested. Some are even supported. But none are dictated. That is not
the purview of a technology.
The classes you refer to are fine in an environment
where there isn't a great deal of flexibility in controls (read that
as "desktop applications") when compared with x/html elements. I don't
want tables everywhere, I want graceful semantic code.
There are many classes available in the CLR, as well as the complete freedom
to create your own Controls and have complete control over what output they
generate. Again, the fact that the menu is large does not imply that you
can't order what you want from it, a al carte, if you wish.
Again, I want to know why there is the reliance on client side
javascript to activate forms all the time (using the classes etc you
refer to). Also, who in their right mind made an x/html element a
backend control element (the form runat="server") when semantically
forms (plural *or* singular) may not be needed on the page.
An HtmlControl is simply a tool. It is useful for various things, if you
understand what it is, and how it works. Like any other tool, it is designed
with certain purposes in mind. However, one can use a wrench to drive nails
if one so chooses, or if one does not know what a wrench is, or what it is
designed to be used for. This is not a reflection on the tool, but on the
user of the tool.
The
ASP.NET terminology is not designed for the web at all, and nor does
it want its users to actually be educated in web technologies (as I
can see by so many of the questions being asked in this group),
The fact that there are many ignorant people asking questions in these
newsgroups is simply due to the nature of the newsgroups. After all, people
who know the answers are not likely to be asking for them. Ignorance is a
condition that is remedied by investigation and by asking the right
questions. The idea that one can evaluate a technology by observing the
behavior those who are ignorant of the technology is simply illogical.
the
concept of graceful degradation (or progressive enhancement), real
understanding of the separation of client side behaviour, styling and
markup from server side operations. Sites should *not* rely on
javascript and styling to ensure that they can still be used. Nice to
add in to make it pretty, and to give the user a better experience,
sure, but not absolutely necessary.
JavaScript is entirely unnecessary in many cases, and ASP.Net technology
does not dictate the use of it. On the other hand, JavaScript is widely
accepted, supported by every browser manufactured, and used for a great
variety of purposes. Ajax, for example, could not exist without it. The idea
that there is something "impure" or inherently wrong with using JavaScript,
particularly in an interactive web application, is illogical.
The approach is driving me nuts, because of this drag and drop,
wysiwyg, don't understand the fundamentals because "classes will take
care of it" (but if you want something slightly beyond simple tabular
data, or the occasional repeater, and keep code easily understood and
maintainable it seems like the effort required is phenomenal, even for
simple things).
When you speak of "drag and drop" and "wysiwyg" you are not talking about
ASP.Net; you are talking about Visual Studio. Visual Studio is a tool set
for creating ASP.Net web applications. It has many tools for many purposes.
Again, the key to effective use of the tool set is understanding what each
tool is, what it is designed for, and how to use it properly. The fact that
any tool can be abused is common to all tools, and therefore irrelevant.
As for "don't understand the fundamentals...." the various SDKs and
documentation are designed for a wide audience, from those who have never
programmed before to those who have professionally programmed for years.
Therefore, there is plenty of documentation designed to get a new user with
no experience up and running, as well as low-level, technical documentation,
and everything in between. Apparently, as you are a new user of the
technology, you have not had the opportunity to dig deeply into it, and have
been looking at the beginner stuff.
It is up to the individual to self-educate and dig more deeply into the
technical details; it is not the responsibility of the documentation.
Microsoft has always created documentation that included "Getting Started"
types of articles designed to help new programmers get started without
getting entirely frustrated. This is commendable, especially when one
considers the sheer technical depth of technologies like the .Net Platform
and ASP.Net.
On the other hand, try downloading and installing the entire MSDN Library
some time. It is perhaps a half-dozen gigabytes of mostly HTML text in size.
The "Getting Started" and beginner-level stuff is just the tip of the
iceberg. You sound like you want to plumb the depths of it. That's a good
thing. But jumping to conclusions without knowledge does not make one a good
programmer.
--
HTH,
Kevin Spencer
Microsoft MVP
Printing Components, Email Components,
FTP Client Classes, Enhanced Data Controls, much more.
DSI PrintManager, Miradyne Component Libraries:
http://www.miradyne.net