In this post, I will post about Best ASP.NET Hosting for Composite C1 6.0. Composite C1 6.0 is really a cost-free open source CMS depending on Microsoft technologies. Develop for and by web specialists Composite C1 6.0 will be the perfect tool to create and maintain effective corporate websites, although nonetheless remaining simple and accessible for the editors. Composite C1 6.0 CMS is a totally featured free of charge open source web content material management program created for (and by) web pros who focus on customized websites. The user interface is quite functional and process oriented and enables customers of varying expertise to finish tasks and cooperate using familiar tools and guides. Composite C1 6.0 has more than 16.000 world wide installations world wide operating every thing from tiny companies and private.
Composite C1 6.0 is amongst the prime rated open source CMS worldwide built around the Microsoft stack. A powerful CMS that will not let you down and won’t get inside your way.
What is New in Composite C1 6.0?
With this release end-users can search for content and media files from within the console and there is now a much better experience when inserting functions, thanks to a new feature we call Components.
Website builders can add sophisticated search features to websites, manage canvas styling for WYSIWYG editors depending on what section a user edits and control where Components can be inserted.
Developers can hook in to our Dependency Injection framework, build search providers and leverage the new WebSocket based WAMP router and new client-side framework for building custom UI, based on ReactJS, Redux and Wampy.
There is also support for creating completely custom perspectives, deep linking to items in the console trees and more.
IIS8+ / WebSockets required for full console feature support
The system requirements have changed for this release. You now need IIS8 or later and WebSockets must be enabled on your IIS server.
You can now find pages, data and media files in the console by searching. The feature is installable as a package (available in preview) and currently we have an Lucene.NET based search provider ready and available as open source.
To get search on this release, install the package Orckestra.Search.LuceneNET.
Under the hood are new APIs that enable you to execute searches against content and create your own search provider, should you need it.
The search is integrated with the data type system in C1, meaning that the search will include core and custom C1 data, provided you declare you want this, either through UI or code.
For UI based data types, you will find new options when you edit your data type, enabling you to have a data type made searchable and giving you control over how fields can be searched.
Components are a new way to insert functions – it is a lot more intuitive to use and it can do a lot more tricks, like insert HTML blocks and generate markup at insert time.
To create a component, simply add a xml file to ~/App_Data/Components with the desired markup. You can augment the file with attributes and customize title, group, images and more.
The above component will be presented to the user using the values specified with the pal:* attributes. The content of the body is what will be inserted. In the above case this will simply add the function Composite.Media.YouTube like you can do via the existing “Insert Function” feature, but with components the user experience is a lot more easy and intuitive and you can mix in static html and more than one function in the inside the body and this use this feature to do a lot more.
Beside from html documents – which will be copy to content as is – you can make function documents, which will prompt the user to fill in function parameters, and then insert the result of the function execution.
You can augment components with container class names (see below) and there by limit where a component can be inserted. For instance, you can limit a component to only be available in the WYSIWYG editor when users are editing a specific placeholder or the content for a given page type.
You can attach class names to placeholders in the CMS, both at template level and per page type.
Doing so will have two effects: the class names will be attached to the body of the WYSIWYG editor’s canvas, enabling you to have custom styling for individual placeholders. Also, the components that are available for user selection will be filtered according to the active container classes and filter rules defined on the component (if any).
For page types, if you add a Placeholder Content element to it, you will find a new field “Container classes” on the Settings tab, where you can add one or more container classes.
If classes are specified at both template and page type level, the combination of both sets is used. If you want one class to rule out another (for instance, ensure “wide” and “narrow” cannot coexist) you can define this in ~/App_Data/Composite/Configuration/AntonymClassDefinitions.xml
If you are using the Visual Editor on for function parameters or data fields, you can configure what container classes are sent to the editor via a new parameter ContainerClasses on the Composite.Widgets.XhtmlDocument.VisualXhtmlEditor widget.
We have used the DI framework from ASP.NET Core
Getting a service
To request a service, use Composite.Core.ServiceLocator – for services registered with the locator, you add the required services to your class constructor, as described in the ASP.NET Core documentation.
Registering a Service
You can register services during the startup of C1 CMS – to do so, create a class marked with the ApplicationStartup attribute and implement the ConfigureServices method as shown below.
The IServiceCollection that is passed to you, let you resister your service as singleton, transient or scoped (shared per request).
Function Parameter construction via Dependency Injection
When editing/executing Functions (Razor Functions, MVC Functions, C# Functions etc.) that have one or more parameters of a type that the DI Service Locator can provide, we will hide those parameters from the user UI and dynamically populate the parameter by getting instances from ServiceLocator.
This enable you to extend DI use to Functions in C1.
We have a new NuGet feed for our core assemblies and dependencies – this package ensure that your references to C1 CMS assemblies are marked as “do not copy local”.
While looking around for a more up-to-date technology for client/server communication we came across WAMP – Web Application Messaging Protocol – and we are quite happy to have this included in C1.
WAMP provides Unified Application Routing in an open WebSocket protocol. Routing of both events (for PubSub) and routing of calls (for RPC) between applications components in one protocol. By using WAMP we can build distributed systems out of application components which are loosely coupled and communicate in (soft) real-time.
Our implementation of Wamp make use of WampSharp open source project to build a singular router which would accept different roles to be registered and routed.
- Realm: A Realm is a routing namespace and an administrative domain for WAMP. For example, a single WAMP router can manage multiple Realms, and those realms are completely separate. We have used a single default realm for core operations however our interfaces exposed realms if you need to separate your namespace.
- Caller: A Caller issues calls to remote procedures by providing the procedure URI and any arguments for the call.
- Callee: The Callee executes the procedure using the supplied arguments to the call and return the result of the call to the Caller.
- Publisher: A Publishers publishes events to topics by providing the topic URI and any payload for the event.
- Subscriber: Subscribers of the topic will receive the event together with the event payload.
C1 now supports and exposes interfaces to easily register Callees and Publishers in backend.
A new way of building a console
The UI for the Components and Search features are based on this new technologies.
Server access with RPCs and PubSub
Web application UIs usually access the server in one of two ways: Listening for messages, and fetching or putting data. The former is useful when you need to know when to update the view, and the latter is good for pushing changes to the server or fetching information from it. To that end, we have picked WAMP – Web Application Messaging Protocol – which provides both these functions. We use a lightweight implementation called Wampy on the client side, which means we have easy access to fluid updates and quick server calls.
A pony trick you can try out is to make updates to one of the component files in ~/App_Data/Components and see changes update instantly in the client Component view when you save your file. This is an example of our use of PubSub.
Client state and a single source of truth
Keeping a client state under control is often difficult, so we chose Redux to help us do it. This Facebook-sponsored library is becoming an industry standard with its sharply delineated update steps and clear activity tracking, as well as its high level of developer support and tooling. Redux works by dispatching actions to perform state updates. Whenever some aspect of the application changes, Redux has an action for that, and the effects can be tracked through it. This allows us to even ‘time travel’ by stepping back through the actions that were dispatched, showing us the state as it was before.
Markup, style and rendering
React, another industry-standard library, was our choice for rendering content. React provides the ability to build your user interface from components, each containing the code and markup they need to show a part of the UI. Styled-components adds to this the ability to enclose style information organically with these components, meaning whenever we render a component in a new place, it comes complete with all its needed pieces, improving reusability. React also interfaces well with Redux, mentioned above, making for clear, fast and easy state handling, re-rendering and updates of the browser view.
Modules and the management thereof
In development, we have taken up using the ECMAScript 2015 standard, allowing the use of promises, template strings, and above all modules. To this end, we’re employing JSPM, System.JS and Babel. System.JS is a module loader system based on the WHATWG System standard, and JSPM serves as a package manager – in the vein of npm or bower – that integrates with it. System.JS also provides our production build system, providing a single, lean bundle that loads quickly. We use Babel to transpile the codebase into something runnable by older browsers, which allows us to remain compatible with IE10 and 11.
Where they’re going
The first few pieces of the new console UI are meant to battle test our concepts, to see what might need adjustment and what works well. New UIs added to the console will be based on our tools and experiences from this, and meanwhile we will be working to build a full version of the new UI to replace the old one.
Perspectives – like Content, Media, Data – have been opened up, so developers can now own the entire canvas, breaking out of the tree/command buttons/browser view. We’ve used this to provide a custom search perspective.
Best ASP.NET Hosting for Composite C1 6.0 Recommendation
ASPHostPortal.com It has been topping the list of almost all the web hosting evaluation sites so far. Composite C1 6.0 can be a free of charge open supply CMS according to Microsoft technologies. Construct for and by web professionals Composite C1 6.0 would be the best tool to construct and sustain powerful corporate websites, although nevertheless remaining effortless and accessible for the editors. Their hosting platform is perfect for Composite C1 6.0 Hosting. You’ll get the best, trustworthy and advisable Composite C1 6.0 hosting with ASPHostPortal.com. Their Greatest, Reputable and Suggested Composite C1 6.0 hosting. ASPHostPortal.com is now providing totally free domain and double SQL server space for new clients to appreciate the company’s outstanding net hosting service. Their servers optimized for your Composite C1 6.0 installation 24/7/365 ASPHostPortal.com technical support from Composite C1 6.0 hosting specialists.
As a top tiny to mid-sized company net hosting provider, ASPHostPortal.com strives to offer essentially the most technologically sophisticated hosting options obtainable to clients across the globe. Safety, reliability, and functionality are in the core of their hosting operations to ensure every site and application hosted around the servers is very secured and performs at optimum level. Unlike other web hosting organizations, they usually do not overload the servers. All their servers are equipped with minimum Intel Dual Processor Multi Core, eight GM RAM and also the fastest 1,000 Mbps connection backbone. This really is to ensure that all internet sites hosted on the server has an access towards the very best overall performance, reliability and connectivity function.
Superb Knowledge in Technologies
They have not only been delivering hosting for a lot of clientele for years, they have also been researching, establishing, and innovating every aspect of their operations, systems, procedures, technique, management, and teams.
ASPHostPortal has architected its network like no other hosting company. Every facet of the network infrastructure scales to gigabit speeds with no single point of failure.
Outstanding Help Solutions
Engineers staff their information center 24 hours every day, 7 days per week, 365 days a year to handle the network infrastructure and oversee top-of-the-line servers that host clients’ critical websites and solutions.
High-Grade Safety System
Network safety and the security of your server are ASPHostPortal best priorities. The security group is consistently monitoring the whole network for uncommon or suspicious behavior so that when it’s detected they’re able to address the concern ahead of the network or your server is affected.