我想使用一些基于ASP.NET的CMS来创建我的网站,不知道选择哪个...
我在Sitefinity中开始,但是很难根据需要管理代码......并且它生成ASP.NET WebForms代码......
现在我听说Orchard是由一些微软雇主开发的CMS,并且是基于ASP.NET MVC 3的......现在我对此有一些疑问
Sitefinity对Orchard有哪些优势?
使用Orchard有任何问题和错误吗?使用舒适吗?
如果您对使用其他CMS有任何其他建议,我会很高兴)))
asp.net sitefinity content-management-system orchardcms asp.net-mvc-3
注意:这远不是x上的帖子比x好.高兴不要去那里.
我是一个.Net的人,并且一直都是,我从早期的第2版Betas和之后的每个版本都使用过MVC框架.在过去的几个月里,我一直在搞乱Rails,我对架构的问题似乎在两个平台之间存在巨大差异.(基于社区和SO等网站上的问题)
在.Net MVC中,我们鼓励我们分离关注点,创建单独的项目来处理数据访问,业务逻辑和视图,我们也被告知我们应该在它们访问View等之前将我们的Data对象转换为ViewModels.
在Rails中,事情看起来更简单,我们有一个包含Validation,DataAccess(通过活动记录)和其他逻辑属性的对象,我们只需将其发送到View并显示它.
那么为什么在一个框架中这种方法是可以接受的,另一方面它被认为是错误的,我们最终都会编写更多代码并创建更多文件.
注意:我不是Rails专家,我真的不想比较哪个比x更好,我正在研究2个框架的高级架构,并找出它在一个而不是另一个框架中可接受的内容.
我正在使用ASP.NET MVC 3并使用aspx编写了一些部分.所以在我的一些观点中,我有类似的东西
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="Thread.Index" %>
Run Code Online (Sandbox Code Playgroud)
但我已经使用Razor的Layout为站点创建了Layout,我也希望在这个.aspx文件中使用该布局.
我怎样才能实现这一目标?
为什么在这种情况ReferenceEquals下对象的方法表现不同?
string a= "fg";
string b= "fg";
Console.WriteLine(object.ReferenceEquals(a, b));
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下,它会得到一个结果true.如果是,它会比较我的字符串的值而不是引用.但是当我写下这样的话:
StringBuilder c = new StringBuilder("fg");
string d = c.ToString();
Console.WriteLine(object.ReferenceEquals(a, d));
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它工作正常,结果是false,因为它比较我的对象的引用.
我希望将所有样式应用于我的CKEditor内容.所以主要的想法是使编辑器看起来像实际的页面.
我已将此添加到我的config.js文件中
config.contentsCss = '/Home/GetCss';
Run Code Online (Sandbox Code Playgroud)
我有一个服务器端操作,它从数据库获取css文件并将其返回给我.
public ActionResult GetCss()
{
var settings = GetSettings();
return File(settings.CssContent, "text/css", settings.CssFileName);
}
Run Code Online (Sandbox Code Playgroud)
之后我可以看到我的css包含在ckeditor的head(ckeditor iframe内)中,但样式不适用于内容.
<link type="text/css" rel="stylesheet" href="/Home/GetCss">
Run Code Online (Sandbox Code Playgroud)
什么可能导致这个问题?
编辑:(看到几个答案后)
只有当你知道什么是真正的问题时才能回答... GetCss正在返回正确的css,下一个css包括行是自动生成的config.contentsCss = '/Home/GetCss';.所以问题出在CKEditor设置的某个地方,而不是服务器端功能和生成的代码.
编辑2:
直接设置css文件后,问题仍然存在
config.contentsCss = '/Content/MyCssFile.css';
Run Code Online (Sandbox Code Playgroud)
我仍然可以在iframe的HEAD部分看到正确的css文件,但对身体元素没有任何影响.
我在面试中问了一个问题,即不使用order by子句而不使用像php这样的脚本来排序结果.我足够google它,但没有找到方法.有没有方法以这种方式对结果进行排序.并且应该不使用像php等任何脚本.
在此之前,我总是使用gt选择器来选择除第一个之外的所有元素.现在我找到了对我来说更优雅的解决方案.这是用来:not(:first)代替:gt(0).
这个选择器的性能有什么不同,你建议使用哪一个?
编辑:正如前面提到的Felix King,.slice(1)是另一个选择除了第一个之外的所有元素的选项.哪个更快?
url=require('url');
qs=require('querystring');
var http=require('http');
http.createServer(server).listen(1337, 'hostname');
function server(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write(req.url);
a=url.parse(req.url, true);
console.log(a);
res.end('\nHello World\n');
}
console.log('Server running at http://127.0.0.1:1337/');
//http://host:1337/#A=1111111 <--- not coming in log or url
//http://host:1337/?A=11111111 <--- works ok
//usecase : facebook access_token url format is something similar to above
Run Code Online (Sandbox Code Playgroud) 我所拥有的是简单的switch语句
Control myControl;
switch(x)
{
case TabType.Edit:
{
myControl= ...;
}
case TabType.View:
{
myControl= ...;
}
}
myPageView.Controls.Add(myControl);
Run Code Online (Sandbox Code Playgroud)
在这种情况下编译器告诉我
在访问之前,可能无法初始化局部变量myControl
那么,避免这种情况的最佳方法是什么?
一种选择是在switch语句之前初始化myControl.但在这种情况下,我再做一次不必要的初始化.
情况1:
Control myControl = null;
switch(x)
{
case TabType.Edit:
{
myControl= ...;
}
case TabType.View:
{
myControl= ...;
}
}
myPageView.Controls.Add(myControl);
Run Code Online (Sandbox Code Playgroud)
下一个选项是改变第二种情况default.之后编译器将"理解"myControl无论如何都将被初始化并且不会抛出异常.
案例2:
Control myControl;
switch(x)
{
case TabType.Edit:
{
myControl= ...;
}
default:
{
myControl= ...;
}
}
myPageView.Controls.Add(myControl);
Run Code Online (Sandbox Code Playgroud)
但是,这种情况看起来并不那么好,是因为增加了一些新特性,以我的枚举后它将为所有其他类型的默认参数进行(开发者可以很容易忘记改变这里的代码,也可以是没有必要的初始化myControl其他枚举类型) .
在这种情况下,最好的方法是什么?
在极少数情况下,进程在执行过程中会冻结ExecuteNonQuery:
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
CommandTimeout设置为 0(无超时)并且UPDATE正在执行一个简单的语句。这通常很快,并且该问题平均每周可以重现一次。但当它发生时,整个过程就会完全冻结/挂起。上次重现时,我们使用 ProcDump 获取该特定进程的转储文件,并可以在那里看到该堆栈跟踪。其他 SO 问题之间的唯一区别是前几行(死锁?)
OS Thread Id: 0x4168 (34)
Current frame: ntdll!NtWaitForSingleObject+0xc
ChildEBP RetAddr Caller, Callee
23eed994 7587f699 KERNELBASE!WaitForSingleObjectEx+0x99, calling ntdll!NtWaitForSingleObject
23eeda08 7587f5f2 KERNELBASE!WaitForSingleObject+0x12, calling KERNELBASE!WaitForSingleObjectEx
23eeda1c 5829e5e2 System_Data!Np::ReadSync+0x205, calling KERNELBASE!WaitForSingleObject
23eeda58 58293812 System_Data!SNIReadSync+0x64
23eeda88 5828a795 System_Data!SNIReadSyncOverAsync+0x25, calling System_Data!SNIReadSync
23eedaa4 53ce748e (MethodDesc 5395aa60 +0x46 DomainBoundILStubClass.IL_STUB_PInvoke(SNI_ConnWrapper*, SNI_Packet**, Int32))
23eedac8 53ce748e (MethodDesc 5395aa60 +0x46 DomainBoundILStubClass.IL_STUB_PInvoke(SNI_ConnWrapper*, SNI_Packet**, Int32))
23eedae4 53cf3c57 (MethodDesc 539498d0 +0x53 SNINativeMethodWrapper.SNIReadSyncOverAsync(System.Runtime.InteropServices.SafeHandle, IntPtr ByRef, Int32)), calling 08a34a78
23eedb04 53e00e5e (MethodDesc 5394a534 +0x5e …Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×3
c# ×3
.net ×2
javascript ×2
ado.net ×1
architecture ×1
asp.net ×1
ckeditor ×1
css ×1
database ×1
equals ×1
jquery ×1
node.js ×1
orchardcms ×1
performance ×1
razor ×1
sitefinity ×1
sql ×1
sql-server ×1
string ×1
t-sql ×1