how large E-Commerce applications can be created using CMS tools? - asp.net

Can one create a good e-Commerce application using a tool like DNN merged with some ready made shopping cart? I did not use DNN before, but I think, it will be tough thing to do, I think I will face troubles with performance and maintainability.
Further I think it is almost impossible to convert asp.net web application to DNN, this will wast more time even if I throughaway the UI layer.
Probably it is good to create a small e-commerce application using DNN, that kind of applications that costs 3000 USD, created for once, and not likely to extended.
Talk to me about this.
Thanks

Can one create a good e-Commerce application using a tool like DNN merged with some ready made shopping cart? Yes... But you'll be better served by just using some of the off the shelf cart modules for DNN.
Further I think it is almost impossible to convert asp.net web application to DNN, this will wast more time even if I throughaway the UI layer. This entirely depends on your skill level in writing DNN modules and the needs of the application. No way to even answer other than to say: Why bother? If the application is done and ready to go, there's probably not much of a reason to rebuild it within DNN.
Probably it is good to create a small e-commerce application using DNN, that kind of applications that costs 3000 USD, created for once, and not likely to extended. There are numerous free and open source eCommerce modules for DNN. There are also several good paid for eCommerce modules. Why bother creating your own? Especially if you don't have much experience in writing modules for DNN...

I'm not clear on what your goal is. Plenty of people operate e-commerce sites using DNN. If by large you mean you are looking to take on Amazon then DNN is not for you.
In my opinion DNN's strength is around content management, if you need significant content management and commerce functionality then DNN is likely a good choice. If your primary concern is commerce functionality with little or no other content management needs, then I would look to something more focused on commerce.
It is very possible to convert existing apps to DNN. You will need some understanding of how module development and skinning in DNN works, and then you will find that much of the existing code can likely be copy paste into a module. Once you understand how/when skins and modules are run you will find you can drop in pretty much any ASP.Net code and expect it to work. Of course to take advantage of DNN core features (membership and permissions are common items) you will need to use the DNN APIs. Also it is possible to run DNN side by side with an existing application under the same website.
To me it makes sense to build on DNN if your application will receive significant benefit from off the shelf core and extension module functionality. If you can't remove significant features from your development schedule by using DNN, then you probably shouldn't use DNN.

I haven't found the currently available DNN E-Commerce modules to be good enough to run a site that is really focused on E-Commerce. You should make sure NBStore (a free an Open Source Module) won't meet your E-Commerce as it is very well built but isn't particularly feature rich. Catalook, while feature rich, is terribly written, and I highly recommend avoiding it. Most the other available modules don't have all the needed features for a serious online store.
We've been using AbleCommerce when E-Commerce is the primary focus. AbleCommerce is feature rich, very well built, and relatively easy to customize and extend. We have done basic integration between AbleCommerce and DNN where we used DNN for the main site and AbleCommerce for the E-Commerce piece. AbleCommerce just ran as a Virtual Directory within the DNN site. We did not integrate login/user functionality which was fine for the site. If you truly need the capabilities of DNN, this may be a good way to go.

Related

When not to use prebuilt CMS?

Is there any case that creating your own CMS for a specialized website more advantageous than using a prebuilt CMS such as dotnetnuke or umbraco? Can anyone site a project when they had to create a custom CMS and not used a prebuilt CMS? Where to draw the line from using a prebuilt CMS to a customize CMS? Or is using prebuilt CMS always more advantageous than building your own CMS in any type of content driven website?
With the quality and variety of current open source offerings, I would say it's almost never a good idea to start from scratch. It really comes down to requirements and features. There's a huge variety in the features and user experience of different systems out there. You really need to figure out the priorities (performance vs. ease of use vs. flexibility vs. extensibility vs. SEO) to choose the right one.
I generally go with DotNetNuke with an assortment of custom modules to enhance aspects of its CMS and SEO capabilities. There's just not much you can't do with DNN once you really get to know it. But if performance is your highest priority, another option might be preferred.
I think it depends what the overall goal of the project is. If you are building a marketing website or your project can be easily accomplished with a pre-built CMS then you should certainly start there and build modules or customize a little if needed.
However, if you are building a web application that's core functionality is not just content, page management you have to consider going a custom route. Pintrest, Facebook, Flickr, etc. would definitely not start with a pre-fab CMS.
The Onion started with Drupal at one point but realized their needs were so custom that they ended up doing it all in Python/Django. Plus, with frameworks like Python/Django and Ruby on Rails if you are building web apps you can easily create the CMS features you need.
We do a lot of DotNetNuke, some Drupal and all of our custom web apps we are doing with Ruby on Rails. Once you have the requirements and goals of the project you have to look at your tools and see what is the best for the job. And sometimes it's making your own tools :]
if you move for a prebuilt CMS, you have to use their available functions and do improve whatever your features. but if you go fro a new custom CMS, you are free to customized to the maximum.
What are your requirements? If the majority of your requirements (65% +) are CMS related requirements, than I would strongly recommend looking into existing CMS solutions (opensource or commercial).
On other hand, if your CMS requirements are about 35% of your total requirements, then I would consider implementing in-house, fairly light-weight CMS.
Be aware, CMS sounds like an interesting and easy to tackle task, but when it comes to it, it is likely to be the most complicated project that you have ever worked on, mainly due to its extensibility, security and efficiency related requirements.
It all depends on what the requirements are for the project.

writing from scratch or using CMS for heavy database use website

we want to build a website that have some forms (including image attachments, info, etc…) online payments, tracking system, and other features that I may add later.
The number of users using the site is estimated to be maybe more than 50,000.
I'm using Wordpress to develop regular websites, but I'm afraid to use it in this project because I don't know how optimized is WordPress for high database usage (and page rendering, bandwidth usage, and …)
My options (those that I know) are:
WordPress
Drupal
Pressflow
Agility CMS
Writing PHP/MySQL code from scratch (or using a framework)
I know it maybe unrelated, but how good is to use ASP.net instead of these options?
Right. If you are most comfortable with PHP (the scripting language behind Wordpress and Drupal), you'll most likely be more comfortable making the step to Drupal. Pressflow is just a fork of Drupal optimized for particular needs (and there are other forks of it -- all of them are really just Drupal and are often the basis for various Drupal distributions).
ASP.NET has a lot of capable options to do this. The most common ones (at least in my world), are Kentico, Umbraco, and DotNetNuke. There are a ton of others.
You'll find lots of capable CMS systems to work with no matter what language you're looking at. Use what you're most comfortable working with.

Whether to use CMS or not

I've started to wondering whether ASP.NET Webforms/MVC even have a place in the web developers toolbox anymore... It seems that CMS systems like Umbraco have replaced the web developers job. Yes I know that those CMS systems are built with ASP.NET Webforms/MVC - however is there even any reason for learning those things if all you gonna do is to use a CMS system anyway? - Also I cant find any situation where a CMS system can be replaced by your own web application.
My question is therefore: Is there any reason for learning Webforms/MVC when using a CMS?
EDIT:
My question might be more like: When should I use a CMS, and when should I go and build my own web app?
The problem with CMS solutions, and I mean all CMS solutions (not just Umbraco, or other .NET solutions, but in any language) is that you will always pay a price for using them. You may gain more from the time-savings afforded by using the CMS, but there are trade-offs to consider:
You will sacrifice a great deal of flexibility
You could pay a significant performance penalty. Many CMSs load a large amount of modules and code to service every request, and much of this is not relevant to a particular page function. (though some CMSs are more monstrously heavy than others!)
The future of your project is tied to yet another vendor, and their own choices
Very often, you rule out the possibility of using other databases that might have better fit your customer's needs (Umbraco doesn't support PostgreSQL, Kentico only supports SQL Server)
Once you start using a CMS you will be tied into satisfying the architectural decisions and API of the CMS framework, and you could eventually be backed into a corner.
This can be particularly problematic if your 'site' is more of a web application than a pure content delivery site. In such cases it can make more sense to choose to build using the full flexibility of the web application framework, rather than risk getting backed into an architectural corner.
On the other hand, if you are building a web site that has potentially hundreds of pages, with a lot of user-contributed content and is much less of a web application, then often a CMS is the way to go, and makes a lot of sense. But remember, you now have two frameworks and two APIs to learn and manage (your platform's framework and the CMS framework).
Writing a CMS is like invading Afghanistan.
Everybody gets a turn but nobody wins.
I don't think that Stack Overflow could have been built with a CMS. Does that answer your question? =)
Update
To answer your updated question.
If you want a regular corporation web containing news, articles, forum etc: Go ahead and use a CMS.
If you need to build a more custom web site like stackoverflow, a web interface for a system or anything like that: Built it using MVC etc.
I personally use a CMS for our corparate website and a MVC framework to build user and administration interfaces for our products.
Not every problem needs a CMS. In the same way not every problem needs a bespoke MVC/webforms website. It depends on what your requirements are. You pick the technology to solve the problem.
Build vs buy is the hardest decision to make. As a developer build always looks best. You can do better than that pile of carp they want to buy. Nevermind that you're reinventing the wheel, axel, cart, etc. To users/management buy always looks best. They don't have to think to hard about what they want and can have it now, not 3 months later after you write it. They forget it'll cost the same again to customise & make it impossible to upgrade.
I'll stop ranting now.
Umbraco is a pretty bare minimum CMS. To customize it (e.g. Version 7+) you'll need to know Heavy MVC, JSON, XML, Sql, etc.
In fact a Site built on Umbraco 7+ is entirely based on MVC views you set yourself and assign to SurfaceControllers (which are MVC controllers) and all you are really getting is the ability for users to edit things about your pages and have Umbraco manage it for you in a DB.
In short you still need experienced web developers to build a site on Umbraco, they just save a lot of time by not having to build the entire backend from scratch.
You use Umbraco to organize Document Types that define what Templates (MVC Views) are used for rendering different types of documetns (e.g. Web Pages) and then you built the template from the ground up with 100% control over the HTML, Css, and Javascript that get's output.
Imo Umbraco is more of a Framework like Django than a complete CMS.
Sure you can build a site in Umbraco and not customize anything, but it would be a pretty cheesey site.
The whole point to Umbraco is to give skilled .Net Developers a good platform for building a site on top of it, but they still have to build it.
Now sharepoint would be more of a complete CMS out of the box that you can do a lot with, but let's see a few problems with SharePoint...
Resource Heavy, eats 50+ Gig's to install
Eats 16 GB of ram just to boot it up (Sharepoint 2013)
Requires Sql Server 2008 R2 or equivalent (enterprise license, $$ chaching)
Requires Windows Server ($$chaching)
It's a monster basically, if all you need is a user editable blod platform... man what a waste of money. Foundation is free, but doesn't include things like the Blog Site Template, so you buy a server enterprise license ($$ big cachinge, 40,000$+ in some scenarios...)
Agreed. A CMS like Umbraco provides a (very) good out-of-the-box solution for the most basic applications. Any sort of specialized purpose is going to require additional programming knowledge. Anymore, though, and your major, if not primary need is going to be a good understanding of the business need. I think we're getting away from building the Legos themselves and on to building the neat toys with the Legos. Cheers!
A CMS (or similar application framework) will provide you with a lot of functionality out of the box, and many of them also have a good library of plug-ins. But you'll still need to write WebForms/MVC code if you want to add any custom features.

Comparisons of DotNetNuke with other CMS's/Web Application Frameworks such as WordPress or CodeIgniter

I have never used DotNetNuke before. I'm thinking about giving it a try to help me build websites, and I'd like to hear from other developers who are in a position to compare DotNetNuke with other CMS's/Web Application Frameworks.
I have used both DNN and Drupal to build fairly large, content-based sites. My focus is more on the production side... UI/themeing, module configuration, etc. I'm sold on Drupal, but there may be other choices that meet your needs just as well. I just happened to work with both systems in recent months.
Drupal's core taxonomy module gives you the benefit of creating a relationship between different kinds of content. If you have "article" and "video" content types, you can easily display data from both types based on the shared taxonomy terms. This is huge and something DNN lacks.
Drupal's hook system is also a big benefit when building your own modules or creating "sub-modules" to alter or add to the default functionality of an existing module. This allows you to customize functionality or take advantage of another module's functionality as your application runs. If you purchase a module for DNN, you will have to alter the module if it doesn't meet your needs. Once you do this, you will need to update it each time there's a new release that you would like to take advantage of. DNN modules seem to be more stand-alone solutions. For example, if a DNN module has a rating system, it's only a part of that solution. With Drupal, I can use the "5 Star" rating module in my forums, my blogs, my articles, my videos, etc. There's central configuration for it and I only theme it once.
The themeing layer in Drupal also gives you a large amount of flexibility in that process. My frustration with themeing DNN sites was that I was stuck working with the markup the developer used, with no option for altering the output without hacking the module. With theme hooks and function overrides, I can change the output from those modules to meet my needs (not completely sometimes, but enough), without touching the module code itself.
The biggest problem I had with DNN modules, including some of the most popular, was just a lack of documentation or discussions available for how to achieve your goal. While Drupal's forums can be hard to navigate and you might not always find the answer you are looking for, there are many outlets for gathering information. Honestly, using DNN made me appreciate the community approach of Drupal more.
I was left feeling that DNN would be fine for building sites with more basic needs. But for that, I would still choose something like WordPress or Joomla, considering they have much larger user bases and, in my opinion, are more sophisticated.
Hope this helps you some.
DNN is a pretty good .NET solution for CMS. If you want more flexibility, I would look at SiteFinity for .NET CMS systems. This is a very flexible and elegant CMS for .NET
If you venture out of .NET and want to look at PHP solutions, then DRUPAL, JOOMLA, and WORDPRESS are best solutions. Some comments about each:
WORDPRESS - Is the simplest and most elegant CMS to work with. Originally a blogging software, it has a super-easy user interface, although that also reads as more limited power and features. It's excellent for content driven websites and templates are easily built.
DRUPAL - Is very flexible and configurable, but I find it more complicated than the others. The Admin interface requires more programming knowledge to pull off and adding components and extras is a little more complicated. But, DRUPAL has been proven in the business and government world as a secure and reliable CMS.
JOOMLA - Is my personal favorite. It is also very powerful and I prefer the Admin. interface. Joomla allows for much flexibility and has the most user created modules and plug-ins out there. You have to invent near nothing with this one. I am biased in favor of Joomla, because I use it the most. That said, it has limiting factors against DRUPAL, such as user security features. But this is being fixed in the next upgrade.
Hope that helps as well.
I have development experience using both DNN and Drupal to build content-rich websites. My preference is Drupal for a number of reasons:
Development time-line was shorter; I was able to produce more in less time.
Drupal has a larger and more active developer community. More resources are available to aid in development.
DNN is not actually a CMS. It is only a framework; Drupal is a framework with a foundational CMS.
Drupal is easier to install.
DNN modules cost money; Drupal modules are free.
Actually, I put together some notes a while back when trying to understand the architectural differences between DNN and Drupal. Found those notes, they are here: DNN versus Drupal. Hope this is helpful.
I experienced a fairly high degree of frustration when working with DNN and I don't believe I am alone in that regard. About a year ago, ASPdotnetStoreFront abandoned their involvement with DNN calling it a "disaster to work with".
I am curious to know what piqued your interest in DNN and if you have a specific website project in mind. Regardless, I wish you success and I hope this helps.
I worked in a .NET development shop utilizing Kentico CMS. I agree, it is feature rich and stable. The API and DB are documented well. Overall, it is a great CMS. There is a limited free version: http://www.kentico.com/freecms.aspx
I'm testing out DNN right now. So far, so good, but I think it depends a lot on what you are using it for. I've only been looking at it for 3 days, but so far I do find the documentation lacking or outdated.
I evaluated many of the different Portal/CMS systems out there back in 2004 and DotNetNuke ended up being my choice and I've been very pleased with it, for everything but E-Commerce, ever since. DotNetNuke is endlessly extensible, easy to skin, easy for non-technical folks to update, has a great 3rd party eco-system, and the development team is very active and talented. There isn't a great Articles module in the core but there are several really good ones available from 3rd parties for a reasonable price.
I tried using Joomla a few years ago and hated it. Wordpress is good for a blog style site but doesn't have nearly the power or flexibility of something like DNN. I am intrigued by SiteFinity, Umbraco, and Kentico for sites where all that's really needed is a CMS, but not enough that I've bothered trying them over DNN.
Another good .NET solution - from what I've read - is Umbraco.
Take a look at Kentico CMS. It's commercial, but still affordable. In my experience from dozens of projects on both CMS, Kentico is much more feature-rich, stable and well documented.

why is the springsource.com website built in drupal?

I was trying to learn a little about JAVA frameworks like Spring. I hit view source on springsource.com and it's totally Drupal (a PHP CMS).
What's up with that? You would think they would build the site in their own framework, huh?
Because Drupal's more geared to a site of that nature, as it's a content management system instead of an application framework. It has modules for just about everything they wanted to do.
As Colin says on this page:
We have a very finite amount of resources which are frankly better spent on enhancing parts of Spring that are of use to the largest audience, not on modifying or implementing a CMS. While we did have to spend a decent amount of time tweaking the theme to our satisfaction, and inputing the old content, equivalent or more effort of this type would have been requiered with any solution. On the other hand, Drupal out of the box comes with all the functionality we need, so we didn't have to spend any of those scarce resources on development or customization of the product itself. It's that simple.
I think they figured that there was more value in servicing clients than writing a CMS for their web site. Springsource was (is?) a small company that cared about billable hours. I think going with this software was a good business move.

Resources