As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I'm working on a web application that is most likely going to end up with a large number of .aspx and .master files. The size is more a matter of scope than a design issue, so this is unavoidable. Are there any good/bad practices associated with the structuring of large projects?
Obviously I have separate directories for resources like Images, Script files, and Stylesheets, but would it be crazy to have a folder for master pages? If I know I'm going to have like 50 or 60 aspx pages, ought I to create a folder just for aspx resources? Taking that a step further, if 10 of those pages are going to be dedicated to a single product, would it be prudent to create a folder inside my aspx folder for ProductA or whatever?
Generally, the consensus seems to be that whatever makes it more readable to the developers (me, in this case) is good, and I know that Visual Studio does it's own thing when compiling anyways, but I've been in the shoes of the next developer to pick up a project so I'd like to avoid looking like a fool if I can. (not that I expect there to be a 'next developer' any time soon)
There's nothing wrong with creating folders for your master pages and product specific pages. It's simply a matter of preference (unless you have some crazy requirements for how the url should look).
For things like Master Pages, it's not so important - these aren't immediately visible to clients in and of themselves, so putting them in a subfolder is an organizational task which you are doing to help structure the site in your head, too.
However, for other fixed pages, the choice of folder can be important; for example, if you were to do the following:
http://www.mysite.com/folder/thing.aspx
You have now created a context for your page - the URL is, in effect, defining how that page sits in relation to your site. Further, this context can be used to your advantage in both navigation and search engine indexing.
A concrete example is a site that sells different categories of products; you could put things in subfolders like:
http://www.mysite.com/books/list.aspx - clear that this is a page that lists books
http://www.mysite.com/games/list.aspx - clear that this is a page that lists games
Search engines will then pick up on these categories and you'll be able to link to them in ways like:
http://www.mysite.com/games/ (providing you set a default page for that folder)
In effect, you are segragating your functionality by categorizing what that functionality involves. You are also establishing a semantic relationship between your site and 'games' in the example above.
This is a part of the REST methodology.
In practice, it is much easier to achieve this sort of structure using URL Rewriting which means, as another poster has mentioned, you don't really need to worry about the structure, except for your own organizational efforts.
It also means you can cut down on the number of pages, and, instead load user controls and content based on the URL you are passed.
So structure your files anyway you want, but do think about what your site's public face will be!
I'm assuming you're using asp.net webpage rather than mvc???
for your aspx files, I would put them in folders relative to the purpose the serve. You say you'll have 10 aspx files specific to products, so create a product or products folder and have those contained within that folder.
The folder structure for your aspx files will obviously control the path in the address bar, unless you're planning to do a bunch of routing.
I would definitely separate your master pages into their own folder for keeping things neat. if a master page is specific to a section of your site (ie: products) put it within the product(s) folder.
You can use routing with webform. this mean that you can do whatever you want right now and fixing it later on if needed. url wont change.
Obviously there's nothing wrong in separating pages and master pages by section/usage. However I'm wondering if you couldn't reuse more by using more User Controls, page templating and theming?
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
When you create a new ASP.NET web application, a theme called "base" is automatically set up with jQuery CSS and images in it. Is this not overkill for the large majority of web applications, which will never need to really use themes? Is it a good idea to just move all this stuff into the root Content directory, delete the theme directory, and never use themes if you have no intention of theming your site?
I don't mean that jQuery shouldn't be included by default, that's not my point. I mean, should it be in a "base" theme? Themes are about being able to reskin the site, and I don't think many sites are going to want to do that.
And then, what is Site.css about? That is outside of the themes dir, yet as far as I can see contains style info that one might actually want to change on a per-theme basis (like form stylings).
Did you try using the Empty template?
a theme is automatically set up with jQuery CSS and images in it. Is this not overkill for the large majority of web applications, which will never need to really use themes?
No, this helps the majority of people to start working faster. Getting the logic done first without having to create a layout just to visualize whats going on. Not to mention that the new modern theme actually looks nice enough to be used in production if you want to. Here are a few sites that I found from a quick Google that seem to be deployed with the default template.
Make Differences
VACS Applications
Build A Project
Les Taxis de Villefranche sur Mer
3indians.com
The majority of users need the jQuery, even if only for the unobtrusive validation.
The new templates includes a lot of necessary features, for example cell phone support and mobile projects. Take a look at Enhancements to Default Project Templates, for examples of what some of the new default features are and why they were included.
As for the jQuery ui, other than just the files on the server, there isn't any overhead with having it there. It's not being sent to the client unless you need it.
If you don't need any of this, you can remove it or as #Gromer pointed out you can create an empty project or even a basic project.
Addendum
The theme is just the default theme that the jQuery UI comes with. You can easily change it or create a custom one on the jQuery site. But the theme is there because jQuery UI won't work without it, and the UI is there to allow developers to quickly get to work with the UI.
It's similar to when you create a new controller you can have it automatically create the basic Index, Details, Create, Edit and Delete actions. This is just a convenience and you if you don't need it you can create an empty controller. Just like if you don't want the UI, you can create a basic or empty project.
It's just a feature of the Internet Application, most people find it helpful, and you are given the option to use it or not. If it was the other way round, people would be complaining that it wasn't included. And someone would create a template to add it just like with MVC 3, it didn't have OAuth by default and it was a hassle for people to set it up so someone created a default MVC 3 project that has OAuth by default. Now MVC 4 has OAuth support by default.
This is kind of an odd question and I didnt know where to post it, but here it is.
I have an ASP .Net website used by internal company employees. The site pages are pretty basic and has various tables, divs, css and some sprinkles of javascript/jQuery.
Some of the site pages are often used for presentations. And sometimes, the users need to copy the content offline.
I got a request that when trying to copy certain pages off IE/Firefox and onto Word/PowerPoint, it does not carry the layout over correctly. Well, I know obviously why this is a problem but the users dont and are asking to make it possible.
I'm assuming that the easiest way to do this is have a "printable" view. But as some of these pages are still being developed, are there some techniques we could follow that would make these pages somewhat copyable to word/ppt?
There are online guides to doing this like this one.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I just finished creating a site mockup for a new version of our website. Our current site is hand written, and all content updates are code changes. I'd like to move our site to a CMS with as little custom styling as possible. Based on this home page mockup is there any CMS that handles this layout better than another?
#DougChamberlain I would personally divide all content by context; almost all blocks on the page would be derived from different files which were called into the home page template. The rest of the site may use a different template, but may still call the same blocks of content - This is a key part of why we'd design this way. This can be accomplished in any CMS; it's more a design principle than a feature these days.
For example, the red items in my overlaid mockup are includes, blue would be hardcoded, and green could be handled either way depending on your perceived uses for the content. Each include (red) would be a very generic php-html file, collecting data from different resources (Mostly your database) which could be adapted to different layout requirements.
Example of why we do this: You might design the search bar so that when you included it, it was inside of a container which could have the class 'longSearch' or 'searchBoxLarge' or 'searchBoxSmall' (Or whatever) which would dynamically produce the long search bar you've shown or a larger/small box to place in the right side of the footer perhaps. We'd design these included files to be very adaptable and reusable. Each time you include the search bar, it takes a single line of code (That's awesome), and each time it has an issue or needs an update, you only need to work on the file in one place.
Finally, all of these widgets, or components, or whatever you might want to call them, would live inside templates, which belonged to pages. Each page would have a set template (A blog style template, a generic content style template, a home page template, etc) which would accomodate the type of content that page was supposed to hold.
Any CMS is capable of this, but as I mentioned, WordPress is perfectly suitable, documents this layout method well, is free, and easy to learn with.
I apologize if my explanation here isn't what you were hoping for! I'm aiming to be helpful, but it can be difficult over the internet sometimes. Feel free to ask more or have me iterate over some points a little better.
A lot of variables other than just layout should play into choosing a CMS. One, what's the environment it will live in, windows or linux? Two, who will be the developers and what skills do they have? Three, who will be the content managers, developers, secretaries, other? Four, how easy is it add customization to it? And last, can I get my data back out easily if I want to move to another CMS?
There are literally hundreds of CMS's out there, and most do pretty much the same. They allow a template to be made, content pages be created off the template and the links for each page to be hooked up to another page.
Instead of just listing a huge amount of CMS names, just think of the above questions, answer them for your specific situation and then you should be able to choose a CMS which will help manage your content.
Good luck, and hope you find a solution that will work for you.
A client asked me to redesign her web site, built several years ago in WP by another developer. Although I've never worked with WP before, I'm pretty comfortable with html, css, and php, and I more or less understand how WP stores content and dynamically builds pages. But I'm wondering how to approach these challenges:
My client's site has about 75 pages. There are about 25 that are static (i.e. the content changes infrequently if at all; things like "about us" and "faqs") and there are about 50 pages that are more "blog-like", except that instead of posts, the content contains directory-type info (e.g. 12 DJs in the area) or event-related info (e.g. upcoming shows at local theaters). Both of these categories contain many sub (and sometimes sub-sub) categories (e.g. medical services > pediatric > kid allergy specialists) and the content updates fairly frequently.
I understand the difference in WP between "pages" and "posts". But I need to find out the best way to structure the static content. Should I just set up a parent/child hierarchy of pages, changing the permalinks to something that makes sense? Or is it better / easier to just build the static pages outside WP and somehow link to them from the common navigation?
As a web designer, I want to "wow" my client with a great design. While there are loads of wonderful WP themes available, I really need to create something unique. But I'm wary of breaking something, so what's the best way to take an existing theme and just tweak it enough to make it look a little different?
Finally, other than mounting a massive "copy and paste" effort when the new site is built, is there a way to transfer content from the original site to the new one?
By reading your question, it seems to me that choosing WP for this kind of website was a bad choice.
Redesigning it, though, won't be that hard if it's using page templates for pages.
And yes, there's a import/export tool in WP to tranfer content. (see administration panel)
I, really, advise you to read this great tutorial about creating WP themes.
I've a blog-like WP site myself (contains RPG development articles). Here's what I did. Nested static pages simply have parent-child hierarchy: /about/mingos - that's easy to understand and i value this kind of content organisation (personal opinion).
As for themes, there's a no-brainer tool that, while not exactly apt for real business, has the capability of letting you see how stuff will look in seconds, and can sometimes give you great ideas. It's called Artisteer and there's a demo on its site that you can have a look at. Try your design ideas with it, see how stuff will look like. I'm sure you can come up with some great ideas for a "wow" design :).
Exporting content, as Soufiane Hassou remarked, is possible from within the admin panel.
Don't rule out using categories to create your hierarchy. That way you'd get the benefit of cross categorization of DJs and venues by location to create a robust cross reference system. Pages don't get this benefit without extra work.
To make this in to a directory, though, is gonna either be heavy work on managing the pages or heavy work on creating a solution that will cross reference everything and bring the content together in a usable way on the front end.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I asked from few weeks ago this question:
How can I teach a beginner to write ASP.NET web applications quickly?
And i got some good answers but i liked the answer which tell me to make some small projects with them (me with the beginners)
So i decided to collect some small websites ideas to do with them (i do a part then they complete or show them some hard parts and they follow)
But i faced 2 problems hope you help me solve.
1- Couldn't get enough good ideas for ASP.Net websites to make with them.
2- If i want to make them train on using HTML websites created by the web designer to make
it dynamic using ASP.Net, where to find just HTML websites, or there is a better idea to teach them this part?
You may ask, whats exactly the level i hope they reach?
I want them to be Very good in ASP.Net, HTML, and familiar with JavaScript and CSS.
And the most important thing i want them to be a good searchers, means they got a problem and they Google the right way, and solve. "i think this will gain by time", but this is an important part, because i don't want them to say "we can't do this :("
May be i am asking for too many things, but i just hope general help so i can go further with them.
Use your brothers interests. If one brother likes Football, have him put together a fan site for his favorite team. Another brother likes fishing, well, you get the point.
There are two main benefits with picking topics this way:
They are already subject matter experts and can concentrate on learning the technology instead of the subject and the technology.
Hopefully they pick something they are passionate about and this will add to their desire to learn the technologies.
A good way to learn how to work with ASP.NET is to take a web template and start making it into a functional website.
For example, if you download this template you can see that it's a pretty straight forward business style site. Home, Projects, Services, Downloads, About and Contact are the main sections. The template also has a some additional buttons and links. These are all pretty good places to start learning how to create a site.
First thing, create a masterpage from this template. This is where you'll learn how to tear apart someones HTML and where to start placing content Templates and to start thinking about what can be a user control or reused (main menus, footers, sidebars controls etc.)
Next steps would be do go ahead and flesh out the folder structure of the site and dive in making the those default pages for each section. A learner will quickly see how a site is created from a master page and learn the little quirks of images and stylesheets and how to get around those as you dive through folder structures.
Now it's your choice. Pick a section and start having them dive into it. Products would give you a way to use a database, querystrings, forms, etc. How to pull data, how to display it and how to save it. Downloads would be a place where you could learn how to manage content for a user. What little admin tools a site would need to manage it. Services and About can be CMS driven pages. Once again data driven, but still different from the Products section. The contact forms would give them the option of leaning about using Email from inside of a .net application.
Now once you get your learner working on this, they might actually end up with a pretty usable site/product that they could actually sell or reuse in a 'for real' project. Take your time teaching them, go slow on each section and I'm sure you'll get some good input back from your learner.
Hope this helps you.
E-Commerce is a great solution, as other people have suggested. Or a portfolio web site would be even easier. Also, a picture sharing web site might work out well for them (family members could log in and upload, too?)
I would also add you should use the visual (design) mode in visual studio for the best effect. And then show the HTML it generates after the page is run/compiled. That way you cover for the people who are more visual learners and get into the code later. But I'm sure you were already going to do that :)
How about a sample time entry app.
User logs in to key his time for the week.
Admin user can approve time.
Reports can be made for summaries, approval, etc.. to give programmer exposure to reports.
Login / Roles is always important to understand
Time Entry gives you database interaction.
A simple informational website for a business or store. This should include a contact us form. That should be good practice.
A simple e-commerce application is a good project, as it exposes the students to a number of issues:
Security
Database integration
Transactions
Session management
Design and usability
If your interests are in TV shows or movies or something similar that one can collect on DVDs, building a simple CRUD web app to update a database should be a fairly simple application that will cover some basics like DB design and manipulation, AJAX if you want to send the requests without a full postback, and is something rather common in enterprise applications so it may be very useful.
The year the DVD came out, who wrote and directed what is on the discs, genre of the material, length, stars, extras on the DVD and many other things could go into the DB if one wanted to set up a library like system for an add-on that could be interesting in some ways.