Adobe CQ / AEM Informations - adobe

We are studying the possibility of changing our current website to the AEM platform and i have some general questions that i couldn't find on Google.
1) We are a language school and we offer several courses, we have all the website data on SQL Server. I saw that i can create components on AEM to use on the visual editor, would i be able to, let's say create a component to display the HTML from my DB on a page or create a component to create the HTML i have on the DB ? Would i be able to create an component to show my last news automatically ? To show all my news on a pagination page ?
2) We also have registration pages where you can enroll and get some discount, we have this as an form that will post this information to an third part API and receive a return, redirect the page and go to the second step. Would i be able to reproduce this with AEM ?
3) How components are created ? I don't need an 101, just the basics so i can understand how it works and how can i use it to solve my problems.
I have tried almost everything on the web, there aren't many courses, tutorials and trainings and the manual isn't really friendly.
Do you know any good course besides Adobe ? It's really expensive and they aren't available on my country.

I am not sure if you have considered all options before choosing AEM. AEM is an enterprise web cms and comes with a price. The consulting and training services are also expensive.
Other than Adobe, there are several sites that has loads of information and resources on AEM. I tried to compile them here http://www.practicalaem.com/category/references/
On youtube you can find several sessions on using AEM.

Related

Add Google Analytics Tracking to Dynamics CRM Install

I'd like to add Google Analytics tracking script to all page loads in Dynamics CRM - so I can track and analyze how people work in the app and find pain-points with our processes.
I modified the tracking script to pull the userID (GUID) and entity ID (GUID) and put them into custom dimensions. I expect to use that to determine the user viewing the site, form name, entity name, etc. in my reports. I also set it up to
However, our developer says the best way to do this is to manually add the script to every entity (or something like that - but it's a manual thing done to every single entity). I feel like it's a web page... so it should be able to just have some javascript in the header like anything else.
Is there a better way? Any ideas? I don't want it to be hacky - this is for a production/enterprise system... Obviously I'm not very familiar with Dynamics in this light... Just looking for some ideas.
Assuming that the script is a piece of JavaScript you want to run on page load. Then adding the script to every page isn't just the best way to do this, but the only supported way to do this. Microsoft make available a number of ways to extend and customise CRM, unfortunately they don't just allow you to do anything you like.
So whilst CRM is just a bunch of web pages, they aren't your web pages to edit freely. Microsoft provide a number of extensible points but direct editing of the DOM isn't one of them.
I suppose a good simile here is that StackOverflow allow me to type any answer I like, but then don't allow me to change the font. Whilst this is a web page I can edit, it's not my web page.
That all said its worth bearing in mind what supported actually means. Something which is unsupported typically means:
What you want to do probably won't work easily.
If you do get it to work, the next update of CRM will probably break it.
Microsoft might not feel so obliged to help when it does break.
You may find Supported extensions for Microsoft Dynamics CRM useful.
In terms of what you do to make this work:
You could try hacking open the installed server files to find somewhere to add your script. However I would advise against this as its not supported (I advise against anything unsupported).
Your you can write the script once in a web resource, and use on every page. The only duplication required is to add the event handlers to each form, which is relatively quick for a single form.
Your users probably aren't using every page (and you can't add script to every page anyway, only forms) so just target the pages you need rather than trying to get 100% coverage.
CRM has a set of meta data web services you can use to create fields and entities. Perhaps you could use it to perform form edits and automate the process.
If you are looking to analyse system performance then perhaps adding form script isn't the best way to do it anyway. Tracking client form interactions only really scratches the surface of CRM usage anyway. What about plugins, workflows, data base, and web services which all execute server side but affect client performance?
Perhaps broaden your searches to include topics such as CRM monitoring, optimization and management. For example; Optimizing and Maintaining Client Performance for Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online.

Implement a multiple web project structure in asp.net webforms

I'm working in a web application that has several areas of bussiness work. With time it's size has became a problem to develop on and to maintain.
I would like to break the web project into several sub-projects or libraries depending on a main root web project that has the common files to share (Masterpages, Resources, Css, etc...)
Ideally I would like to have some kind of injection that allows me to optionally publish that "components" or simply publish a customized variation, although it's configuration depended on after deploy DB setup.
I searched all over the web, reading all the pages related to multiple projects, dependency injection and composite apps that I could find, 'till I soften my head, but couldn't find anything really useful.
Major part of the writings where a theoretical approaches or unit testing applications (well, you can't make your desired app, but you still can unit test something else)
Other approaches simply don't work in VS2010 .Net 4.0
Can someone address me on a COMPLETE solution or an example? Or simply lets discuss.
We say that the solution has the following structure, with module contents already separated into directories:
Solution
L_ Datalayer library project
L_ Bussiness logic /common utils library project
L_ Web project
L_ Controls
L_ Images
L_ Css....
L_ Warehouse
L_ Sales
Masterpages
...
Warehouse and Sales contains pages related to the "module"
Thanks,
I post my progress in the subject.
As per suggestion of Steven I experimented further more using MEF. Due to the lack of documentation, specially for webforms, that was a pain in*. So far I managed to implement MEF in my solution and sucessfully inserted a plugin project visible for the main app.
Then loads the available plugins, through an interface that has the plugin name, the default page url and its order, picks all this data and render a menu tab. That part it's easy.
Clicking on a menu element must redirect to the main page of the plugin, which will render several menus for its pages contained (from another export interface)
I finally got an aspx page embedded as a resource in the plugin project. Where I'm currently stuck.
¿Is there any way to render a page embedded as a resorce on a libray using MEF or I'm forced to also use a VirtualPathProvider? ¿Hows specifically the statement to redirect to that page? I've tried several ways but no-one works (MEF and VirtualPathProvider)
I looked at zillion of articles that talk about it but all them end doing control rendering, not page. So frustrating.
Though it is not an answer to your question, I am adding it as answer due to length of my suggestion.
I suggest you look into the approach NopCommerce is following where they have extended over .net with their own framework, which supports Plugins and extensions to existing solutions. Though I definitely know that nopcommerce is an ecommerce solution but if you study it, you can modify it according to your business needs or at least it can give you a heads on for what you should adopt while designing your solution. Hope it helps.

Will Drupal (or another CMS) work for me?

I have been planning a little side project of mine for a while now. Since the beginning I had planed on writing a CRUD application from scratch myself. Now after having a little more experience with web programming I think I would save myself a ton of time by using a CMS but being unfamiliar with these systems I do not know if I can do what I need to.
Users will create a profile.
Users will upload images.
Some users will be selling their products, others will be buying them. I will take a percentage. Think ebay without bidding.
Many javascript and php features such as image rotators and an app so users can crop their photos.
Will be integrating Facebook API.
Main reason I am considering a CMS is not to save time, but to make a safer website. I am not experienced with eCommerce and do not want to put my users at risk. Everything else mentioned I can and have done.
Use CMS like Drupal or just start from scratch?
Most of the CMS have the basic functionality you've mentioned in 1,2 and 5.
You'll have to write your own extensions for 3 and 4, or search for existing one that fits you.
Writing an extension for CMS will take less time than writing entire CMS from scratch.
If you want safe and stable code, then it's better to use existing CMS.
I agree with w3b4 that an open source CMS will save you time and give you major security and support advantages.
My experience of open source CMSs only extends to WordPress. I am sure you could make it do all the things you want with a bit of work, but my gut feel is that it might not be the best platform to start out with if you main requirement is buying and selling.
However before you strike it off your list, check out the wp-ecommerce plugin and its various add-ons. This product has developed a lot in recent years and might offer what you need out of the box.

Dot net nuke without module development?

*This is more of an architecture level question.
I am new to DNN development , we are trying to build an e-commerce site which will showcase all the products which will be tied to our current order database.
Am I wrong in assuming that any custom development that I do via DNN would be in MODULE form ? I created few custom module (i.e. list of products) which would tie to database in code behind and display data from SQL. This seems to be very heavy approach if I have to make modules for every functionality.
Is there a better way here ? Can I (is it recommended) to directly change the DNN pages to accommodate this type of functionality ?
UPDATED
Is it possible to do development without moduels ? i.e. provide code right in the html text editor or something. If i create new module from DNN template then it adds many files ....that is why it feels heavy
It is strongly recommended that you not directly change DNN. This will make it very difficult to apply upgrades to DNN and cause headaches for whoever maintains the site after you.
The main extensibility point in DotNetNuke is the module. The module is just some executable controls that you can place on any page. It shouldn't be significantly heavier than any other approach you would take. Whatever you want to do in DNN itself, you should be able to do in a module, and just place the module on a page.
You could also potentially have some of your functionality in the skin, rather than the module, if that is easier or makes more sense. Generally, the skin has functionality that is shared across most pages in the site, and module are used to place specific content on specific pages.
If you're looking for something simpler, you might try using the core reports module, which will allow you to style the results of a query from the database (if you don't need the interactivity that a module would provide).
Your good options are as follows
Build a separate Web Application for your e-commerce, but provide heavy inter-linking with the DNN site. With this method, DNN would be used for content.
Purchase a third party e-commerce module-set like SmithCart and try to configure it to meet your business model
Build custom DNN modules
Our current project utilizes option #3. We have 25,000 products and about 3,000 product listings with heavy customer-customization functionality.
While it might seem heavy, as in, a distinct module project per section of e-commerce, it doesn't have to be too complex.
Example Modules:
Product Listing
Product Details
Shopping Cart
Order Checkout (we split this into 4 modules)
Search Module
Search Results Module
You can use URLRewrites to map all your products to the same DNN Page/Module.
As a result, we really have very few non-content DNN pages.
In summary, it might feel a bit heavy, but with the proper design it can go rather smoothly in comparison to a separate web app.
There are ways to use existing DNN features without module development. You can do it by adding a sub application in your folder.
For example, you can look at http://www.firstphera.com/GiftRegistry/Index.aspx, FirstPhera.com is a main dnn application and folder GiftRegistry is a pure asp.net sub application that uses dnn's providers to deal with database. Custom implementation of registration and login was the only thing that was challenge, everything else working fine.
But If are building an e-commerce application, at long term you will get benefit from module development way.
It is not strictly necessary that you create separate complected module like you shown in screen shot. If you look at blog module, it has feature like latest blogs, search blog, archives etc are all implemented in single module.
It is also possible to create a single module with related features in dotnetnuke using the technique called ModuleDefinitions. Look http://lakhlaniprashant.blogspot.com/2010/04/dotnetnuke-what-is-module-definition.html.
I would strongly recommend to visit NBStore source code if you want to understand the e-commerce related module development in detail.
Please let know if you have any other question.

Can Drupal be used to make any kind of website?

I have worked on websites before and always hand coded in each. But as the size of the website grew, it really became difficult to manage them. Our is a college fest website which has a number of online games (like online trading, woodstock , forex and several online quizzes ) . This year we are thinking of migrating to Drupal for this website. Would it be a good choice ?
Drupal will do a fine job of managing users and associated information about users. It will create a framework that you can leverage to integrate your games into the system.
However, the games themselves will likely need to be translated into using the Drupal API, which isn't trivial. Drupal's learning curve can be steep, particularly if you have your own style of doing things.
Having said that, Drupal is extremely flexible and is more aptly called a Web Framework than a Content Management System.
I suggest you create a test version of your site on a local install and see how it feels to try and integrate one of your existing games into the Drupal framework. You'll know quickly if you like it or not.
Drupal is flexible enough to be used for any kind of website, but it's primary focus is around content-centric social networking or community sites. It works great for content pages, blog posts, products, etc. If you are building more of an "application" (ie, a web email client, web-based games, etc),you will have more work to do, to work to customize it.

Resources