Posts mit dem Label WSM werden angezeigt. Alle Posts anzeigen
Posts mit dem Label WSM werden angezeigt. Alle Posts anzeigen

Mittwoch, 13. März 2013

Custom render tags API documentation finished

The documentation of the custom render tags API has been finished in the OpenText developer network community. You can have a look here: http://tinyurl.com/OTDN-WSM

The documentation now contains details step by step samples for
  • Custom render spots:
    • Global constants render spot
  • Custom provider:
    • Global constants page / Global constants provider
  • Custom render tags:
    • Reformatting comma separated lists as XML
    • Page state information
In addition, the documentation contains information about general problems like:
  • How to cache information within customizations?
  • How to execute RQLs within customizations?
  • How to log information within customizations?
  • Where to put configuration data for customizations?

I'm curious to see the first customizations getting implemented. Let me know if there's something missing in the documentation or if you would like to see some additional examples.

Mittwoch, 6. Februar 2013

Finished first examples on custom render spots and provider

The custom render tags API documentation now contains the first two getting started examples for implementing a custom render spot and a custom object loader. These two examples show how to build a simple syntax for accessing global constant values like the text resources in the Best Practices Project more easily by just using two commands within your template:

<%% InitializeFromPage(A8EE657A1A8446CF90437A74B5CFEC6D) %%><div id="header" role="banner">
<!IoRedDotOpenPage>
<!IoRangeNoEditMode>
<%% stdLabelOpen %%>
<!/IoRangeNoEditMode>
<!IoRangeRedDotEditOnly>
<%% stdLabelClose %%>
<!/IoRangeRedDotEditOnly>

instead of using the more complex, redundant and more error-prone builtin commands like this:
<div id="header" role="banner">
<!IoRedDotOpenPage>
<!IoRangeNoEditMode>
<%!! Context:Pages.GetPage(Guid:A8EE657A1A8446CF90437A74B5CFEC6D).Elements.GetElement(stdLabelOpen).GetHtml() !!%>
<!/IoRangeNoEditMode>
<!IoRangeRedDotEditOnly>
<%!! Context:Pages.GetPage(Guid:A8EE657A1A8446CF90437A74B5CFEC6D).Elements.GetElement(stdLabelClose).GetHtml() !!%>
<!/IoRangeRedDotEditOnly>

Both examples come with full source code and compiled assembly. Read more on OTDN here.

Dienstag, 15. Januar 2013

Custom RenderTag Documentation

I just started writing additional Custom RenderTag documentation that will be part of the Web Site Management Community in the OpenText Knowledge Center. In addition to the documentation that is already part of the RQL documentation, it tries to give more examples, handson guides and a better overall overview about the architecture and lifecycle of a RenderTag.

Mittwoch, 9. Januar 2013

Implement your own media element integration

I finished the documentation on our MediaElement repository integration in Web Site Management 11 SP1. It can be found in the Web Site Management Community within the OpenText Knowledge Center. It's a wiki and is open to be changed by you ;-)
I'm eagerly waiting for feedback on the documentation. Is it understandable? Is something missing?

Freitag, 23. Dezember 2011

WSM 11.0 Technology Preview 2 is out

About three weeks ago, we provided a WSM 11.0 Technology Preview 2 to selected Open Text partners and few customers. Compared to the Technology Preview 1, this version is already feature complete, but the release iterations (the final tests) have not been completed.

The feedback we got so far is very very good. Almost everyone is excited from the performance this version is providing, i.e. working in SmartEdit while doing a full publication or importing/exporting projects very fast. This shows us that we're on the right track and that our internal performance results are not far away from real world scenarios.

Be prepared for the final version!

Freitag, 8. Juli 2011

First OpenText Web Site Management Server 11 Technology Preview Feedback

Today, I got the first performance feedback from our technology preview partners. Some partners who tested with big projects that had caused some headaches in the past, where quite excited about the performance. While doing a publication, the cpu usage climbed up to 90 %, memory was filled and working in SmartEdit was possible with a very good performance.

Maybe some of the partners who tested this could step up the plate and give more insights on their performance measures.

Some insides about the technology preview VMware:
We delivered a VM based on Windows Server 2008 x64 with 4 GB of ram, using 2 CPUs. For sure, it is possible that partners with adequate hardware could change the settings and test with even better hardware.

Montag, 4. Juli 2011

Using PDF 1.6 With OpenText Web Site Management Asset Manager

Reading metadata from PDF 1.6 documents in the released OpenText Web Site Management Server
versions is not working at the moment, as a quite old 3rd party component (pdfinfo.exe) used by the
AssetManager is not supporting newer PDF versions.
There is a pretty easy way to come around this limitation. All you need is the freely available
iTextSharp library and this small piece of code to create a console application called PDFInfo.exe
that behaves like the old version, but can handle the newest PDF versions:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using iTextSharp.text.pdf;
namespace PDFInfo
{
    class PDFInfo
    {
        static void Main(string[] args)
        {
            PdfReader reader = new PdfReader(args[0]);           
            Dictionary<string,string> infos = reader.Info;
            foreach (string key in infos.Keys)
            {
                string value = infos[key];
                switch (key) {
                    // check if the date has to be transformed otherwise
                    case "CreationDate":
                    case "ModDate":
                        value = value.Replace("D:","");
                        value = value.Trim();
                        break;
                }
                Console.WriteLine("{0}: {1}",key.ToLower(),value);
            }
            Console.WriteLine("Pages: {0}",reader.NumberOfPages);           
            Console.WriteLine("Encrypted: {0}",reader.IsEncrypted() ? "yes" : "no");           
        }
    }
}


A full featured sample can be downloaded here. Please be aware that this
sample is using iTextsharp that is licensed under the Affero General Public License.

To actually use this small console program in your Web Site Management Server, build the console
app and copy the .exe file into your %RDCMS%\MediaCatalog folder. Please make a backup copy of
the old before.

Please also note that WSM is only executing the process for 5 seconds. If the process needs more
time, e.g. with large documents, the process will be killed and no metadata is read. There is no
configuration possibility to change this threshold value.

The sample is provided without any warranty. Please try it on your own risk.

Freitag, 1. Juli 2011

Using WCF to create an RQL client for Web Site Management

A few days ago, I posted about executing RQLs in version 11. I clarified that the currently shown
way of using some .NET objects instead of the old COM+ components, is just a temporary way till
the RDCMSCMSXmlServer Web Service has been implemented with the means of WCF.
I'll now show you in detail how to create a WCF based RQL client that can already be used from
CMS version 7.5 on, I guess. At least WSM 10.1 will work fine with this implementation.



All the steps can be done in around 15 minutes.
As a short outline, the steps are:
1. Create a new console application project in Visual Studio
2. Add a service reference to http://localhost/cms/webservice/RDCMSXMLServer.wsdl
3. A new XMLServerSoapPortClient is generated
4. Use the generated client to connect to WSM
5. That's it
Easy? Yepp, there's not much code you'll have to write manually for this example. As always, in
a real project, you'll have to do some additional work, e.g. creating a separate assembly containing
the client and additional convenience methods for sending certain actions. Probably making the
assembly COMVisible if it has to be called from your old legacy ASP code.

Mittwoch, 29. Juni 2011

Developing Custom RenderTags

Did you ever think of implementing your own RenderTag to ease up template development?
Management Server already provides everything you need for that task. There was only one small bug that was actually blocking the load mechanism of custom RenderTags. This was fixed for version 11 now and will soon be available in one of the next hotfixes for 10.1 SP2.

Here are the steps to develop your own RenderTag:

1. Open up Visual Studio and create a new class library project, e.g. My.CustomRenderTag
2. Add references to Reddot.CMS and Reddot.CMS.Rendering
3. Now add a new class and implement the Reddot.CMS.Rendering.IRenderTag interface, e.g. HelloWorldRenderTag:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Reddot.CMS.Rendering.Tags;
using Reddot.CMS.Rendering.Objects;
using System.Xml;
using Reddot.CMS.Rendering;

namespace My.CustomRenderTag
{
    public class HelloWorldRenderTag : IRenderTag
    {
        public HelloWorldRenderTag()
        {
        }

        public void Render(RenderStream outputStream, TagProcessor tagProcessor, XmlNode tag, ObjectLoadManager objectLoadManager, PageBuildContext context)
        {

            string text = tag.InnerText;
            if (string.IsNullOrEmpty(text))
            {
                outputStream.WriteLine("Hello World!");
            }
            else
            {
                outputStream.WriteLine("Hello {0}!", tag.InnerText);
            }          }
    }
}


4. Build the project
5. Adapt the main.config in your ASP directory:
add the following line in the <RenderTag>-section:
<RenderTags>
      <Tag name="helloworld" typename="HelloWorldRenderTag" namespace="My.CustomRenderTag" filename="<PathToAssembly>\My.CustomRenderTag.dll" />
6. Kill the RDCMSServiceProcess.exe
7. Now add your new RenderTag (<helloworld>) to your template

Dienstag, 28. Juni 2011

Delivery Server publication in Management Server 11

OpenText Web Site Management Server 11 has a completely reworked publication to OpenText Web Site Management Delivery Server. Management Server is from version 11 on using the WCF based Delivery Server .Net Remote API. This API is based on the new Delivery Server web services that have been introduced in version 4.0 and that have been further improved with version 9.0.

Does this lead to any changes in your projects? The answer is simply no. We have just been improving the way Management Server communicates with the Delivery Server without the need of changing your projects.

What is expected from this change?
The change is part of our big rework of the Management Server and is needed to get rid of the old outdated Microsoft SOAP toolkit. We also expect to have a more reliable communication and can get rid of the old web services in Delivery Server in later versions. We also are planning to introduce new features to make the publication to Delivery Server even more reliable.

Montag, 27. Juni 2011

Using RQL in OpenText Web Site Management Server 11

Manuel recently posted (RQL Development with OpenText Web Site Management Server 11) about how to adopt plugins for version 11.

From an R&D perspective, I want to give some more details. Manuels examples actually do not use WCF. Instead, Manuel shows an example on how to currently (in the version 11 Technology Preview) execute RQLs. There is no WCF magic in it. It is just showing how to access some .Net 4 based wrapper objects to execute RQLs.

For the final release of version 11, we will replace the webservice that was previously available under the following url by a WCF based implementation: http://localhost/cms/webservice/RDCMSXMLServer.wsdl
This old webservice was using the Microsoft SOAP Toolkit 3.0. This is quite outdated and was never really supported on 64bit platforms. We will not change the webservice interface described with the WSDL.

The new webservice will be build using WCF, which is a core part of the Microsoft .Net Framework. The WCF based service will still be using the SOAP protocol. Heh, you will certainly say, there is still SOAP in it. Confusing, right? SOAP is just the protocol used and the toolkit respectively the framework used before is called the Microsoft SOAP Toolkit.

Regarding the performance:
At the moment, we cannot really compare it, but we would expect that using the WCF webservice should be faster than the old way of using a COM+ object that was than using COM Interop.

I hope, this makes it a bit clearer.

Freitag, 24. Juni 2011

OpenText Web Site Management Server 11 and Microsoft SQL Server Denali

I'm currently testing Microsoft SQL Server Denali CTP1 with our Open Text Web Site Management Server 11 product. At the moment, everything is running fairly good on SQL Denali. I cannot see any bugs related to Denali so far.

Denali CTP1 itself is quite buggy when using it with SQL Server Management Studio 2008 R2. I was not able to create a new database or attach an existing database using SQL Server Management Studio. It only worked when I attached the database using sqlcmd.

I'm eagerly awaiting Denali CTP3 that should be available in mid of July.