Architecture of a CMS - c#

I am building a custom Content Management System for my client, using C#2008, ASP.Net technology. I am looking for advice regarding the architecture (application layout, database layout etc) of such a system.
Anyone here have any experience design / developing such a system? Any websites that I can get more information from?
Any open source CMS out there?
Thanks in advance.

Any open source CMS out there?
Check out Umbraco, its very good, not suitable for everything (depends on your sites content really) but you get so much for free that it would be silly to not give it a look over, its not a small bedroom hack up job.
Regarding creating your own CMS, I'd probably try to steer you away from it, its not for the faint of heart unless your content demands are very niche. Even then its better to build on top of something else if at all possible.
ASP.net MVC would be worth a look too if you are going down that code your own route, would save you some headaches.

DotNetNuke is a good open source CMS is specifically for ASP.NET development. Definitely worth a look.

I've written a blog post about content modeling and data stores for content management systems. I think it could be useful: Blog post: Get more out of your content: content modeling and data stores

Related

How do you display visio diagram in asp.net

I want to know if there is a free alternative to display Visio diagram (.vds file) in webforms asp.net C#?
Thanks in advance.
To my knowledge, the only way to go is using ActiveX, but if you decide to go down that path, do know that it's supported only by Internet Explorer, and since that one is going to the grave rather quickly I'd say you'll give yourself some headache quite quickly.
There's no pure HTML5/ASP.NET WebForms solutions for this as per today.

Loading content from DB to aspx page based on URL

I'm currently trying to create a small scale CMS for my personal website and thought I'd like to try to make some sort of a page layout from a basic aspx file with some placeholders and load content based on the URL, without the use of url query strings such as ?pageid=1.
I'm trying to wrap my head around how this can be achieved without getting errors of a physical file not existing when I e.g. type in http://mywebsite.com/projects/w8apps/clock.
I've read a lot about BLOB and storing files binarily in the database. But I haven't come across a blog which points in the direction of using a so called page layout and loading content based on the URL instead of a query string.
I'm not asking for a solution, just some hints - blogs mostly - which can point me in the right direction and help me achieve this goal.
To deal with loading a page with a URL that is more friendly, rather than ?page_id=1, you may want to have a look at this article about URL Rewriting and URL Mapping.
http://www.codeproject.com/Articles/18318/URL-Mapping-URL-Rewriting-Search-Engine-Friendly-U
Hope you can find a way of fitting this kind of code into your application!
You questions is too broad but here are couple hints that will point you in the right direction.
Create clear specs before you start working on this. Do you really need to have URLs like this http://mywebsite.com/projects/w8apps/clock ? If yes then check out MVC since it has best support for this
Storing binary files in database doesn’t have much to do with this. You first need to think of how your tables will look like and that is based on what are you trying to achieve…
I’d suggest you install some CRM that if open source and analyze this first. You’ll probably find a lot better ideas this way. Just go to CodePlex and search for CMS.

How to minify aspx pages

I am developing a web-based Pokemon Online game. Since it is online, I would like to optimize it to run as quickly possible.
I've installed Firebug and Page Speed suggests minifying my HTML output. I'm also using VS2008, ASP.NET 3.5, AJAX, and IIS 7.5; along with URL-Rewriting.
I want to minify my HTML, JavaScript, and CSS. Optimally, I'd like the minifying process to happen at compile time. I've spend hours looking online but couldn't find a decent solution, can you help me? Thank you.
Firstly, you should read the Yahoo best practices for speeding up webpages.
You will probably find that minifying the HTML won't have much difference (also see this question), but a lot of the other suggestions in that article will.
There are a couple of methods to achieve this. You can configure GZip compression with IIS7 if you have access. If you don't i.e. you are using a hosting provider it is possible to activate compression from within your code.
See this SO Post for further reading.
UPDATE:
To perform this at build time rather than run time see this blog post.
Instead of minifying your .aspx files consider dynamic compression. This will send compressed data to the browser. since you are using IIS 7.5 dynamic compression comes built-in you just have to enable it.

Asp.net webparts or portlet like functionality

What is the best way to let other parties use your website as their own content using their own style ?
We have build a small website for a customer, asp.net, .net framework 3.0. Now the customer wants other parties to be aple to use our website in their own websites while maintaining the styling of the costumers website.
I have done nothing like this before and don't even know what to google, so any help is appriciated.
I know you can do this with sharepoint, but to use sharepoint for such a small site seems like a lot of overkill
it sounds that portlets is a good name for what they want. but googling portlets draws me in the world of java and doesn't give me a lot of info on what the other parties would have to do to make it work.
a simple Iframe would probably take me a long way, but how can you get the styling done within an Iframe
webparts also sound interesting , but they seem more for in project sharing then letting people use them in their own site.
It is a small website and the logic and backend communication is pretty good contained, so a complete rework of the frond-end is not a big problem.
Once again, any help is appreciated !
Omar Al Zabir has a book on how to build a Portal in ASP.NET- here is a link to his Website.
You might want to look at his Dropthings portal.
Yes, portlets are pretty much Java-only, despite any talk of standards.
If you can encapsulate your pages in web parts or user controls, that would make it easy to style them, and even to parameterize them: a web part can be configured.
You can use Kalitte Dynamic Dashboards for creating professional dashboards and portlets.
More information can be found at www.dynamicdashboards.net

asp.net program affects result in search engine

Is there anything I can do while coding in Asp.net to make my website come on top in search engines for general keywords? (For example : cars...assuming that my site is wwww.joshautos123.com)
Thanks
This has nothing to do with ASP.NET Josh,
You need to start investigating SEO in general (Search Engine Optimization)
This is a pretty broad topic (more info here) covering everything from keywords, content, url formatting, and cross linking to lots of different sites/resources.
The best thing you can do if your only developing it (and not responsible for marketting)
is that you put together a well designed, clean, standards compliant site.
you can follow the search engine optimization guidlines for your header, images etc.
that the way you can acheive it.
Anyways, you can read this tutorial, it will help you.
for more, you can create a good master page with good meta tages. it will help you...
This sounds a bit "black hat" to me.
The most important aspect of SEO is content, So as long as you have lots of good, meaningful content relating to "cars" you stand a good chance.
Next up, you want lots of reliable sources to link to you with meaningful keywords in the links. And a whole bunch more SEO tricks
When making the ASP.NET application, you can make sure you facilitate SEO best practices, but at the end of the day, if your site is full of nonsens and people don't think it's worth linking to. Your'e not going to get very good rankings.
Most of the SEO enhancements can be done beside of asp.net.
so just add the right tags and words to the aspx file.
or for dynamic pages, generate them from the content.
but what you should have also in mind are 2 things:
first of all, run all of your system under one url. and all other ones should be redirected with 301 to it (e.g. redirect http://joshautos123.com to www.joshautos123.com with 301 redirect)
and do not use subdomains for different parts (that will split your search rank)
and second, you should use the asp.net mvc.
because one important part of seo is, that the right content (e.g. titles, real car names, etc) are in the URL.
rest was already said by the other answers....
Try visiting this website for a start Using Meta Tags with Master Pages in ASP.NET

Categories