| This 50 message thread spans 2 pages: 50 (  2 ) > > || |
|ASP.NET Pros and Cons|
Making the transition from Classic ASP to .NET
Yikes! What did I get myself into? I decided a little while back to build a .NET ecommerce application for one of my clients. What I've seen so far has impressed me "visually" and "functionally".
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!
Asp.net is remarkabley supperior to ASP classic in just about every way , IMHO :-)
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 :-)
There's a lot more 'under the hood' with ASP.NET but I agree it's pretty scary. The reason it's scary is because there's a lot more to not understand.
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!
Asp.Net does have a bit of a learning curve, which can be a lot depending on your background.
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.
|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. ;)
.net is a framework, one that permits all the various coding languages sponsored by microsoft to essentially generate the same code,
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.
I'm in the middle of changing over to ASP.NET. I tried once six months ago, gave up, and now am doing it out of necessity since ASP doesn't have some features that I need now.
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...
Just an opinion, but the Best Microsoft product for editing websites, including ASp websites, is Frontpage 2003 , or its successors, 2 new products whose names I dunno.
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 did the upskill to ASP.NET & VB.NET early in the new year, theres so much thats changed, even on the courses we had to understand 2.0, 2.1 and for web services big changes coming in 3.0.
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.
If you're a consultant working per project and your goal is to snap together pieces as quickly as possible, .net and j2ee are inferior products to php and asp. If you're looking to do significant product development and need more control rather than just snapping pieces together for a standard website, .net and j2ee are superior.
There's a correct tool for every job. :)
In the past year, I've installed .net 2.0 twice and removed it twice.
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.
".NET is not for HTML ego-maniacs."
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.
I guess folk should use whatever they are most comfortable with, if it will do the deed.
Over the past few years I have used asp.net to program SEO websites/webapps. The webforms model of programming doesn't deliver the html output I want for important seo pages. On those pages I think asp.net should be programmed without making use of the webforms-model. This is perfectly possible within asp.net. Webforms are good for forms, quick demos and admin pages.
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)
If I asked you what programming language you prefer, I might as well ask what toppings you like on your pizza. If I go on to ask why, you will no doubt tell me that italian sausage and onions are so much better than ham, mushrooms and olives (my weapon of choice) :o)
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)
Just a little advice...take it as an opinion.
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.
There are some .NET SEO 'gotchas'. Pretty much all of them can be overcome, but on the top of my list: (from my experience on a few eCommerce sites)
- 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.
rewriting urls in asp.net is very easy actually.
and as for all the HTML issues, just stay away from the built in controls and produce your own HTML.
pageoneresults, I feel your pain.
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.
Funny how threads appear at just the right time...
Today, I took on a client that had his site developed in DotNetNuke. What a pain in the butt for a 90 page site.
|and as for all the HTML issues, just stay away from the built in controls and produce your own HTML. |
Exactly the cure.
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.
There's a much easier way to change the title on child pages, like this:
<%@ Page Language="VB" MasterPageFile="~/mymaster.master" Title="This is a child page :o)" %>
:) Which works great if you have a totally static site, but if you have dynamic pages and you want to set the title programmatically, you're out of luck there. You're going to get the:
This is the title
with that way.
You classic ASP guys remind me of the COBOL programmers that we have here for our legacy systems. Sure, COBOL & Classic ASP will be around forever, but I personally wouldn't want to be stuck doing your work.
Actually take some time to learn object oriented/event driven programming and you'll have an easier time learning .Net.
Well actually, I do know COBOL. Not as well as I used to, but still ...
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 :)
Actually, I think the object oriented vs procedural programming thing is a big issue for people coming to asp.net or the .net framework as a whole from the procedural languages like c, asp/vbscript.
It does require, i think, a deliberate attempt to step into it
| This 50 message thread spans 2 pages: 50 (  2 ) > > |