Chris hits a few of the main differences between the CWA and DD4T project. My view is a bit simpler, so I'll share it too.
In a Tridion implementation your content lives (at least) three places:
in the Content Manager database as XML
in the Content Delivery broker
in the visitor's browser as HTML
Tridion systems architecture
ok I think I figured out the part I was missing. I assumed... wrongly... that the default route was not being used but it is. That is the route the ComponentController goes through. In my area route config I was not defining the default route, hence it was complaining about the route not being found.
Once I added the following to my area route config both ...
When you get errors like this, it's probable that the dd4t version you are trying to install is built against a different version of the contentdelivery dll.
You can either rebuild the dd4t solution with the tridion dlls you are using (download the source, set the references to your contentdelivery dlls, and build, or you can add the following in your web....
There's no reason why you still can't use the TBB's. I'd recommend using them in the event you wish to move away from the DD4T mvc framework in the future.
Simply output your content as REL and transform the TCDL tags yourself when you return your content from the broker.
The classic concept of BluePrinting does not change whether you use DD4T, CWA, or a classic Tridion DWT-based implementation. The only difference with DD4T is that instead of publishing rendered markup (i.e. baked HTML, Java, .NET or whatever server-side language), DD4T's templates publish XML (e.g. when you look at a component's source, just with a bit ...
As David said, there is no change to the authoring process for the editors and the Blueprint model is the same.
In terms of how the CD looks depends on your requirements and capabilities in terms of scaling and deployment set up.
You could have a single web application pointing to a single Broker database which all publications publish to in the model ...
Another way of doing this would be to write a number of mvc html helpers that would use the smarttarget query api to fetch promotions etcetera.
The flow would be something like
get parameters from the html helper (promo name, nr of items, region name,...)
construct a smarttarget query
send a query and receive xml with results. I believe the results are tcm ...
In terms of BluePrint design and authoring, nothing needs to change...
The process for creating schemas, components and pages etc. remains the same, and the methodology of using multiple BluePrinted publications to, for example, localise and/or translate content remains valid and can be identical to that which you know and love.
Architecture wise - things ...
Assuming your dynamically published Component Presentation is using a default DD4T style Component Template, all you need to do is retrieve the Component using the ComponentFactory as part of your controller action.
You can get the ComponentFactory from the DependencyResolver like so
var componentFactory = DependencyResolver.Current.GetService<...
The problem with multiple doctype declarations can be caused by some standard mvc view behaviour.
In your mvc project, you can define a _viewstart.cshtml file. In here, you specify the default mvc "master page" (called "layout page") to use.
This layout page will be outputted around all of your views that don't specifiy a custom layout.
you can specify a ...
Sounds like you're using the Tridion 2013 providers which come with that template.
You should run the following commands from the Package Manager Console:
Then in the DD4TNinjectModule class, change the using statement to match the provider. Lines 11 and 12.
// TODO: Change this ...
I'm not sure what the problem is, there could be a lot of causes, like a different configuration between your local environment and the other server.
It might be useful to set logging to debug.
To do this, go into your config folder on your localhost machine, open the logback.xml and set this property to debug
<property name="log.level" value="DEBUG"/&...
Good question. I have not used CWA in a long time, but I will do my best to explain.
CWA is a product/module/architecture which allows you to store all of your content in the Broker Database. You then have a CWA enabled web application which uses OOTB JAR files to retrieve the content (i.e. Pages and their component presentations as well as binary files ...
As already answered by Rob and Quirijn, the LinkFactory from DD4T only does Component Linking. You can use the core Tridion Content Delivery API to page link though. Check the Tridion.ContentDelivery.Web.Linking.PageLink class and it's various GetLink methods.
//create a new PageLink instance for publication 199
var pageLink = new PageLink(199);
It looks like cd_dynamic.jar is missing in the lib folder.
Needs to remember that cd_dynamic.jar and cd_dynamic_conf.xml are dependent on each other.
cd_dynamic.jar should be placed in lib folder
cd_dynamic_conf.xml should be placed in config folder
I'd say that your approach is solid as the headers and footers are in a single item, which means they can be published once and changed globally.
I typically have a configuration file where I store 'global components' by TCM ID, this means you can get the item from the broker via the following:
var componentFactory = DependencyResolver.Current.GetService&...
I have created an OData Provider. It has not been committed to to the DD4T project yet (I am waiting on access), but I plan to in the near future. But I am happy to share my code base if you drop me an email at email@example.com
It is still a bit of a work in progress, but it has page, component, link and binary support. The performance is ...
OK - Looks like for XPM or style="SiteEdit2012" you can just go with an empty SiteEdit_config.xml file:
<?xml version="1.0" encoding="utf-8" ?>
<siteEdit enabled="true" style="SiteEdit2012" tridionHostUrl="http://xxx.xxx.xxx.xxx">
This enabled XPM without having to implement a <...
The problem here is that the DD4T LinkFactory class only looks for regular component links. It only queries the link_info broker table, which does not contain links to binaries.
When we had to implement a similar functionality, we had to customize the DD4T code.
What you could do is something like this
create a custom LinkFactory class, inheriting from ...
Dominic, it's indeed correct that, when you use the DD4T2 ViewModel approach, you should use the Html.Render helper function, and if you use the older models, you should use the Html.RenderComponentPresentationBy...() helper.
Regarding your question on "Do people typically expose pre-filtered lists of component presentations from their model", I have to say ...
Ok, I found out that it was still the Tridion.ContentDelivery.dll. It was present, but it was a different version than my Provider dll was built against. So the provider did not want to load it.
See the comments on the previous answer to see how the fix was done.
A great way to test is to load the unity (or whatever framework you use) configuration to ...
You can also query Fredhopper directly via the query web service -passing the various facets you wish to query on.
Fredhopper will return results that contains several components such as a breadcrumb, facetmap, item lister and promotions.
You can then render these as you wish.
DD4T uses the filesystem to cache binaries which are being retrieved from the Broker database. For this, it uses a HttpModule called BinaryDistributionModule, which checks each incoming URL to see whether it requests a binary. If a binary indeed is requested, a call to the BinaryFileManager class, which writes a fetched image to the filesystem if the publish ...
I'll take a stab at explaining this.
DD4T's TridionControllerBase.Page method is decorated with the HandleError attribute. This is an inherited attribute, meaning it's also applied to your override.
Now, the HandleErrorAttribute (for which you can see the source here) replaces the view model in ViewData with its own HandleErrorInfo and renders out (by ...
The issue with trying to reuse a single ICacheAgent instance is that both the ComponentFactory and PageFactory classes override the GetLastPublishDateCallBack property, and both make assumptions about the type of cached objects they will handle. The ComponentFactory assumes that the cached objects will implement IComponent; the PageFactory assumes the cached ...
Is your source encoding UTF-8? If so you should run the JVM with the argument
This can be achieved either by adding this parameter to the jvm.xml (if using a .Net web application) or in the startup parameters of your application container.
For jvm.xml (located in bin/config of your web application) the syntax is