So, I’m working on a project for my company that involves allowing users the ability to create their own web pages. So for example the real content managers that know what they are doing make all the mains pages. Then a user can make their own page describing what they do and share items with others. Now the catch is that these users have zero and I mean zero experiences with making web pages. The goal would be for me to make like 10 templates they can choose from and then they could drop and drag in the thing to make the webpage. I have looked at items like Ektron and other CMS systems, but the price is per user and our user’s number in the thousands. Short of making an entire custom CMS with an easy to user WYSIWYG editor, is there anything out there that could help? I know there are WYSIWYG editors, but I’m just trying to get some ideas.
Also, I have used DNN and though it can do everything, I think it’s too complicated for my group.
Thanks,
Jojo
How about a wiki? confluence is decent imo.
tinymce is great and easy to implement. Wordpress uses it.
How about OpenWYSIWYG... (Opensource :) ). I haven't try that but seems worth to check..
I am not sure that a Wiki is a solution for your scenario. But if you think so MediaWiki is another useful product.
TinyMCE is quite a good WYSIWYG editor, with an extensible plugin architecture.
Personally I'd avoid OpenWYSIWYG; the documentation is not great and it hasn't been updated in a while.
I'd suggest looking at the YUI Rich Text Editor
You are asking for a "massive websites factory". Not all the CMS have been designed for such business cases.
Note that your requirement is classic but not trivial. Personnalized websites of thousands of users is note without causing performances issues if not well managed (both in edit and browsing modes).
So you should focus at the CMS designed for such requirements and rather those designed for supporting heavy loads.
I can recommend Jahia (www.jahia.com, see the feature "my portal" http://www.jahia.com/jahia/Jahia/site/jahiacom/portal, pricing not based per user: http://www.jahia.com/jahia/Jahia/Home/products/Pricing/pid/594)
I agree that's certainly not the only one designed for webfactory (even if my favorite!) but you can have a look at the online demo and make your opinion.
Related
I was using WebForms earlier, now I'm very satisfied with the MVC. But as for the many tutorials I have read the words from those articles that to combine MVC and WebForms may be useful sometimes, but they didn't reveal the essence in their tutorials/articles more specifically.
For e.g.:
http://www.codeproject.com/Articles/575397/An-Absolute-Beginners-Tutorial-on-ASP-NET-MVC-for
quote
In fact the possibility of being able to mix both the styles is the best thing. We can use both these styles in a single application and get the best of both worlds.
And the same words for the others tutorials, which I read. I can't see any concrete.
As for me, what strong sides I've noticed, when I've used WebForms:
development style, which is more like to the desktop-development style, when I've first used WebForms, I feel like I was developing some WinForms/WPF application
page life cycle gives not only big headaches but also a very good mechanism for controlling webpages events/render html code. Yes it's complex and hard to learn/understand, but when you have done it you may to develop a very powerful application. I have done such perversions, where I was imitating a desktop developing style (I have built smth similar to the html collector, which may free some html code and include/render another and it was looked like a manager which manipulating scenes for future rendering like in WPF/Silverlight development and I was able to manipulate 30 different html pages only in one page (which I think many developers prefer to divide into such amount of pages) with such a self-developed manager).
Why do I tell you these things? I see that you may think that I switched to another topic and changed the meaning of my question and make it meaningless.
No! It's not, I've just provide such an information, because I don't understand where are those needed/correct parts of combining those two techniques for the real practice.
These two techniques have different life cycles, they works on different patterns, they render their pages very differently, they are just very different.
I can't imagine how it could be combined.
Maybe I don't know something...
Please tell me your opinion about combining them.
There is fresh MSDN Magazine article related to your question.
It may be necessary to fallback on traditional webforms if you rely on complex user controls specifically created with the webforms model in mind (needs viewstate etc).
MVC follows the HTTP protocol more closely while WebForms tries to abstract it away by creating an experience much more similar to that of WinForms.
I'm just looking for some advice really on CMS choice. The website will need some kind of CMS for sure, because the requirement is that the end user is able to add multiple "project case studies" under a bunch of different categories, and also spawn separate pages, and change general bits of content around the site. It's quite simple really, but the site needs to be easily navigated where these case studies are loaded via AJAX requests.
I'm looking closely at Orchard, a .NET CMS based on MVC2, but it seems kinda like overkill for the project - it has a bunch of features I'd never be using on the website and I don't want to overdo it. Plus, it's still a little bit buggy because debug messages keep coming up looking for debug classes that don't exit.
Any advice would be awesome!
Thanks!
No matter what CMS you choose, it's likely to have stuff you don't need, as a CMS is necessarily casting its net very wide. It is supposed, after all, to be able to manage any kind of content.
I'd like to understand what you mean by "debug messages keep coming up looking for debug classes that don't exist". Can you elaborate, maybe on a PM so I can understand if that is a real bug that we should fix.
When it comes to opensource .net cms, I had very good experience with N2 CMS. You can check it out on GitHub: https://github.com/n2cms/n2cms
There was a discussion recently, regarding whether to use Umbraco or Orchard as a backend for ASP.NET webstie/application. You could try reading this, I guess you'd find a solution there.
I am thinking of learning a CMS. I am not sure which one will be the best to learn.
I seen quite a few job posting asking for a website with CMS capabilities(so it seems something that would be good to know).
CMS on the surface seem to be easy to use but in my mind this seems to quickly change when I start thinking of sites that need more then just out of the box functionality.
For instance sites that need custom themes. How do you switch out themes with your own layouts? Or what happens if a page on your website needs to have custom logic and cms editing on the same page.
Like say you need to write something that pulls up data from a db and format it on the page but to the right of this data you have a paragraph that an admin should be able to edit through the CMS.
So how do you have this work? How do you add say the gridview server control to this page?
So I guess what I am getting up I looking for a CMS that has good documentation on how to do custom logic on pages and not just a CMS where if your not using there own themes and try to add your custom logic on a page you basically have go through the CMS and change the entire source code.
I like using asp.net mvc but as far as I can really see there is really only one CMS that is built on MVC and that is Orchard but it's still in beta and always changing. So I don't want to invest time to learn on how how to use it and then they make changes and your back to square one.
Thanks
It seems like you have 2 competing concerns: 1) which CMS might be best to learn for "professional" opportunities, and 2) which CMS might be best to learn for staying with relevant/interesting technologies like MVC.
For the first concern, a lot of that depends on how long a particular CMS has been around. For example, DotNetNuke has been around for many year, is well-established, and many use it to build commercial CMS solutions. It is web forms based. There are many other well-established CMS out there. For example, the Web Platform Installer from Microsoft, gives options to install WordPress.
For the second concern, I would recommend Orchard. Yes, it is in beta but it has been in development for a while now and is really getting better stability. Even if there are changes from here, I'd expect them to be minor and not sweeping changes to force to you learn a brand new paradigm. As you pointed out, it is also MVC-based. This let's you do development in a much more friendly way - and without having to jump through a bunch of hoops.
My friend used .Net Nuke to create a CMS.
http://www.dotnetnuke.com/
It was his final project in school and they still use it.
http://www.garneau-tennis.com/
The obvious advantage is that you can develop in .Net.
Check it out if nothing else.
N2 CMS would seem to fit all your requirements:
http://n2cms.com/
http://n2cms.codeplex.com/
I've created two CMS sites recently using this. It is probably the best developed CMS around although there is a learning curve. It also has an ASP.NET MVC version :-)
Several themes come with it out of the box. I have already built two custom themes myself and it was pretty painless.
Dot Net Nuke - Well established and using the MVP pattern to ease WebForms development / testing.
Umbraco - Another well known (ran on asp.net) and they are working on an MVC version.
Orchard - New, very new but all MVC. I think this will be a winner as it matures. It's not necessarily bad to get in early. Even as things change you will be able to pick them up and when Orchard hits the prime time you will already know it while all the others waited for it to get out of beta. :-)
hi I am planning to develop a site very similar to http://www.nextdaypets.com/ but with some more features...i have worked on JOOMLA n i know it pretty well. but there are few limitation like access level control and there is no component available for what i need. what i m confused about is that whether i should make that component in joomla or should i develop my own cms or should i take some .net based cms and write the component for it. I know C# and .net framework as a beginner. I just completed a certification course in .net last month and i don't know php but don't have issue in learning it...so what should i do...please suggest.
Well, as i understood , all you need to do is to adopt an open source CMS (joomla or drupal) and customise it. If you know a bit of php it will take you a day of expirementing to get familiar with making components & modules for joomla /drupal. Majority of the work you can do by customising the existing stuff and using third party open source components available already. The remaining small delta amount of work, you can code yourself.IF won't be that tough i can assure.
Developing a CMS of your own might not b a good option, as it takes a lot of effort to get a stable one with all features, currently being offered.
Also , if you have a doubt about the platform, i would suggest to stick on to open source platform, rather than Commercial one. The large number of OSComponents available as well as the large community support are factors defenitly you should consider.
writing your own cms is lots of work, so you should consider this carefully. Extending an existing framework could save you a lot of time.
In your case I'd choose a cms which fits well to my purpose and uses a language I'm familar with. So if you like C#, then look for an ASP.NET based cms. Of course, if you like to learn PHP joomla would be a good choise.
Usually, when I have to pick a platform I consider a certain number of variables. For example, does your customer want an open-source or a commercial platform? Is it concerned with being dependent on you for future changes to the system? Does he have already a hosting provider? Will he host the website himself? These are all tech-questions that should be kept in consideration.
I would strongly advice against writing your own CMS. That's a lot of work, and even the best and most tested products hide some bugs. Relying on something that already exists out there, it will speed your development up, as it will allow you to focus on the specific functionalities, and not on the overall system or basic features (client-server architecture, caching, views resolving, itemization, etc. ...).
I've worked quite a lot with many CMS, and in this period my attention is focused mainly on Umbraco, a .NET-based open-source CMS that has many interesting features. I personally don't like Drupal, Joomla, Wordpress, etc.
If you (or you customer) have money to spend and can afford a commercial platform, I would suggest you to take a look at Sharepoint or Sitecore; Sitecore is somewhat conceptually close to Umbraco, whereas Sharepoint is more extensive but there is more work to do to bring it up and running.
If you are looking for an e-commerce platform and PHP doesnt scare you, you could give a try to Magento.
I hope these few names can help you. I mentioned them because of my own personal experience and - to be honest - they are all good products...
Cheers,
Gianluca.
A few days ago, I read a question asking how many developers hand code their HTML/XHTML rather than rely on the WYSIWYG tools - https://stackoverflow.com/questions/406052/do-most-web-programmers-not-designers-use-wysiwyg-editors-or-hand-code-their
I tend to lean towards designing ASP.NET server controls rather than User Controls for use in my code. I do this so that I can reuse them by drag and drop into WYSIWYG and just set the few pertinent properties. This does cost a little extra in time designing the components, but simplifies things a lot when I come to using them in larger applications.
After having read that most developers seem to hand code rather than use WYSIWYG, it leads me to wonder: Am I wasting my time developing components this way?
Edit: To clarify - mostly, the original intent has been that these controls are for my own use. However, there have been a number of occasions when they could be useful for the rest of my team or potentially for public release. However, like most things, I tend to see the huge potential extra value provided by comparatively little extra work regardless of the probability that the extra value will be realized.
No, you are not wasting your time. Your potential user base will be larger if WYSIWYG users can easily use your components. If you are the only user of these components design them so they fit your development style. If you design visually then it makes sense to have WYSIWYG support.
You could create a UserControl and using different techniques get it compile into a dll that can then be referenced by your web applications:
Overview of some methods:
Link
Detailed method:
http://webproject.scottgu.com/CSharp/UserControls/UserControls.aspx
I never use the WYSIWYG tools cause it never trully is WYSIWYG once you facter javascript, and CSS and other things. (I know VS2008 got better but not perfect). And the designers are always sooo slow. I prefer to code using markup.
If your developing a commercial component that you intend to sell you should spend the time on having the most complete feature set IMHO. Including WYSIWYG. If your building components so that your or your team can use them, then you should evaluate the cost benefit of the time it takes to get your components that extra step.
I think you're not wasting your time, especially if you want to release these controls for other developers to use. If the effort required is truly "a little extra" and you find it helps you in larger projects I think your controls are improved by being WYSIWYG tool compatible.
Personally, I generally hand code HTML/XHTML but I like using WYSIWYG functionality on occasion. I've always found that controls that were WYSIWYG friendly were easier to use than controls that relied on all code being written manually.
For your own use you already know if you are wasting your time or not.
[me enters karma-bomb shelter]
For the public and the rest of your team I'm going to offer an opinion against the flow that you probably are... well not wasting your time, but possibly not making the best use of it.
I think very few web developers will take WYSIWYG offerings seriously, however if the majority can use your controls at a hand code level and the minority can do their drag and dropping then you've provided the benefit of choice which is never an outright bad thing. Except possibly where small children and good behaviour are concerned.
If you are more comfortable with your work in the WYSIWYG editor and developing server components makes your job easier, then I don't see why you should attempt to conform to other developers methods if what you do works for you.
I think you have to take that poll with a grain of salt. Just because most people on Stack Overflow say they hand-code their HTML doesn't mean that most web developers do. Tools like Dreamweaver and Microsoft Frontpage are highly popular tools, for instance, mainly because of their WYSIWYG features. Web hosting companies usually have WYSIWYG web page builders that are also highly popular. I hand-code most of my stuff too, but I do a lot of freelance work working with web developers from other companies around the world, and from my personal experience I would probably go so far as to say that most web developers DO use WYSIWYG tools. The more experienced a web developer is, the less likely they are to use a WYSIWYG tool, but those with less experience far outnumber those with a lot of experience.
You might pose the question, to yourself, "are other developers wasting their time hand coding controls?".
I'd typically just drag and drop controls on a page and alter the generated html when needed, if it's only used on one page. If the control and it's functionality are used on more than one page in the same web app, then I'd go to a user control. When it's going definitely going to be used across apps, then I only want to code once so I go to a server control I can easily distribute. I think the key is that it (the layout and functionality) are being used in multiple places, or you're about to use it in multiple places. It's just as much a "mistake" to have duplicate code in many places as it is to have spent more time developing reusable code for one use. Plus, it's software, so you can change it later!
I think your real question probably is, "is there a way to develop my UI that I should learn more about, because it might be better than the way I'm doing it now?"
Considering how fast things are changing, that's a question we are all asking pretty frequently. I reember the first time I saw sites that were developed with Ruby on Rails; and then I ran through a tutorial that had no step for wysiwyging; but everything was accomplished with CSS and themes; and it hit me that maybe Dreamweaver isn't the most productive environment for everything, and the result could be at least equally attractive.
Working through the MVC tutorials gave me the same jolt.
So I think it's at least worth trying the alternatives to make an intelligent decision about what works best for me, my skills, and my requirements. I want the best tools in my toolkit, even if I don't need them for every project.
Especially since you seem to appreciate that your current approach is taking a substantial amount of your time.
I would say that if it is indeed only a little extra work and it adds so much extra value it's hard to conceive it could be a waste of time. Users coming in behind you that look to use your components in future will find it a lot easier and will be saving a lot of time that would otherwise be spent coding by hand. Not to mention that if you can drag and drop a component with a mouse click and drag, then why waste the keystrokes?
Like everything else, the appropriate answer is 'it depends' ...
You have to measure the ROI of adding this functionality.
For the 'I'; Personally, I've never created a web control that would work for a wysiwyg editor, so I don't know how much of effort it is.
For the 'R'; If you work on a large development team, distribute your code, will reuse these controls yourself in a wysiwyg editor, or even just want the experience, then you will definitely get your return. But if doing this is based on future maintainence programmers; you may be leaning a bit into the over optimization side. (IMHO)
I would agree with the previous posts. I don't think you are wasting your time. Making your control WYSIWYG enabled allow users to do things both ways, threw the designer and threw code. Also some times it is easier to discover what a control does when you use the property editor, apposed to making your changes in code and then compiling and running the app.
When I started to program I loved WYSIWYG and used it for almost everything.
I started to code html by necessity, there was always something that i just coul not get right using just the WYSIWYG editor. Has time passed i realised that it was faster for me to simply right the html than using the mouse to set the properties, so as time passed i used more and more html until no more WYSIWYG editors for me.
Why did i tell you this story? because my personal experience tells me that a beginner programmer will love WYSIWYG and your efforts to make server controls and a advanced programmer wont give you any credit for it.
My opinion is that you should do as you prefer. If you do this way to please others, don't bother to if there is no beginner programmer on your team.
That's my 5 cents ;)
I think I would create the control if it's used in many places. Even you hand code the html, it still saves time, and simplify the work.
but I agree that hand-coding html/css is more efficient, WYSIWYG web page builders don't support this very well.