Do Microsoft regularly update the Browser Definition files? - asp.net

I've been getting up to speed with MVC4 and custom display modes. All looks excellent, however, assuming I'm right in thinking the Request.Browser.IsMobileDevice is based upon C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers - does anybody know if Microsoft regularly update these (ie each time there is an update for .NET 4.0 from Windows Update) ?
At a high level, Request.Browser.IsMobileDevice is very useful. Alternatives are (other than custom display modes) such things as WURFL - but can be much more resource-intensive, and WURFL certainly add's about 2.5 seconds to the app startup time.
If anybody has any idea of the answer to this, or whether there is any sort of project which has custom / regularly updated browser definitions, I'd really appreciate it. Thanks.

You really should consider responsive webpage design instead.
Relying on MS to update definition files is ludicrous with so many new devices appearing on the market each year. We made this mistake a number of years ago an quickly realized it is unmaintainable.
Have a look at twitter boostrap instead:
http://twitter.github.com/bootstrap/
It's such a fantastic framework for UI and really worth exploring.
Once you get into the responsive design way of thinking you never go back - really is the future of web UI.

Related

Is there any way to optimise/configure QtWebKit to increase JavaScript/rendering performance?

We're creating a Qt app which is basically a QtWebKit window for viewing a web application. The web application's frontend is written in ExtJS and it is running very slowly in some parts (e.g. some screens with multiple grids or complex layouts). My question is: is there a way of configuring the Qt app to make increase the performance of its JavaScript/rendering engine?
Thanks!
There is no way to tune webkit, so you can't tune it from Qt, either. But that doesn't mean you can't do anything. Here is a checklist of things you can try:
Make sure the performance is actually lost in the place where you think by measuring it with a profiler. I'm wrong 90% of the time when guessing what causes bad performance problems. Have a look at how many reputation I have and then think hard whether you are really sure you can do better :-)
If a profiler isn't an option, add timing information to the code.
Is it also slow in a normal web browser? If so, try to improve the JavaScript code. There are tools to run/profile that as well. Some are even built into your web browser.
Consider implementing part of the UI without ExtJS (and the overhead it brings along). Do you really need a full-fleshed out grid to display static data that can't be sorted? Maybe a plain HTML table will do.
Try a newer version of Qt. 5 just came out and it contains a more recent version of webkit.

Is Coolite worth using in a medium-big project?

I'm planning to start a web based stock and current managament project.
I want app to be Ajax but I don't want to spend my time for client-side code.
Thus, I think to use coolite for my presentation layer.
However, before starting project I want to hear some advices about it.
Is it worth using in a big project and do you have any other advice about this issue?
This would be much better asked on the Coolite forums where you'll hear from actual users of the framework rather than people who will just knock it because it's not jQuery (sigh). IMHO, it is a pretty solid framework -- however, I've never used it in a production app. You really should spend some time evaluating it yourself -- take a day and mess around with their samples and see if you can build something simple. Ultimately only you can decide if it will work for your needs.
I'm yet to come across a javascript to asp net framework that isn't full of bugs. I'm in the process of an application rewrite and I'm ripping out the ajax frameworks and just using jquery.
I've found it simple to code, fast to run and easy to bug fix.
I can't comment on Coolite, but for my 10c I'd suggest just learning jQuery.
Way back when Coolite first came out I tried it and wasn't impressed and it ties you down somewhat so I just use Ext with .NET pure, a bit more work but will save you in the long run I think and keep you flexible to changes in both frameworks.

Another "is ASP.NET MVC right for me?" question

Here's my particular situation...
I have a decent amount of experience with webforms, and I must say, a lot of it has been pretty frustrating. I like that there are lots of built-in controls, but then I discover that they don't quite do what I want, out of the box. I end up rolling my own controls (that inherit from the built-in controls), such as GridViewThatCanSortItself or GridViewThatHasASelectionColumn (these may not have been the actual names, but you get the idea). I've often wondered, while struggling mightily to build such classes, whether figuring out the often convoluted event model was worth it. My attempts to use css to style things have been frustrating as well. There are some ASP.NET controls that will result in one html tag for one set of attributes and a different tag with another set of attributes. You don't realize this until you notice your css only works half the time.
So, my brain starts to wonder, could ASP.NET MVC be the answer? Reading some of the posts on SO has basically given me the impression that, while webforms definitely has its issues, I'd only be trading one set of problems for another. It even seems like Microsoft is trying to talk me out of it:
Quote from the asp.net site (http://www.asp.net/learn/mvc/tutorial-01-cs.aspx)
ASP.NET MVC...works well for Web applications that are supported by large teams of developers and Web designers who need a high degree of control over the application behavior.
That is really not me. Most of my projects are relatively small, and I'm usually the only programmer. I sometimes need to create very custom or unusual UI's, but I definitely don't have a team of programmers who can build components for me.
There is also the issue of javascript. I have a definite working knowledge of html and css, but I can't say the same for javascript. As clumsy and bloated as they are, I've been able to do some smooth enough looking things with UpdatePanels. I'm not sure how much time I'd need to spend just learning the javascript to be able to handle even simple AJAX scenarios in ASP.NET MVC.
I'm about to start working on a relatively simple and small web app, so now would be the time to take the plunge if I'm going to take the plunge. This app will use a SQL Server Express (2005 or 2008) back-end, and I'm thinking of also trying out SqlMetal as an ORM solution. So, that's already one thing I'm going to have to learn, although I at least have experience with--and really like--LinqToXml and LinqToObject. The pages of the web app will have some data grids (some with link columns), input boxes, labels, drop-down lists, check boxes, radio buttons, and submit/action buttons. I don't foresee anything more complicated than that. There will be about six or seven pages total.
Questions:
Given my experience, how painful will it be to learn ASP.NET MVC? Will it be worth it?
I've read some earlier questions comparing webforms to MVC, so I'm curious, How has MVC evolved over the past year or so? Is there anything new that would make the learning curve less steep?
Do I literally have to write code to generate all html by hand or are there code/libraries readily available in the community to assist with the process? (I know I read something about "html helpers"--that may be what I'm asking about here.)
Any other advice?
Update
Another question that occurred to me: Is the transition from ASP.NET webforms to MVC anything like going from standard WPF (using code-behind) to MVVM? I found learning WPF itself to be pretty challenging (and I still couldn't say I really get everything about it), but learning to work with WPF using the MVVM pattern was a relatively painless transition. So, I'm wondering how similar a jump it is to go from webforms to ASP.NET MVC.
My advice is to work through the Nerd Dinner Tutorial from the first chapter of Professional ASP.NET MVC (and then buy the whole book, it's great) to get a feel for how it fits together and how it works for you. This covers most of what you are concerned about above.
You will have to get your hands dirty with regards working with raw HTML but this is no way near as terrifying as it may sound. Especially as you're having issues where Web Forms takes control.
Yes, Asp.Net Mvc might be a solution for your problems.
I would highly recommend you not to rush
(without better knowledge you will end up at disappointment).
But in either way - it definitely be worth it. You will learn a lot.
Start with bunch of sample applications while reading some books (start with Sanderson`s, continue with Mvc In Action). Familiarize yourself with asp.net mvc. It demands different way of thinking about web development you are likely used to. And don't be afraid of 3rd party tools - get used to them because asp.net mvc does not focus on 'ready 2 drop through designer and use' solutions and lack of super cool and shiny (with awful js/html underneath) controls at start really frightens.
After few weeks of playing around with it - you will actually be able to answer this question yourself.
And that's the one and only answer that's worth something.
Personally - i prefer asp.net mvc framework and don't want to go back despite that in some cases it does take more work (i.e. - implementation of custom pagination (which can be easily made way more sophisticated than one that pagination control provides)).
Framework demands better knowledge of OOP, architecture and design knowledge, good sense of code tidiness because there is much less 'signs' that provide direction of one and correct way of doing things - they must be figured out in most cases by yourself. So - it is easier to drown in your own sh*t, html tag soup etc. if you are unsure and/or don't know what you are doing.
I kind a disagree with that statement about large developer team. This is where knowledge about OOP, 'convention over configuration' and extensability of Mvc framework comes into play. As i see it - it's way more easier (this is really really subjective) to write code that's reusable. And with features like templates (in mvc version no2) count of code lines is reduced drastically.
And learn javascript. You are missing a lot. Play around with jQuery if you haven't done that yet (greatly reduces cross-browser compability problems). Firebug plugin for FireFox is a great aid at this (for debugging purposes). AJAX`ifying your mvc website might seem awkward at first (there's a great tips in 'Mvc in action' book about this topic like form hijacking that can be used to achieve so called progressive enchancement with AJAX), but once you get used to JS - it feels superb. One thing to mention - JS is quite sharp tool (if you don't drop what you know about development in .NET environment and don't use it as it's supposed to). It's easy to screw up JS code base in no time.
Another thing - there's a bunch of myths about mvc framework along those who have touched only web forms.
It is not hard to work with raw html.
It is not hard to read form values (binding mechanism is excellent and easily customizable/extensible).
I'm sure there are more. Just can't remember at the moment. :)
#DanThMan, I had the same reservations you did when I first took a look at the framework but having worked with it now for some time there is no way, given the choice, that you'd get me back into WebForms.
I also write, from time to time, small applications where I am the only developer and I thank God I stuck to the MVC framework and took the time to really learn it.
In my mind it has made programming fun again and I can now maintain sites quickly and easily which is a first.
For my money this is the way to go but it's a steep learning curve and you need time to get to really understand it. If you have the time I'd say go for it.
There's some good answers here and some good ones in other threads as well. I'll take a stab at a question that hasn't really been addressed yet.
How has MVC evolved over the past year
or so? Is there anything new that
would make the learning curve less
steep?
I made a conscious switch to MVC about 8 months ago and haven't looked back. Version 1 was stable and I began to use it on a couple of sites with the help of a couple of books and the internet of course. Resources were good back then but since I switched things have really blown up in a good way.
There are a couple of books out there for version 1 that are top notch (Steve Sanderson's - Pro ASP.NET MVC Framework and the Nerd Dinner book come to mind). And there is definitely asp.net MVC blood in the water so I imagine there will be some great version 2 books down the line.
The developer community, especially here, is excellent and it's getting better. "asp.net-mvc" is currently the 16th most used tag on this site and often has a very high amount of views per question. As of today I have yet to have a question that hasn't been answered. There's a lot of smart people looking at the MVC questions who are willing to help.
The contrib library over at codeplex is also getting better and getting some nice participation. They've done a great job of filling in some holes that version 1 has left. I can only think that this will continue to get stronger as MVC gets older.
The new features for version 2 are in my opinion awesome. I won't name my favorites as they won't mean much to you if you haven't played with MVC much but just know that the development team has listened and included a number of great enhancements for the new version. They are very actively seeking feedback and always looking for improvements. Do not expect this change anytime soon. (One day I called up Microsoft and said "Shorten '[AcceptVerb(Http.Post)]' to '[HttpPost]'" and bam, Mvc 2 was my idea.)
The point I'm trying to make is: since I made the switch I've seen things get better and better. I'm incredibly happy with my decision and I'm excited for the future of this project. Version 1 is good, Version 2 is better and I can't wait to see what 3, 4, and 5 ... hold.
And I'll leave you with this: I've now converted a number of friends from WebForms to MVC. Every single one of the them is glad they made the switch and the ones that work with all aspects of an application (C# code, html, css, javascript, data access, unit testing, etc) will never go back and are loving the asp.net MVC life.
Given my experience, how painful will it be to learn ASP.NET MVC? Will it be worth it?
Yes and yes. It will be painful and it will be worth it and here's why. You will be a better programmer for it and your skills will more easily transfer to other platforms. MVC is a very common pattern that you will find over and over again in just about every popular language.
You will be working more closely with html, javascript, and css, but that's web programming and you're better off biting the bullet sooner than later.
having worked my last few projects (prior to embracing mvc) using my own controls being rolled via the HtmlTextWriter, I actually found th transition quite straightfwd. i have to say tho', i did put it off until v1.0 was well and truly 'out there' and only made strides from aug/sept 09. i'm glad i got into it as the main reasons i had been using the HtmlTextWriter in webforms was to overcome some of the basic issues of class names and id's when using jquery. i'm not going to say that v1 is a silver bullet but it certainly just works in tandem with my mindset at the moment. as for literature, i too read the sanserson and nerd dinner books and took plenty away from them. at the same time, i also got into subsonic v3 and found a fair amount of tips on rob's site to get me going.
i seriously can't imagine having to go 'back' to the webforms paradigm as i had been looking for a way to drop the page lifecycle and controls bloat for such a long time (i had even looked at php framewirks at one point as a way out of the webforms dilema - kohana is a great little php framework).
anyway, just my scottish 2 pence worth...
merry xmas all and a happy 2010
jimi
Some developers seem to have an aversion to component-oriented programming. For others, it feels natural. If you find yourself constantly fighting the standard components, then it's easy enough to roll your own from scratch--which you would basically end up doing in MVC anyway. If you find yourself fighting the unit test model with web forms, you will find things easier with MVC.
However, MVC isn't a cure-all; there's a lot to learn. Some apps will be less complex than with web forms, and some will be much more complex.
I've found that web forms don't really gel with many developers until they deeply understand the page life cycle and use of ViewState. Until that point, there seems to be a lot of trial and error -- but it's easier to learn that than MVC with IOC, etc. As far as customizing output, it's often easier to use control adapters than to subclass the control. In case it helps, I walk through these issues from the web forms side in my book: Ultra-Fast ASP.NET.
In the end, I think it's partly a mindset thing, and which model fits the way you solve problems and think about your application better.

Umbraco, is it just me or is it really hard to use? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
Looking for some feedback on those of you who have evaluated umbraco lately.
I've been on a quest for the 'best' cms that balances ease of use/extendability/customization etc. to use as a base for a new vertical product I am in the planning stages on, so for the past month or so I have been downloading, installing, reading source code and creating test sites in every asp.net cms I can get my hands on - and so far I have pulled down GraffitCMS, MojoPortal, Oxite, Orchard, Kuboo and maybe a couple of others that I am not remembering of the top of my head.
For each of those, except Umbraco, I have been up and running in less than a couple of hours, including adding pages, customizing templates, and in some cases (especially Graffiti), writing drop in widgets in C# in a matter of just a few hours....
But with Umbraco, after wrestling it for almost 2 days just getting it to run, and now another morning watching videos, and then building pages etc, I am still unable to even get even a simple site operational, and even the pages I have gotten working crash routinely (not to mention being a dog)...
So, the question is: Am I doing it wrong? or is it really that hard to work with? and more importantly, if I continue to push forward, will it be worth it? or do I cut my losses and move on?
Edit: asp.net with SQL Server support are requirements of anything I pick.
UPDATE ONE YEAR LATER (Feb/2011):
My initial impressions are still accurate, Umbraco is different than most of the other CMS's that I have used in the past, and for me took a bit longer than usual to 'get it', but now that I have, I have to say I have a much better appreciation of the product, what it does, and how it does it - and to top it all of, it really performs really well - especially with the latest release of 4.6.1. So call me a convert - I am glad I stuck it out and then took another look. I only update this post now, over one year later so as not to leave my initial negative 'review' here for posterity.
The learning curve for umbraco is short but steep. Once it all 'clicks' then you'll be up and running in short order.
It's different from other CMS platforms in that you doesn't give you anything out of the box - just a blank canvas to work with. Other cms systems will set you up with a default template and allow you to drop in pre-built functionality. Umbraco is, by design, not like that at all. You only get out what you put in, it doesn't generate anything for you.
This is ideal for developers and designers who want 100% control over their code/markup.
Version 4.7 (currently in release candidate) introduces the Razor syntax for creating macros. This does away with needing XSLT+XPath which I think was a big stumbling block for a lot of people. Even if you're not familiar with Razor, it is much intuitive to learn than the XML based offerings.
The videos have been mentioned by other posters below. $20 is a small price to pay to get up and running quickly.
Does it matter? What I mean is, if you find it hard to use, and there are other alternatives available, why persist? If it's non-intuitive to you, then you're going to find it hard to use. If it doesn't have some killer feature you (think you) need, dump it and move on. You don't need the hassle of trying to wrap your head around some oddly-designed (to you) product, and the product's developers don't need the hassle of trying to support people who think their product should work in some way it wasn't designed to.
None of this is intended to be harsh, just practical. You have the freedom to choose, so choose what works best for you. This sounds like it isn't working, so move on. My brother-in-law wanted to buy a Volvo, but found the controls and dashboard totally confusing, so he wound up with a BMW instead. Nothing wrong with the Volvo, nothing wrong with my brother-in-law, just cognitive dissonance. Don't worry about it.
I've been building sites with Umbraco for something like 5 years now, and I don't recognize your description of Umbraco as a very difficult CMS, but I'll try to provide a few pointers here to help you if you're still considering Umbraco:
Go to http://our.umbraco.org, read the Wiki-pages, and post any questions in the forums there, it's a really friendly community.
Always use Microsofts Web Platform Installer when installing Umbraco, It'll help you create your site, and set up your database. Just be sure not to install Umbraco in a sub/virtual directory, since Umbraco can't handle a setup like that.
If possible, do your install on a development machine with IIS7 and SQL Server Express, it'll work for sure, and deployment of a finished site can be done with a xcopy transfer and a restore of a database backup.
Don't start a new Umbraco site, before you've coded the HTML you'll be using for the site, or at least have a really clear idea about the page types, and html content you'll need.
I hope I'll be seeing you on the Umbraco forums.
Regards
Jesper Hauge
As a grizzled CMS veteran I can say that Umbraco is no harder to set up and use than many other CMS solutions.
However much of whether you find it hard or easy depends largely on your previous experience with CMS and your expectations for what a CMS should provide out of the box.
I've worked mostly with larger CMSs:
Microsoft CMS
Immediacy
Obtree
Reef (anyone remember that one!)
etc....
Against those it is no harder to use and is probably easier as it tends to get out of your way and lets you get on with building the functionality you require.
However if your expectations are more based around things like Wordpress, i.e. install and go but with more limited options, then it can be hard to start with (if you just fire it up without installing a website starter kit).
My recommendation is that if you are building a small site you take a look at the Creative website starter kit at our.umbraco.org. There are also many packages that you can install to make things easier or add specific functionality (including pre-built navigation controls and full blog solutions).
Also take a look at the Wiki on our.umbraco.org and ask questions in the forum, the community is helpful and friendly.
Umbraco is a bit different than other CMSs like Sitefinity, DNN, or Drupal. It does compare well to Sitecore.
Yes, there is a bit of a learning curve. I think the XSLT can cause that, but more likely its just the fact that you have to understand how Umbraco is structured. There are very few "modules" out of the box that you have to arrange and style. Rather, it allows you to easily create your own structure and markup that doesn't force you into a box that is hard to get out of.
I've used Drupal, Sitefinity, WordPress, Sitecore, and some others and frankly Umbraco is my favorite. If you know how to develop great web sites and you don't want limits on your design, markup, or client experience then Umbraco is a great choice. If you aren't really building a site but just want to put pieces together and get "something" working, then it may not be worth your time. If you build lots of sites or want your end users to edit content easily (not just a big rich text editor), then it may be worth overcoming the learning curve.
The videos are totally worth the $20 to watch BTW. They are far better than any documentation you can find and after maybe 5-6 videos you should be "getting it". Just buy one month and cancel after that.
The community is awesome too. If you're struggling, head over to the http://our.umbraco.org forums and get some help. There's lots of it over there.
Also, try installing the Creative Web Starter Kit package or the Blog 4 Umbraco package to get a head start. Those will be more familiar to those coming from a Sitefinity or Drupal background and may help the learning curve flatten out.
Good luck!
As a senior .NET programmer naturally I gravitate to .NET based solutions, and Umbraco seems to be a solid CMS. So I installed it and tried to gain some knowledge and getting it going and these are my findings:
Videos are ridiculously thin on content. The first introductory video talks of a runway. What on earth is a runway??? No jargon please, I'm a first time user.
You have to pay for the most advanced videos. No wonder it hasn't taken off as a mainstream .NET based CMS.
Out of the box demos are non functional (I chose the business theme an the menus don't work)
Admin area very non-intuative
Installation forces Web-Matrix installatiuon.. I have IIS7 and so do our production systems... I DON"T WANT WebMatrix!!! Finding documentation on this is also not easy.
All in all EXTREMELY FRUSTRATING to use and put me off Umbraco totally.
So I've picked up on Wordpress in the mean time and find it extremely easy to extend the admin interface. Documetnation and community support is superb. Just a pity its PHP bases because that won't fly in my company that has invested heavily in .NET developers :-(
Opinions aside, this all depends on your background. I'm a software engineer not a webmaster. So, I think like a software engineer and not like a webmaster.
Umbraco was VERY frustrating for me to install simply because there was no easily found TEXT documentation. Once I finally found that, it was a breeze to install.
The problem for many web designers is that they are not software engineers. Nothing bad about web designers who aren't also software engineers, it's just a different way of seeing the world. I have worked a lot with web designers who needed to interface with my C++ and C# back ends; they have a completely different perspective of almost everything.
Once I got past the goofy implied install process (which is bad, bad, bad -- you should never require another product JUST to install your own!) I found Umbraco to be simple and intuitive. Even my (non-programmer) girlfriend found it to be much more logical than some of the other CMS's we had been playing around with. Drupal, for example, was simple to install, but isn't really designed for a Windows development (ASP.NET/SQL Server) environment and I hate PHP, so I eventually abandoned that. MojoPortal was really nice and simple, but... it was... well... simple. Too simple.
I like Orchard, but the last time I looked at that there was so little in terms of what to start with that I decided that it would be a problem in the immediate future. I wanted a web content management system, not a web development platform. I kept thinking Orchard is a lot like *nix: "A nice place to live, but ya wouldn't wanna visit there."
Umbraco for me is a nice medium place, extremely flexible and easy to extend. It tries very hard to not get in your way. If you want to extend it you would probably do best to either learn C# (or {cringe} VB) or co-opt someone to write the CodeBehind for you. But, using it is extremely simple and straight forward.
I can't say whether it's just hard to use in general - but I came to much of the same conclusion as you did. I was especially disappointed by the lack of useful documentation - all the potentially useful video resources at their website are for pay $$$ only - what's up with that??
Also, the few intro videos I saw never quite clicked with me. They presented lots of concepts, but really never explained them much.
I also had tried Graffiti, but that never quite worked, either - and with its future less than sure, I gave up on that. Others seemed overly complicated for my requirements (Kentico, CommunityServer, and others).
In the end, based on a tip by a fellow on superuser.com, I went with BlogEngine.NET for my club's web site, and so far, I haven't looked back at all. It's pure ASP.NET which appeals to me, it's easily extensible, has a fairly large community with extensions and themes and stuff. From my personal experience, I can only recommend you check it out, if you have a mostly (blog) post based site in mind.
Strange. It takes me 5 minutes to install new Umbraco site, in 2 hours i managed to create standard portfolio website (well, when I've already got used to XSLT). It's very easy to create, modify, add custom controls, add smth to administration section, etc.
What was hard to understand (took me half an hour) that I don't have to write any SQL or C# code until I need some additional data model that's above Documents concept or Umbraco capabilities. Such samples: auto-resizing pictures, invoking some web-service, etc. - anything that comes from business logic layer that can't be covered by CMS model.
In most cases Umbraco is so easy to use that even that little bit of documentation is enough. There's pretty thin and easy API provided by Umbraco, but there's a good tech. level needed from developer, and that's XML 1st of all: XQuery and XPath to use maximum of XSLT.
And once more about installation: I just followed each step of installation guide and that's all.
The problem with Umbraco is that the UI is awkward and it's not immediately apparent how to use it and where to find things. There are several section buttons at the bottom of the page and when you click on one, you're presented with a tree view where you drill down to what you want. This is bad UI 101: no mystery meat. All functions should be organized and visible to the user. Dropdowns with submenus would have been a better approach.
The UI element names are ambiguous. For instance, there's a Members and a Users section, a Developer and a Settings section, a Content and a Media section. Isn't Media supposed to be Content? Aren't Members also Users? Aren't Settings something a Developer would do? You get my drift.
With the release of version 5, none of these issues have been addressed. The best thing they did was to kill XSLT/Classic ASP.NET and replace it with MVC and Razor. This makes getting your head around the product much easier from a developer's standpoint, despite a lack of adequate documentation for version 5. From a content creation standpoint, it's still lacking, however.
If you want to see a great UI, look no further than SiteFinity. Even though the new design isn't as good as SiteFinity 3 versions, it's content editing is the best I've seen on the market. It's too bad it doesn't support MVC and it's controls are cumbersome to modify and style.
what i wish i would have known!
Umbraco - Before you start

Free tools to speed up web development [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
As a little side project, I am starting to build a new website for a certain organization I am affiliated to, which current site is simply outdated.
I am regularly a Java developer, and last time I really did some web development was back in the late 90s, when <p> was still more popular than <div> and Javascript was cutting-edge technology (JQuery is for lazy bums these days :) ).
Anyway, I feel really outdated. The website basically is going to be:
Django based
mostly serve static information pages
it will have a dynamic news and updates page (based on Django admin capabilites)
and some basic apps I'll develop myself (polls, small registration app, etc...)
My problem is designing the whole thing. I found some nice web-based CSS layout generators that got me going, but I still feel I'm wasting my time smoothing out the CSS files and aligning <div>s.
Are there any tools - the simpler and faster, the better - that you recommend I can use to speed up the design part of the site so I can concentrate on the real work?
I don't need anything fancy, just a nice looking layout and design that I can tweak a bit so the site will look presentable.
I second Brandon's suggestion to use a CSS framework. It won't give you 100% freedom to design anything you like, but it can speed up your design process greatly and free up your hands to do the coding you really want.
Suggestions Updated July 2013:
Twitter Bootstrap http://twitter.github.io/bootstrap/ - complete grid, typo, UI widget prototyping framework
ZURB Foundation http://foundation.zurb.com/ - responsive grid, type, UI widget prototyping framework (similar in scope to Twitter Bootstrap, but feels 'cleaner' in some ways)
960 http://960.gs/ - grid layout system
Tripoli http://devkick.com/lab/tripoli/ - really good typography, but no grid system
YUI Grids http://developer.yahoo.com/yui/grids/ - very customizable (to the point of overkill) grid system
Blueprint http://www.blueprintcss.org/ - grid system and basic typography
BlueTrip http://www.bluetrip.org - a hybrid system, mixing the best of the Blueprint grid with the best of the Tripoli typography
I won't lie to you. This website isn't the best place to go if you're looking for reliable Web Design advice. Stack Overflow is a programming community and programmers rarely know anything about design. If you want to get some real advice then I would strongly recommend the main Web Design/Development forums on the Internet, especially SitePoint.
That being said, as a former freelance Web Designer/Developer I'll offer my input on the issue. Not that you should value it, of course. After all, this is a programming website.
NEVER EVER SAY CSS LAYOUT GENERATOR EVER AGAIN! If you're going to seriously get into designing web pages then you need to learn semantic XHTML and CSS first. Whilst many people tout W3Schools as the definitive resource I see it as a programmers answer (i.e. not very good) and would prefer that you read up on the subject using...Google. There are countless examples of great websites to pick up the basics of Web Design/Development that Google is probably the best website for the job. Also, with a plethora of new websites offering this information you know it's going to be more improved than W3Schools. You'll seriously want to get clued-up on writing your design because it'll be much harder to fix things later on in the project.
If you're going to be designing web pages it would be a good idea to learn what actually makes a good design. Check out CSS Vault for a fantastic resource of some of the best-designed web pages around, of course with all the source code intact so you can have a play around with their code and see how they've managed some of the wonderful effects they've produced. I've learnt more than a thing or two from websites that have been featured on CSS Vault. On top of that you should read up on Web Design from the big Web Design/Development sites. Two of my favourites are SitePoint and A List Apart, two names that you'll near time and time again when you hear people talk about resources. Browse those websites, check their forums, see what REAL Web Designers/Developers are using, not what programmers are using.
On the subject of CSS Frameworks; they do help! The problem with using them is that you'll often spend so much time looking for a worthwhile framework that you could have finished most of the CSS for your website yourself. You'll either love them or hate them, but many people will say that they're not necessary.
Once you've got your mind set on what a good design looks like and you've got the resources you need to make something of value I suggest that you get to work! In reality when you're designing a web page all you really need is a text editor with a save function, an image manipulation program, a browser window and FireBug. An IDE helps a lot of people, but if you do use one then you'll definitely want to work in its text mode. I use NotePad++ or Emacs exclusively but a lot of people like to use Aptana Studio, so it may be worth a look.
When you're getting to actually building the code behind your website you can't really go much worse than your favourite IDE/Text Editor and a source control tool. As a Java programmer you're better suited to talk about programming so I won't lecture you on a subject you already know.
In the end, Web Design is going to take time and many of the tools that we choose to use that we claim will "save time" save very little in reality. If you're not a design guru then it will take you a substantial amount of time to create a great-looking website. It's a fact of life. Call me old-fashioned (a funny word coming from a 21 year old) but I still think that the quickest way is to sketch a design out on a piece of paper (a image program if really necessary) and to just get out there and make the damn thing! Again, I'll have to take this hunting for the silver bullet mentality as a programmers trait, one that really won't help that much when designing, because designing a web page is vastly different to writing a Java program.
In short, ignore everything you read here, read what REAL designers are doing and just make the damn thing!
There's one piece of advice that saves more time than any other when it comes to rapid development of CSS styled sites and that's KEEP IT SIMPLE
Use an attractive simple layout that doesn't require pixel perfection and that can 'gracefully' degrade in less compliant browsers (IE6). Minimise the amount of CSS and fix the basic bugs mentioned by meouw above. Then get on an concentrate on content and functionality...the real work
In my previous employment I created dozens of templates for websites.
The most useful too I ever discovered is the Firefox Web Developer Toolbar.
It has a wealth of small useful tools. My favorite feature is the ability to edit the CSS and see the results in real-time. This saves on the whole edit - upload - refresh cycle. Watch out for ie CSS inconsistencies though!
Off the top of my head, these are the most important gotchas.
double margin bug [google: double margin bug]
incorrect (but more intuitive) box model [google: box model]
incorrect (but more intuitive) float clearing [google: clearfix]
FireBug is another really usefull Firefox plugin for more in depth analysis.
I've always found Open Source Web Design to be a good resource when looking to get started trying to design something.
- http://patterntap.com/
- http://www.dotemplate.com/ (interesting concept of customizing template)
- http://www.templatemonster.com/
- http://www.freelayouts.com/websites/html-templates
- http://www.templateyes.com/
No idea what the site is going to be, but have you thought of using a pre-build CMS like Drupal, Joomla etc etc.? You can then tweak templates etc, rather than worrying about making it from scratch.
This question is pretty old, but since we're in 2012, it's only proper that I answer my own question with the exact thing I was looking for, back in 2009.
Twitter Bootstrap
Have you looked into any CSS frameworks? If you are competent enough with CSS something like a framework could help speed things up.
Don't forget firebug :) if you're worried about tweaking the design it's really great. With the inspect feature allowing you to real-time edit the CSS of your page.
https://addons.mozilla.org/en-US/firefox/addon/1843
I second Jens Roland's list of CSS frameworks.
But I would also suggest you have a look at websites such as Smashing Magazine. You might find this article of interest, amongst a lot of others. They tend to do a lot of nice and long mash-ups for the web developers that will at least give you inspiration if not a direct solution.
A colleague of mine has been trying to convince me all week that Dreamweaver, 5 years after I was last forced to use it at gunpoint, is actually now worthwhile for knocking up a design quickly and painlessly, and is also now competent at producing the HTML for that design.
I refuse to invest the 10 minutes it would take to find out based on my previous experiences of it, but you might like to give the demo a quick run around the block :)
I'd recommend finding a CMS package, since you're using Django, look into django-cms. It has TinyMCE and Markdown Support so updating your pages should be easy. Also django-cms integrates well with the Django admin interface.
A piece of paper to sketch your design
A text editor (preferably set up to save directly to a development server local or otherwise) to write up the initial HTML/CSS
FireBug/IEDeveloperToolbar to inspect each element that looks wrong and edit its CSS directly in the browser until it looks fine, followed by commits with the text editor
If you're doing any JavaScript development, use an advanced editor that highlights errors and warnings as you type. This kind of functionality has until recently been the province of static language editors only, but the free NetBeans 6 achieves this amazing feat. Traditionally, you first discovered JavaScript typos and simple bugs when first loading the parent page into a browser. The speed-up you get from being able to short-cut these iterations is profound.
NetBeans 6 also highlights CSS errors and is a more than capable editor for most all languages a web developer is likely to use these days.
You can also use www.zbugs.com - it will help you speed up a process of compressing and gzipping your CSS and Javascript files

Resources