Welcome to WebmasterWorld Guest from 126.96.36.199
Forum Moderators: ocean10000
What I've seen behind the scenes scares the hell out of me! I've never seen so much code in my life. Well, I have, but it was usually generated by a WYSIWYG program in the wrong hands.
Based on what I've gone through over the past few months, I'm not too certain I'll take the .NET route again. Not unless every single issue I've presented to the developers can be addressed. They've been able to address some of them, but others are not as easy to fix due to the way .NET works.
.NET is a programmers paradise.
.NET is an SEOs nightmare!
I coded my applications initially in ASp 3.0, but had a look at ASp.net initially because of the "pre compiled" dlls feature which enables you to keep code fairly,, private
After playing with it for 1 week, I decided to spend 3 months recoding everything in asp.net, alas I actually needed 7 months including testing, but boy, was it worth it.
Actually, ASP.3.0 code remains useful because of certain Hosting related issues
As for SEO, well, actually I find .net better for SEO, and recent results in Google SERPs have me smiling, still early stages, many more keyword phrases to hunt for :-)
I come from a ColdFusion background. From what I've gathered CF is like driving a well priced, medium size car around - it does what it's supposed to, and if you want to fiddle around under the bonnet you can confidently. ASP.NET is more like a new Mercedes. It goes faster, looks swisher, but if you want anything fixed or tweaked and it's not in the manual, you'd better take it to a specialist mechanic!
What type of issues are you running into? Maybe we can provide some pointers how to either fix or at very least work around the issues.
One issue that they've not been able to work out for me are breaks in the <title> element. I end up with this...
Page title here.
I know, that one is minor, but its one of those things that bug me. I don't like wrapping elements like that.
IDs are out of hand with 40, 50 and upwards of 80 characters sometimes.
.NET generates upper and lower case attribute names. I use all lower case.
All pages are wrapped in <form> elements. Opening <form> right after the <body> and closing </form> right before the closing </body> element.
Attribute names are also out of hand with 50+ characters...
Also, .NET generates a lot of different elements that are set to Visible="False". Those elements take up white space in the source. When I view some pages at the browser, there might be 15 lines of white space between html elements. I like my code left justified and no white space.
I've now got to sit there and figure out what can be moved onto one line to make my source look the way I've been doing it for years with classic ASP. All that white space drives me up a wall. ;)
What yo're decribing , to me sounds more like what has been generated by the package you're using for coding, it doesn't sound like frontpage 2003 which i use, so is it visual studio? or something else,
ASP.net generates Html, I wonder if your issues are not more related to the templates being used by your package
Okay, I'll confess I haven't moved to asp.net 2.0 or 3.0 but, looking at 1.1 an some of the 2.0 I have used, some of your issues are not intrinsicly asp.2.0 issues, rather template issues which can be edited , usually
then again, 2.0 may have changed things somewhat
What you're describing to me sounds more like what has been generated by the package you're using for coding, it doesn't sound like frontpage 2003 which i use, so is it visual studio? or something else.
They are using Visual Studio Pro. My understanding is that is pretty much the default editor for .NET?
I'm using Expression Web for editing this particular site. Works like a charm.
My advice? Take it step by step. Code it in Visual Basic in a format that is as close to ASP as you are allowed. Once you get it working like that, you can start making improvements and changes, putting more sections in subroutines, and using StringBuilder.
(Personally, I still don't get why I would want to abstract away from good ol' HTML with all those "controls" that ASP.NET seems so interested in.)
Now if I can only get these ASP.NET pages to deliver a web page as fast as ASP can...
Simply put, I think Frontpage Html is cleaner an better optimised than VS.
However, if you're using dlls, and want to visually place controls, the frontpage is not so help full, but if like me you're happy to manually place controls an transfer dlls, frontpage is the one to use.
(Personally, I still don't get why I would want to abstract away from good ol' HTML with all those "controls" that ASP.NET seems so interested in.)
The main reason for using the controls is that is allows the output to be changed based on the browser abilities. For example a IE vs Firefox differences, the html maybe changed/altered to switch html to suite the different browsers to accomplish the goals of the control. To see samples, of what can be done using controls, read this white paper on asp.net ASP.NET 2.0 CSS Friendly Control Adapters [asp.net]
If you are only using string builder you are giving up all those ability, and have to hope you make no coding mistakes when building the html that will effect the page. I know its sometimes easier to it this way for a quick and dirty conversion, but you are giving up one of the main strengths of asp.net.
You're going to have to excuse the following, as it's a "for lack of better terms" statement, and not an attack.
.NET is not for HTML ego-maniacs. You are obviously set in your HTML formatting ways, and you've now ventured into a world where your "this is how I do things" attitude can, frankly, go to hell (in .NET's eyes).
.NET's framework is not about making pretty HTML (obviously) the way you've always dreamed it to be, it's about making web based applications run efficiently and smoothly; you'll see that with the more knowledge and experience you gain.
I definitely encourage you to keep plugging away with .NET, and you'll learn nice tips and tricks along the way on how to better satisfy your needs. You're just going to have to accept the fact that things aren't what they used to be, in regards to other things.
You're just going to have to accept the fact that things aren't what they used to be, in regards to other things.
I'm always willing to learn something new. And, I'm being forced to do so in this instance. ;)
For the last 48 hours, I've had someone tutoring me on each and every element that is being used with this new site. We're walking through the pages via our editors and also viewing source at the browser. It amazes me how much freakin' white space is generated when putting each element on a line by itself. I'm just not used to the sloppy looking real estate while viewing source. I'm on a mission to correct that.
What I'm seeing is a combination of VS Pro and .NET generated code. I can address the basic html elements, attributes, etc. The difficult part is deciphering the supporting pages that provide the functionality. All the UserControls, etc.
As I said above, I'm definitely impressed with functionality. I just need to learn, understand and be able to work with the code that is generating the final product.
Also keep in mind, that we are validating to an XHTML 1.0 Strict and/or Transitional DOCTYPE. In addition to that, we also pass WAI Level A Conformance. Those were my two immediate goals. I've not seen too many ASP.NET sites that can stake that claim. We still have pages to clean up, but working through them one at a time from top to bottom has helped me to understand the code being generated and how to reformat it to my standards/guidelines.
The programmers aren't real jazzed that I've reformatted the code but it is not their decision. Once they are finished doing their thing, the page(s) come to me for styling, formatting, validation, etc. If they need to make changes after the fact, they just edit the existing pages and don't mess with the formatting of my code. Yes, its all about me in this instance. ;)
I havent understood the benefits from a comercial perspective at all, it seems to add a lot of costs and time to average e-commerce / SEO projects and delivers no extra benefits.
Also for big integration projects, that would typically be seen as ideal .NET domain, I doint get it? I interface with .NET systems using classic ASP by making XML/SOAP calls just fine.
There's a correct tool for every job. :)
It just seems so laden with stuff that it makes not sense to me at all.
The ideal for me would be something that runs loadable binary libraries written in plain old C. Not C++, C.
So far, isapi and http filters/services are the only way to do this.
The http services look real interesting, but I have an affinity for IIS 5.0.
So, it's isapi and jscript/asp for me in the meantime.
I know what you're saying but I know I'd be leaving SEO value on the table if I didn't have absolute control over the HTML output by my code. The spiders are the ego-maniacs and they reward me well if I pander to their egos.
I took over an ASP site about 4 years ago. After a year I looked at .NET but then rebuilt the entire thing in PHP. Best thing I ever did. I don't want to start an ASP/PHP war. I come from a Perl background and PHP was easy for me. Apache mod_php is the way most people use PHP so that's what I use (rather than PHP in an IIS/ASP env). I love the ability to throw together something very quickly when I need to, but then to build solid applications when I can. My tech team is very small, so we can afford to work with a less structured environment.
On the good side of .net: very fast programming environment (VS), nice programming language (c#), easy and powerfull url-rewriting, very good webservice and soap interfacing, fast because of pre-compilation (especially when not making use of webforms)
We all have our preferences. There are people on each camp, who want to make you believe that the language you chose is substandard. .NET is a fine programming environment. Since it comes from MS, it automatically gets tagged by the open source, "we want free software" crowd. There is no shortage of MS haters.
As far as I'm concerned, I want to make my life as easy as possible. .NET has helped me, and many others, to do just that. Sure, it has it's quirks, but it is also very flexible. If you are an HTML guru, who needs to generate perfect code, or else reach dangerously high blood pressure levels, there are options for you. True, it's a bit more involved, but you can generate your own HTML, if need be (e.g. custom controls).
.NET opened the door for many people to design dynamic websites. It's always trying to incorporate new technologies. AJAX, which is no doubt the future of the web, received its very own framework under .NET. It's still a bit shaky and difficult to work with, but a heck of a lot easier than writing your own AJAX logic from scratch.
Really, one needs to look at all options with an unbiased mind. If you're coming from a Perl background, by all means, go with PHP. It's not going anywhere. If you dabbled in C++, give C# a try. Want to learn a few cool tricks in a short amount of time? Start learning VB.NET.
It was fun when I started to learn .NET. I just started to play around with ASP and I immediately switched over to .NET. Pulling data from a database and have it displayed neatly in a table with less than 10 lines of code? I enjoy that.
Now, I'm running a newspaper site that basically updates itself. My bosses are always amazed at how quickly I can make changes. I'm sure I could do the same with PHP, or ColdFusion. I just made a choice :o)
If you think .NET is too hard or its not formatting things for SEO the way you need it to then stop using it. I don't understand it in depth the way I should but I know that SEOing from 2.0 on has become basically a non issue...e.g. removing whitespace...reducing the size of page downloads...all are a non issue. CSS is beautifully integrated as well...yes there are a few Microsoft specific issues that need to be addressed but they are getting much closer with "3.5" in the area of AJAX (no 3.5 is not released).
I agree with people who say you should be using Expressions or FrontPage if you think .NET is the issue. Simply put I switched from ASP to Java to .NET... .NET is far superior for speed/$ unless you are running perl or php on Linux.
Good luck to all...without understanding CLR basics you won't be able to see the benefit. Code is code and unfortunately even most of the BSs handed out in Comp. Sci. these days don't teach enough.
- Postback for links/images.
Postback is a developers dream - click on a link and it goes straight to your executing code, with all the state (via 'ViewState') that you had when you generated the link.
I inherited a project that used PostBacks for all the pagers on the site, which really limited its spider friendlyness.
- Nice URLs.
ASP.NET wants a physical file behind everything, so its very tempting to do pages like [site.com...] Doing nice URLs that have the product titles are reasonably difficult, especially since you don't have the ability to do mod_rewrite niceness.
There are addons that solve this (ISAPIRewrite basically IS mod_rewrite) and ways of doing Rewriting right in .NET, but it is definitely an advanced topic.
That and all the nasty IDs and ViewState just add bloat. I've cut page sizes down by 40% just by turning off viewstate and removing the unnecessary ID tags generated by .NET.
All in all its a good language for developers, but SEO, like in any language, requires special attention.
We have a huge portal running on a box in classic ASP together with a .NET eCommerce store. Portal has 10 times users as the store, and only uses 10% of server resources. eCommerce however is occasionally make CPU go bonkers. And this is after an extensive rewrite and tweaking.
In our experience, .NET is a great tool if you know exactly what you are doing. Unfortunately, I myself haven't met these people...err...maybe one - that guy in Canada with dating site. Generally speaking, what I see is people pushing business logic down into stored procedures, or make pages cache - this is the only 2 ways I found where .NET can outrun classic asp - and that is obviously not a core .NET doing it :-)
so if you build a complex modern web app, you better have done simple sites in .NET before under a load, done for SEO and with HTML tweaking. Do small steps, and then move to bigger things. otherwise constant rework will kill over a golden "rapid development" goose.
and as for all the HTML issues, just stay away from the built in controls and produce your own HTML.
This is the title
Are you setting the title dynamically in a master page using something like:
<title id="pageTitle" runat="server">this is the title</title>
Because if you are, that's what's causing the line breaks, it happened to me too.
I cured it by just replacing it with:
<asp:Literal id="pageTitle" runat="server" />
and then I have a function for it:
Public Property titleText() As String
Set(ByVal value As String)
pageTitle.Text = "<title>" & value & "</title>"
and whoola, no more carriage returns, plus you can set the title MUCH easier from your child pages.
I use this for dynamic meta keywords tag and the description tag.
Actually take some time to learn object oriented/event driven programming and you'll have an easier time learning .Net.
Procedural will punch out the lights over object oriented every time.
It's not the procedural versus object oriented that is the problem in .net, it is the huge amount of cruft behind the scenes. I mean c'mon a 50MB+ framework? I have had installations of NT4 that were way smaller than this.
Still waiting for a 64bit mult-tasking version of DOS :)