Hi all,
This post is primarily aimed at ASP.NET developers but I'd also be interested in thoughts from Frederico and anybody else on the CKEditor team.
Back when I was helping fix the ASP.NET AJAX integration of FCKEditor 2, I mentioned the possibility of embedding resources in DLLs and ultimately the dream of having an editor that was entirely packaged in a single DLL that could be easily dropped into a project. This would make it insanely easy to use in .NET projects, upgrade to new versions, and also make FTP deployment simpler - just one file to upload instead of a whole hierarchy. It would also keep my own SVN repos so much simpler
I remember a comment from Frederico that he would be particularly interested in this kind of package for the 3.0 version, since due to its more open-ended architecture this would be a real possibility.
Well, 3.0 is here now so I'd like to get the ball rolling on a project of this kind.
Note: there seems to be a project on CodePlex called "CKEditor .NET" but it's been open since Dec and has zero commits. It's apparently been set up by a 3rd-party company but no further information is showing on their site. Seems suspiciously to me like a cheap bit of marketing, unless anybody knows any different and knows who those guys are (and whether that project is even being developed!)
My thinking about how this project might work is as follows:
- Integrating CKPackager into the ASP.NET build pipeline. So the sources would be automatically packaged and then embedded into the resource (along with language files, images, etc.) every time the project is built. This would make it easy to update the project to new releases of CKEditor.
- Leveraging MEF (Managed Extensibility Framework) allowing CKEditor plugins to be packaged as separate modular DLLs, which could then simply be dropped into a folder in the website to install them. MEF is a relatively recent technology from Microsoft and is part of the new .NET 4.0, but is also available as a separate library for older .NET versions.
- The plugin architecture could also be used for customizations to existing plugins; for instance, templates and styles customizations.
- Further, the plugin architecture could be extended to CKFinder.NET for things like authentication, and custom handlers for file browsing and file uploading.
- The number of files the CKEditor loads at runtime is relatively low compared to the old version which makes the integration task easier.
If anybody is interested in discussing or contributing to this project please let me know! I've started building a very basic CKEditor control (which inherits from TextBox) to work up from. I can't put much time into this for another couple of weeks but I thought I'd at least see whether other developers would be interested in a project like this!
Regards,
Pete Hurst
Sun, 05/09/2010 - 18:56
#1
Re: CKEditor.NET
I have taken on the CKEditor 3.x integration for Subtext and what you propose would be perfect, from my perspective.
Do you have a public repository for your current progress?
Sky
Re: CKEditor.NET
Hello Pete,
There is no doubt, that a project like that would be extremely useful for .net developers.
There have been made some workarounds, but they aren't 100% optimal, no offence..
- They doesn't work in all cases, not every option in the ckeditor are available etc.
I'm interested too, but though I'm not quite sure I can help that much..
If your basic control reach a certain point where it actually works, I would recommend to make it available some how.. The controls right now aren't bulletproof
Regards
Jeppe R
Re: CKEditor.NET
Usage Instructions:
1. In web.config, add reference to enable using the server control:
<pages>
<controls>
<add tagPrefix="ck" namespace="Downplay.Web.UI.CK" assembly="Downplay.Web.UI"/>
</controls>
</pages>
2. Add reference to ckeditor.js in your page or master page:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
<Scripts>
<asp:ScriptReference Path="~/Scripts/jquery-1.4.1.min.js" />
<asp:ScriptReference Path="~/ckeditor/ckeditor.js" />
</Scripts>
</asp:ScriptManager>
3. Then you can use the control like this:
<ck:CKEditor ID="HtmlEdit" runat="server">
<Config Skin="v2" ContentsCss="/Styles/Main.css" />
</ck:CKEditor>
Now, it would be very easy to embed the ckeditor.js as an assembly resource but we still need all the other plugin files, images etc. I would also need to add a reference in AssemblyInfo.cs in the project:
[assembly: WebResource("Downplay.Web.UI.CK.ckeditor.js", "text/javascript")]
This would quickly become a pain adding these resource references for every single file, especially accounting for new files that might be added in a release.
I'm considering achieving this instead through a Service which would output the correct assembly resource without needing to reference them all manually. It would still require changing each file manually to "Embedded Resource" but maybe there's a build option that could do this for us.
Sky - currently the files are in my private SVN repository. This runs on my home server and I can't guarantee it will be available 100% of the time, so we should host it elsewhere. Do you have any preference towards any project hosting, codeplex / sourceforge etc.?
Jeppe - which specific situations do you find the editor doesn't work in? I'm guessing you are talking about FCKEditor 2, not CKEditor? But yes, we should be able to make the control work in all situations, and make all config options available (although there are tonnes of them, and some are quite complex!)
Pete
Re: CKEditor.NET
Attachments: