Demandware/SFCC prerequisites [closed] - demandware

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 4 years ago.
Improve this question
If one were interested in learning to develop on Salesforce Commerce Cloud (formerly Demandware) could they leverage knowledge in other frameworks to expedite their onboarding? If such other frameworks exist, which are they? What are some other ways a new developer in Salesforce Commerce Cloud could pick things up faster?
I am asking this question while keeping controllers, MFRA in mind. Please consider that when answering.

As a seven year veteran of Commerce Cloud (Demandware) development, a certified Developer, Support Technician, and Solution Architect, as well as a two time Subject Matter Expert (SME) for Salesforce Trailhead's certification team; These are my recommendations:
Learn to code Javascript with ECMAScript 5 syntax without relying upon frameworks nor ES6 features.
SFCC uses the Rhino engine and is not capable of using all the fancy
ES6 features you may be used to with Node or browsers. For more information on this, see: Frequently Asked Questions (Access can be gained by following instructions here.) Note: You will not be able to use jQuery in your controllers and modules. They execute on the server-side but not the same way that NodeJS does.
ExpressJS Controllers syntax
Storefront Reference Architecture (What they're calling MFRA now) uses a syntax & middleware pattern for its controllers that is similar to that used by Express.
CommonJS Module syntax
Understand how to define and use CommonJS modules. This pattern is used heavily within the SFRA architecture.
NPM Scripts
Understand how NPM Scripts are executed and configured. SFRA uses them for building all static assets (CSS, JS, etc), as well as unit tests, and deploying to a Sandbox.
If you're completely new to SFCC development and you'll be building more than just the template layer, you should use as much of the Commerce Cloud eLearning content available as possible. You can find this content from within the Commerce Cloud Developer Center.
Some suggested courses that were/are offered by Salesforce:
DEV001: Commerce Cloud Digital Architecture Overview
DEV101: Developing for Commerce Cloud Digital I - This is a paid course; highly recommended and required for dev certification.
DEV180: Developing for Commerce Cloud Storefront Reference Architecture - Focused course on developing using SFRA.
DEV181: Cartridges and Commerce Cloud Storefront Reference Architecture - Focused course on understanding cartridges and extending SFRA.
DEV201: Developing for Commerce Cloud Digital II - Critical scalability, performance, and customization learning that applies to all aspects of the platform.
Finally, after all that learning, you may find that you're having trouble getting up to speed or that you're not getting answers to your questions on SFCC Developer Center Discussion Groups. You may also request an invitation to the SFCC Unofficial Slack community by submitting this application form. Please keep in mind that this Slack is operated and supported entirely by volunteer efforts from other developers, architects, and business users. We would ask that you do your part to give back when you feel comfortable doing so.

I heard that learning AngularJS and reactjs would help alot to excel in Demandware.

It mostly depends on the project what you get.
Old Demandware uses pipelines, which look like algorithms and uses DemandwareScript, which is ECMAScript 4 and programming part is very easy. Frontend part saves states for some objects.
New Demandware uses controllers and has more code, I think currently it is ECMAScript 5. Grunt is generally used for continuous integration, with a lot of NodeJS modules. It is also more testable and Mocha, Chai and Jasmine is also used for testing. Frontend part is stateless, contrary to Angular or React and introduces promises.

Related

Why to use workflow system and what are my options? [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
I was reading the following post:
Why use Windows Workflow?
Now wf concept looks promising technology for lowering company costs on business process implementation. MS WF looks that it does not have everything for fast implementation. What are other wf/bpm options for fast implementation?
I have been working with workflow engines/systems (OpenText, K2.net, Metastorm, MS WorkFlow Foundation, ...) for past 10 years and I can say that wf technology can be very useful, however it's not suitable for solving all type of problems.
Basicly it's ment to solve process oriented tasks. You would ask your self what does this mean!? Well process is any entity that has start, duration and end. If you look the tipical company is buildup with processes. Apparently storing some final reports in such system would not be the goal... The power shows up when those tasks needs to be processed in controled manner or new process route is required. Classic implementation would require for developer to write additional code, good wf system will let you implement route change in a second without line of code and process versioning is not a problem. This in just one of the benifits.
You should look at wf system as platform for fast process development, monitoring, optimization and versioning. It should give you all the tools needed for BPM life cycle. Here you can find what I am talking about: http://en.wikipedia.org/wiki/Business_process_management
In my professional career I have developed one wf engine and one fully wf system based on MS .net technology. If you are interested in details please visit my web site:
http://www.gp-solutions.si/business/Product.aspx?s=pro&id=1&cat=2 With this system you can develope new process with all the forms, monitoring, security, documents,... in less then 10 min. You can not do this in traditional way of development. Save time and money is the name of the game here.
If you're looking for a commercial alternative for fast BPM implementation I worked with two .NET based platforms in the past - K2.net and PNMSoft.
I personally like PNMSoft (http://www.pnmsoft.com/) since it is native .NET, it supports WF and other technologies and is extremely fast and easy to use.
If you're looking for open-source alternatives, there are some .NET based ones like Bonita (http://sourceforge.net/projects/bonita/) but don't expect it to be as quick and easy...
Nowadays there are several open source BPMS under convenient license models.
For instance the Eclipse Process Manager "Stardust" (http://www.eclipse.org/stardust/) is a comprehensive and mature Java open source BPMS. Its commercial version is used in several products for different industries, also in combination with .NET.
browser-based or Eclipse based process modeler
Process engine in Spring or EJB mode, e.g. Tomcat
Web Service and Java APIs (SOAP, REST)
OOTB portal for workflow execution, business control center and administration
User interface mashup feature to include arbitrary UI technologies in workflow steps
embedded DMS
strong ootb system integration capabilities (JMS, WS, Camel,...)
Amazon Web Service Stardust image available (http://wiki.eclipse.org/Stardust/Knowledge_Base/Getting_Started/RTE_on_AWS)
commerical support and SaaS on demand offering available
suitable e.g. for human centric workflow, ETL, low latency and high volume message processing, document centric worklfow and document management,...
Best regards
Rob

Should I use a CMS or not for an ecommerce website [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 6 years ago.
Improve this question
Say I am required to build an E-Commerce website that could eventually become very very large. The site would start with at least 100,000 different products, and would include features like Amazon. Would you advise me to use a CMS? or to build this website from ground up?
Something to take into consideration is that if I use a CMS, there would still need to be lots of custom coding, since we want many features not commonly available.
Taking into consideration factors such as Speed, Security and Scalability.
Features would include: Different sets of details for different products, product comparisons, reviews, customer management, customer points system, and all the basic ecommerce features.
If you say CMS, Can you also suggest CMS's that would be great for this kind of store.
Thank you.
Well you have to consider many things. in general means, using CMS is good idea.It reduce development time as well as development cost. But you may need to make modifications on source code in order to gain what exactly you want from it. On the other hand build such application from scratch allows you to obtain exactly what you want. but its will takes time as well as much cost.
follow through bellow link
http://www.mykeblack.com/web-design/how-much-does-an-ecom-website-cost
and also if you choose an FOSS CMS find something has higher community involvement as well as support.
If you use paypal as payment method , check their web site. they suggest couple of good commercial CMS.
The ideal e-commerce solution for that volume would be Magento
The only downfall is that its very robust and has a steep learning curve. I do NOT recommend using a framework that is a blogging site first, with an e-commerce plugin or add-on such as WordPress. It will not be able to support the traffic, the product volume, or the security precautions that should be taken.
Obviously is better if you use a CMS, I recommend you OpenCart if you just want to do an E-Commerce web site, it's is so simple and Open Source.
For something bigger you can try Joomla as CMS and a great extension called VirtueMart (http://virtuemart.net)[3], it's very complete an extensible..
Any time you use pre-made code, you are at the mercy of the features included. Adding features can be significantly harder than with custom code.
That having been said, it is definitely not unheard of to START your site with pre-made code (or even a whole platform - like selling via Amazon) and only the included features so you can start making revenue while you write your own solution.

Which CMS is right for me? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I am looking to help out a non-profit get a website up and running.
Only, they don't just want a website with content, they also want to maintain a database of members, and allow those members to register and pay for classes/events/seminars held by the club.
It seems to me, that if all they wanted was to post content, nearly any of the available CMS's out there would fit the bill.
But the registration portion would require some customization.
I have considered just installing a basic CMS for them, and then creating separate web application for the registration section. And this would still work...
But if I wanted to hook into the users/roles from the CMS and use them in the registration side, I think I would have to have some way of either extending the CMS or easily using it's data in the sub-application.
I have been reading about the following CMS's:
Orchard
Umbraco
C1 Composite
All of them seem to have the ability to be extended, but I'm not certain how much "work" is involved to extend each. Given that my requirements are rather simple and the fact that I don't want to spend a ton of time doing this (it is free work, after all), does anyone have a recommendation?
I'd pass on Umbraco and C1 Composite, as they generally aren't user-friendly. I think Orchard is best, as it has the best feedback of them all. Umbraco is aimed more at developers who want to tweak a lot of things.
Orchard - https://stackoverflow.com/questions/1978360/anybody-using-orchard-cms
Link - Reviews/Comparison of Open Source ASP.NET MVC CMS
Umbraco would be a very good choice because it:
is mature and has a proven track record.
is very easy to use for most use cases.
has a built-in member system which could (and should) be used for the member registration.
has a Big and friendly community always glad to help out.
has lots of plugins and extensions covering some special use cases.
If you will go outside of .NET and IIS, Joomla is another popular CMS in LAMP. This can be hosted in either Unix or Win environments. There's a large community, lots of implementations and robust API for plugins. I run it on MAMP on my Mac, and it also runs on WAMPServer, for development.
Last year I created a membership style site in Joomla using Mighty Extensions for a bed and breakfast listing service (http://uurehome.com). Mighty User and Membership was enough, this adds custom user fields and subscription plans. You do have to pay for Mighty Extensions. Payment for the B&B listings is done thru Paypal, Mighty Membership enables this.
The subscription plan feature is Mighty Membership is very good. You can have length of time, cost renewals, renewal nag messages. Could have written myself, but why at this cost :-)
Joomla can certainly handle the community side of a non-profit site, there's the usual assortment of content, discussions, news feeds and so on. It's also ok for mere mortals to administer.
Not so sure about comparing to Orchard, as I haven't kicked the tires on Orchard. I have done enterprise web CMS for a living in the past, so I am used to evaluating these sorts of products. Orchard looks similar to Joomla in how it works, based on the screenshots I see in the docs. One thing I will say with confidence is that it's easier to standup Joomla (or something LAMP/WAMP/MAMP) than on the MS Webmatrix. However, if you already have a Webmatrix provider, then it's similar. Said by someone that has done a bunch of IIS and pretty much all the web technologies going back to the beginning of time (that's 1993).
Another aspect of using Joomla for me in this project, which is for a small business, was knowing that there's a bunch of Joomla knowledgable web design shops this owner could use if I stop helping her. While I am not going to say there isn't a base of folks doing web design that are doing Orchard, my sense is that its much smaller than Joomla. This is a factor for me in helping non-profits, churches and so on, not leaving them in a place where I am the "only" person that could keep whatever it is running. Still, if there's even a couple of local web design shops that do Orchard, I'd say that's enough to feel comfortable.
We built http://aclj.org on Orchard with a custom membership implementation within to support millions of members. We do form processing through Kimbia for donations and petition signatures. We're very happy with the implementation and feel that Orchard worked out well for us as a platform. It is VERY extensible and we developed 32 custom modules in-house.
For a non profit organization it is unlikely to maintain a costly server where LAMP stack has both low cost server and some decent CMS which meets your requirements perfectly. Some of them are :
Drupal
Joomla
WordPress
Any of them are highly extensible, got a great community support , plenty of themes and modules readily available and you can get awesome things for free though there are some paid once too.
And if you want my recommendation i would go for Drupal as it provides :
Build in role management service.
Very matured and friendly community.
Great scalabilty.
Secured out of the box
And some more .......
Hope that adds a new dimension to your search :)
Best of luck
I would recommend wordpress for your requirement.
Advantages:
1. More forum support.
2. Easy to learn.
3. Very less server cost to host the site.
4. You will have N number of plugins and widgets etc...
Hope It gives some sense :)

CMS: Build or Buy? [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
This question is a little subjective, however, it aims to give me a bit of information about whether it is better to build or buy.
My company is looking to enter the world of CMSs for our clients websites, do we provide an open source one, or do we build our own model from scratch?
If you buy, which do you use?
If you build, how does your architecture differ?
EDIT: The CMS we are looking to use isn't to maintain our own website, it is something we can offer our clients and pinned onto websites we are custom building for them, it needs to be something that we adapt and manipulate easily for many different website designs and purposes.
How about using opensource one? :-)
Today the only reasons to develop new CMS are:
1) non-usual requirements (deadly rare)
2) You just like to code "your own CMS" (c)
If none is the case, take opensource one.
Personally, I have my own CMS for all my private & commercial purposes, but this was mostly just for programming fun. If you need to deliver, you have to use existing products.
The company I work for wrestled with this same question recently. This depends a lot on your client's expertise and needs. It's generally not advisable to build your own CMS unless you're using it to offer something very novel.
Drupal has lots of plugins available giving a great deal of customizability. It's handy in the same way that most CMSs are in that you can use PHP files as your templates and code them outside of the CMS.
Wordpress has the best user interface of all the CMS's I've used (Drupal, EE, Wordpress, Joomla). If you need to program plugins it's also very well documented and (when the plugin is finished) provides a drag-and-drop interface for the client to make changes to their own web site easily.
I'm currently in the process of moving our site from EE to WP.
Well I can build a simple CMS in less than a day (and everybody can do that with any good web framework). So it depends on how complex it is and how much the open source solutions can do what you want your CMS to do. I generally avoid to use open source CMS because it is usually an overkill compared with my usual client's needs but that's me. Most open source CMS (drupal, joomla, wordpress) have many features that most people simply don't care and they clutter their user interface, so I prefer to build my own as far as it is simple instead of using an open source and struggling to add a new feature and make it scalable.
First, to address your build or "buy" questions - you would be crazy to build. The resourced needed to support code you write as it changes to meet each clients needs will end up costing you a fortune in the long run. It's hard to beat the resources of thousands of developers that many of the big projects have. Does your firm have a security specialist? How about a QA team that constantly searches for ans squashes bugs? Unless you are trying to do a one off, highly specialized application, pick a CMS and go with it.
Next, as far as being able to implement the CMS across many types of sites, that is entirely dependent on your firms developers. If your developer knows XYZ CMS, then he should be able to take any design and make it work for the CMS. Any good CMS has the design layer completely separated from the content and code so the design should not be limited by the CMS in any way. It's just a matter of learning the particular templating system employed by the CMS of your choice.
Last, I am surprised that no one has mentioned the solution to your wanting to limit the amount of control your clients have over their sites. As mentioned you can go the SaaS route and never give the client access to the administrative back end of the site. Any of the good CMS projects offer front end editing. This will allow your client to add/remove/edit the content on the site without giving them access to anything structure or design related. You can completely control the admin, layout, and functionality while the client simply controls the content only, which seems like what you are trying to accomplish.
This depends heavily on what you need, but many CMSs are a platform that you can build upon, getting the best of both worlds.
Wordpress has a very rich plug-in framework.
If you are ok with Windows servers, SharePoint has an extensive plug-in/extension architecture.
I don't think there's any reason to build from scratch unless you are planning to compete in the CMS market.
Do not reinvent the wheel. It takes really a lot of time and money to make a CMS.
If I were you, I would go with an open source CMS, start building custom stuff and contribute back what you can (this is how the company works where I work).
My choice is Drupal, because of the rich set of contribs, excellent flexibility/extensibility and good security.
I think it depends on how many clients are supposed to use the CMS.
We have only one client and built a proprietary CMS which we heavily customize to the client's specific needs.
It also gives us a strategic benefit since this client can hardly migrate his web sites to another company now.
If you have a couple (> 2) of clients who are supposed to use the CMS, IMHO an open source CMS would be the best choice.
Can you develop a new CMS as good as some other ones that have been around for years and hundreds of people have worked on it's development?
That's a question I always ask myself at the start of every website buliding project.
There is surely a good open source platform that meets your requierments and that you can improve.
I suggest these:
Liferay : for large organisations and advanced projects it's written in java. I personally love this CMS. Big places like NASA use it and my company used it for a project, it was great.
Plone : Same as above - language = Python
EZPublish for large organisations but not as advanced as Liferay - language = PHP
Joomla and drupal for normal websites.
As a design agency, presumably with a number of customers with live websites that constantly need to change that are taking manpower away from new projects,
My first question would be if I intend to migrate my existing customers to the CMS based version of their site
Then, What are the commonalities/differences in your customer sites?
If there is a lot of commonality (in the back end code as opposed to the front end design), then maybe integrating a basic article editor is all you need?
Look at how a CMS is going to affect your design flow, Your designs will then be CMS 'Themes', that'll be a learning curve.
I'm not trying to discourage you from Buying or Building a CMS, but the decision will be completely decided by your companies situation.
Personally I use Joomla and DotNetNuke. I'm a developer not a designer, so I buy off the shelf themes and modify them. I also had no existing clients when I started out. I decided to use a CMS specifically because I could buy themes, and secondry to that was the client modifying the articles.
I cant think of an open source CMS that doesn't provide everything that most companies would need.
you get the benefits of bug fixes, little deployment time and ease of documentation.
When selecting the CMS try to use one that is not too bulky or not too popular.
most CMS allow for easy expansion so if a client has special needs then its easy to add functionality.
A reason that you start to build you're CMS could be because the landscape of CMS systems is big (and you can't make up your mind on one system to put in all you're energy).
Do you want a simple CMS for a website, an integrations framework or personalization / social media.
As there are a lot of OS CMS out there, I wouldn't recommend you to start from scratch. Check for research EG:
http://www.slideshare.net/OpenSourceCMS/451-group-future-of-web-content-management-open-source-cms
Also check the OS license of products and how this could affect your projects.
Good luck!
Lots of good responses already, but I don't see anyone talking about the real users, the customer who is paying for this site.
One reason a CMS product is often better is that it can give you a lot of help material, usability refinements and add-ons that you won't get when you build it yourself. More importantly for the end-users, it can mean they extend and add to the site without needing to get IT to give them permission (and the run-around on budget/resources) to do so.
Another issue is that if you build it yourself, then that is the only copy of that software that is being security tested and probed. A product will have been through more penetration tests and probing.
On the other hand there are a wealth of CMS' out there and it can be confusing if you do not know what you want. The CMS Matrix is a good site for comparing all sorts of CMS' to find one that suits your needs.
I work for a CMS vendor, Elcom Technology, so I am slightly biased - but I have also used WordPress, SharePoint, DotNetNuke, Joomla and Drupal to various levels of degree and they all offer a big step up over something home-built.
A very important reason why you may want to choose something that is already made (FOSS or commercial) is that someone else may be able to support it.
PS
I've used CMSMS on various projects. It has enough user control to let them edit, but not mess with the layout and stuff.

What are some good Module Development Solution/Environments/Best Practices for Dot Net Nuke Modules [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 2 years ago.
Improve this question
I've been developing modules for DNN since version 2 and back then I was able to easily able to run my module as I developed it on my environment and still easily deploy my module as a DLL.
When version 4 came out and used the web site solution (rather than the Web Application solution). It seems like there was something lost. I can continue to develop in my test environment and immediately see changes as I make them, but releasing for me has become a headache.
I mostly do my development for one site in particular have just been using FTP deployment of the modules to the main site after I was done making changes.
I'd like to set up a good environment for multiple developers to be able to work on the module(s).
When adding stuff to source control, are people generally putting all of DNN into source control so they can bring the whole solution down to work on, or just their module and each person needs to set up their own dev DNN environment?
I'd like to start getting my modules projects organized so more people could work on them and I feel a bit lost for some best practices both in doing this and deploying those changes to a live site.
I have a few detailed blog postings about this on my blog site, mitchelsellers.com.
I personally use the WAP development model and I do NOT check the DNN solution, or any core files into source control, as I do NOT modify the core for any of my clients. When working with multiple people we create a similar environment for each person, and still can work with each of our individual projects, at times we will have completely isolated dev environments with individual databases and code, at other times I have worked with a shared dev database to resolve issues with dev module installation issues.
With the WAP model I use a method to dynamically create my installation packages on project build using a post-build event and then I have a test installation that I use to validate that the packages occur. Debugging is then done via Attach to Process.
I would suggest Mitchel book if you are needing some reference material - Professional Dotnetnuke Module Programming by Wrox Module Programming - Michel Sellers