Okay, I watched the first Visual Web Developer (VWD)
video. Questions for anyone out of the first grade
with this stuff; four questions:
(1) I'm building a Web site where the server side
code is in Visual Basic .NET with use of classes
from the .NET Framework and also from ASP.NET and
ADO.NET, but as far as I know I'm not using the
'framework' of 'model, view, controller' (MVC) and,
so far, see no such need. What's the big deal of
MVC?
That is, the code for one of my Web pages has
standard, 'reserved named', ASP.NET 'event handlers'
Sub Page_Init
Sub Page_Load
Sub Page_PreRender
Sub Page_Unload
So, when I need to do something, say, with SQL
Server database or communicate with a server in my
'server farm', e.g., my session state server and two
more I have, I just write a function in the code of
the Web page and call it from an appropriate one of
those standard ASP.NET event handlers.
Question 1: I see nothing wrong with this approach
to 'code organization' and, thus, am missing the
big deal of MVC. What the heck am I missing about
the value of MVC?
(2) [Long question] What am I missing on The video
explained how the VWD 'integrated development
environment' (IDE) is easier to use as something to
type into than Microsoft's Notepad. It's also
easier to use than a sharp stick on a wet clay
tablet!
But I don't type into Notepad and, instead, use my
favorite programmable editor I've used for
essentially all my typing for some decades, KEdit.
That editor is a PC version of IBM's mainframe
editor XEDIT, and the macro language is Mike
Cowlishaw's elegant Rexx.
From all I can see writing code, KEdit looks much
better than Visual Studio, especially since my
project 'folder' is really simple and easy to
understand and since I get to write macros to
automate some work whenever helpful. The times I
looked at all the files Visual Studio creates for a
'project'; they were a lot to understand; I didn't
understand them; and I fear that in case there were
problems I would have to understand them. Bummer.
E.g., here's a variable: What is its type, that is,
where is its Visual Basic (VB) Dim statement, and
what is the scope of the variable, i.g., where the
heck was it declared? Where else have I used this
variable?
My guess would be that any good, programmable editor
could be as powerful as KEdit or better -- Emacs
anyone?
E.g., some of my comments are really 'code section
delimiters' recognized by some of my KEdit macros
and, this way, I can get some easy views of the
overall organization of my code, e.g., for scope of
names.
E.g., my most recent nice KEdit macro is BEIDC for
'begin, end insert dated comment'. So, I get, say
' BEGIN Modified at 11:31:29 on Monday, February 17th, 2014.
' END Modified at 11:31:29 on Monday, February 17th, 2014.
and then type code and comments between these two.
Another macro lets me see all lines with, say, the
fourth token on one of those two lines, and that
operation is sufficient for me, given one of those
two comments, to move to just where the other one
is.
And I have macros that make use of KEdit's 'point'
facility that lets me give names to 'pointers' to
particular lines. One macros shows me all such
'pointers' and saves them to a file for loading,
say, the next day. So, with these pointers, I can
jump around in a file quickly. So, maybe the code I
am writing needs to draw from three other places in
my file; so have four such 'line pointers'. Works
well, and a dozen more lines of macro code can make
it work better.
For 'Intellisense', from all I can see and saw in
the VWD video, no thanks: For the classes in the
.NET Framework, there are some thousands, my guess,
20,000+, Web pages of documentation at Microsoft's
MSDN Web site. So, before I use a .NET class I
download the relevant Web pages of documentation
from MSDN and, for each such Web page, make a little
abstract. I put the abstract in one of four simple
text files (one file for each of Windows, VB,
TCP/IP, etc., and SQL Server) I maintain with KEdit.
Currently I have 5000+ such Web pages and abstracts
and can find relevant documentation quickly just by
using the KEdit search tools on the text files with
the abstracts -- each abstract has both the URL of
the Web page at MSDN and also the tree name of the
Web page on my hard disk.
In my code, for crucial such Web pages, I put a VB
comment with the title of the Web page and the tree
name on my hard disk of my downloaded copy of the
Web page. Then in my editor, one keystroke displays
the Web page. So, if I want to check something in
the documentation, it's one or a few keystrokes in
my editor, and, then, I get the relevant Web page
with essentially the most detailed documentation
Microsoft has. Also relevant is my earlier code
with tested uses of that .NET class; the way my work
is organized makes it easy for me to find such code.
Of course, I also have files of notes, old programs,
and old test programs and can also have the
corresponding tree names in my comments. I'm not
getting just why, net, in practice, 'Intellisense'
is better or as good.
My code is just awash in comments at various levels,
much like writing a technical paper: For me, when I
return to some code six months later, those comments
are a great advantage. But writing those comments
makes good usage of the power of KEdit, my macros,
and even my usual spell checker -- with Visual
Studio Web Developer I'd miss such functionality.
I do not like the way Visual Studio uses the screen
and makes use of many small windows. Instead, I
just use the window management facilities of
Windows. Typically I have a dozen+ windows on my
screen, and I keep them organized partly with some
code triggered by one icon in the UL corner of the
screen; then all the windows maintain their Z-order
but are arranged so that the UL corner of each
window is equally spaced on a line from the top
center or so of the screen to the left center. Then
at least a little of each window is visible, and I
can see all of any window easily from just a slight
change in the Z-order without moving any of the
windows.
Net, the video made Visual Web Developer look like
a big step down from just my usage of a good
text editor.
Question 2: What am I missing on why VWD and
Intellisense are better than what I'm already doing?
(3) Hearing the title Visual Web Developer, I
guessed that the software was a way to position
'controls' on a screen, set values for relevant HTML
and CSS attributes, e.g., fonts, colors, borders,
and then have the ASP.NET code for those controls
written automatically or some such.
As it is, if I have a complicated Web page to lay
out, 'design', then I use, say, Microsoft's
PhotoDraw to decide what the page should look like.
Question 3: Are there better tools for designing
Web pages than just something like PhotoDraw? What
are they? Are there tools that would take such a
graphical design and generate the corresponding
ASP.NET class instances and class method
invocations? What are such tools? Are they
actually helpful, worthwhile?
(4) The VWD video was writing JavaScript to generate
a text box. Curious. What's the point here? While
Microsoft's ASP.NET has written some JavaScript for
me, so far I have yet to write a single line of it
and see no need to.
My guess is that the JavaScript, running in the
client's browser, adds the text box to the 'document
object model' (DOM) at the client.
Question 4: Is this so? Or is the point that the
JavaScript code actually runs on the server and
generates the HTML and CSS 'mark up' on the server
and does not send that JavaScript code to the
client?
Assuming these are genuine and not the world's longest rhetorical questions:
1) There is nothing wrong with your approach. There is nothing that can be done using ASP.NET MVC that cannot be done with the ASP.NET Webforms pattern (I'm not sure if there is a generic term for the single-file pattern that classic ASP, JSP, AOLServer, etc use). You are smart and working alone, and quite likely the innovations in your application will not be made in the way in which you concatenate strings to generate HTML.
2) Again, you are not missing anything by using your years of experience with KEdit and Rexx, except possibly a job working on internal HR applications at an insurance company. Intellisense and VWD are tools designed for programmers with a range of experience to be productive enough so as not to be a net loss for their team. I make websites with ASP.NET MVC and use Visual Studio to do it. Would I consider KEdit? Probably not--I lack your experience with KEdit, and when I want to deal exclusively with text I use Emacs. And why use intellisense? Your method of creating abstracts for the .NET class library is a great one, and one that a lot of people could learn from. But that is not reality in the everyday .NET development world. Intellisense allows those developers to navigate both the .NET libraries and their teammates' ad-hoc classes.
3) I'll pass--I didn't watch the video.
4) Almost certainly the text box was generated as an example. It's possible that most sites using javascript nowadays do so only because yet other sites use javascript. But where javascript is used well it is indispensable. Part of the original appeal of both Google Maps and Gmail was the pleasant user interface enabled with javascript. If your site is a means to an end and the users are willing to put a lot of effort into the result--say, as an extreme example, a form that takes some account information and literally gives the user money--there is little you could gain from javascript. But if you want to do what you can to make a user's experience a pleasant or even delightful one, javascript is frequently the best way to achieve that.
No, the questions are not just rhetorical
and, instead, are fully real for me.
Yes, so far, at least for my version 1.0
live site (soon, soon, soon!), it seems
to me that my simple HTML and CSS without
any JavaScript from me will provide a good
enough 'user interface' with a good enough
'user experience'. One advantage of my
approach: It's dirt simple for the user.
Yes, the user interface of Google Maps
is astounding, but I did have to download
and enable a Firefox plug-in. I recently
used Google Maps to find the house I
grew up in, the house of my high school
girlfriend, the house of my wife's family,
my current house, etc. Amazing work.
My Web site needs nothing like that.
So, my site has nothing that pops up,
pulls down, or jumps around.
The Google home page was long very simple --
just type into a 'text box' and hit enter
and get back some pages of links with
some short descriptions. Now, of course,
apparently each keystroke into the text
box goes back to a Google server which
does amazing things and updates the screen,
sometimes once for each keystroke --
nice programming, timing, etc., but it
will be a long time until my Web site
needs such nice refinement.
You can right click any file in Solution Explorer and choose Open With KEdit. Visual studio will recognize the change and if the file is open ask you to reload.
At some points I guessed that it was
easier for me to develop what I wanted
using KEdit and its macro language
than just to find how to do the same
things from the Visual Studio documentation.
(1) I'm building a Web site where the server side code is in Visual Basic .NET with use of classes from the .NET Framework and also from ASP.NET and ADO.NET, but as far as I know I'm not using the 'framework' of 'model, view, controller' (MVC) and, so far, see no such need. What's the big deal of MVC?
That is, the code for one of my Web pages has standard, 'reserved named', ASP.NET 'event handlers'
So, when I need to do something, say, with SQL Server database or communicate with a server in my 'server farm', e.g., my session state server and two more I have, I just write a function in the code of the Web page and call it from an appropriate one of those standard ASP.NET event handlers.Question 1: I see nothing wrong with this approach to 'code organization' and, thus, am missing the big deal of MVC. What the heck am I missing about the value of MVC?
(2) [Long question] What am I missing on The video explained how the VWD 'integrated development environment' (IDE) is easier to use as something to type into than Microsoft's Notepad. It's also easier to use than a sharp stick on a wet clay tablet!
But I don't type into Notepad and, instead, use my favorite programmable editor I've used for essentially all my typing for some decades, KEdit. That editor is a PC version of IBM's mainframe editor XEDIT, and the macro language is Mike Cowlishaw's elegant Rexx.
From all I can see writing code, KEdit looks much better than Visual Studio, especially since my project 'folder' is really simple and easy to understand and since I get to write macros to automate some work whenever helpful. The times I looked at all the files Visual Studio creates for a 'project'; they were a lot to understand; I didn't understand them; and I fear that in case there were problems I would have to understand them. Bummer.
E.g., here's a variable: What is its type, that is, where is its Visual Basic (VB) Dim statement, and what is the scope of the variable, i.g., where the heck was it declared? Where else have I used this variable?
My guess would be that any good, programmable editor could be as powerful as KEdit or better -- Emacs anyone?
E.g., some of my comments are really 'code section delimiters' recognized by some of my KEdit macros and, this way, I can get some easy views of the overall organization of my code, e.g., for scope of names.
E.g., my most recent nice KEdit macro is BEIDC for 'begin, end insert dated comment'. So, I get, say
and then type code and comments between these two. Another macro lets me see all lines with, say, the fourth token on one of those two lines, and that operation is sufficient for me, given one of those two comments, to move to just where the other one is.And I have macros that make use of KEdit's 'point' facility that lets me give names to 'pointers' to particular lines. One macros shows me all such 'pointers' and saves them to a file for loading, say, the next day. So, with these pointers, I can jump around in a file quickly. So, maybe the code I am writing needs to draw from three other places in my file; so have four such 'line pointers'. Works well, and a dozen more lines of macro code can make it work better.
For 'Intellisense', from all I can see and saw in the VWD video, no thanks: For the classes in the .NET Framework, there are some thousands, my guess, 20,000+, Web pages of documentation at Microsoft's MSDN Web site. So, before I use a .NET class I download the relevant Web pages of documentation from MSDN and, for each such Web page, make a little abstract. I put the abstract in one of four simple text files (one file for each of Windows, VB, TCP/IP, etc., and SQL Server) I maintain with KEdit. Currently I have 5000+ such Web pages and abstracts and can find relevant documentation quickly just by using the KEdit search tools on the text files with the abstracts -- each abstract has both the URL of the Web page at MSDN and also the tree name of the Web page on my hard disk.
In my code, for crucial such Web pages, I put a VB comment with the title of the Web page and the tree name on my hard disk of my downloaded copy of the Web page. Then in my editor, one keystroke displays the Web page. So, if I want to check something in the documentation, it's one or a few keystrokes in my editor, and, then, I get the relevant Web page with essentially the most detailed documentation Microsoft has. Also relevant is my earlier code with tested uses of that .NET class; the way my work is organized makes it easy for me to find such code. Of course, I also have files of notes, old programs, and old test programs and can also have the corresponding tree names in my comments. I'm not getting just why, net, in practice, 'Intellisense' is better or as good.
My code is just awash in comments at various levels, much like writing a technical paper: For me, when I return to some code six months later, those comments are a great advantage. But writing those comments makes good usage of the power of KEdit, my macros, and even my usual spell checker -- with Visual Studio Web Developer I'd miss such functionality.
I do not like the way Visual Studio uses the screen and makes use of many small windows. Instead, I just use the window management facilities of Windows. Typically I have a dozen+ windows on my screen, and I keep them organized partly with some code triggered by one icon in the UL corner of the screen; then all the windows maintain their Z-order but are arranged so that the UL corner of each window is equally spaced on a line from the top center or so of the screen to the left center. Then at least a little of each window is visible, and I can see all of any window easily from just a slight change in the Z-order without moving any of the windows.
Net, the video made Visual Web Developer look like a big step down from just my usage of a good text editor.
Question 2: What am I missing on why VWD and Intellisense are better than what I'm already doing?
(3) Hearing the title Visual Web Developer, I guessed that the software was a way to position 'controls' on a screen, set values for relevant HTML and CSS attributes, e.g., fonts, colors, borders, and then have the ASP.NET code for those controls written automatically or some such.
As it is, if I have a complicated Web page to lay out, 'design', then I use, say, Microsoft's PhotoDraw to decide what the page should look like.
Question 3: Are there better tools for designing Web pages than just something like PhotoDraw? What are they? Are there tools that would take such a graphical design and generate the corresponding ASP.NET class instances and class method invocations? What are such tools? Are they actually helpful, worthwhile?
(4) The VWD video was writing JavaScript to generate a text box. Curious. What's the point here? While Microsoft's ASP.NET has written some JavaScript for me, so far I have yet to write a single line of it and see no need to.
My guess is that the JavaScript, running in the client's browser, adds the text box to the 'document object model' (DOM) at the client.
Question 4: Is this so? Or is the point that the JavaScript code actually runs on the server and generates the HTML and CSS 'mark up' on the server and does not send that JavaScript code to the client?