题记:用“易语言.飞扬”(EF)开发WEB应用程序,此前还没有先例。但因为EF本地开发包(EFNDK)已经发布,用C/C++开发一个EF类库,使其支持EF开发WEB应用程序,应该并非难事。当然也可想而知,其中必有诸多难点有待解决。此系列文章,为本人探索过程之记录,对外人未必有多大价值。如有网友乐观其事,还请理性待之。作者:liigo。转载请务必注明出处:http://blog.csdn.net/liigo/。在线留言。
试用EF开发WEB应用程序(11):在线留言系统
在线留言系统入口 (非常感谢好友龚辟愚提供网络服务器)
此留言板的“易语言.飞扬”(EF)完整源代码如下:
引入fastcgi,sqlite,工具;
公开类启动类
{
静态Sqlite数据库_db;
公开静态启动()
{
_db=newSqlite数据库();
_db.打开("../db/msgboard.file",true);
if(_db.表是否存在("messages")==false)
createTable();
FCGIfcgi=newFCGI;
while(fcgi.Accept()>=0)
{
if(fcgi.REQUEST_METHOD.到小写()=="post")
fcgi.ReadContentAsQueryString();
文本html=html_template.替换全部("$(title)","留言板(由EF开发)");
if(fcgi.QUERY_STRING("name")!=""||fcgi.QUERY_STRING("message")!="")
insertMessage(fcgi);
//deleteallmessages
if(fcgi.QUERY_STRING("cleandb")=="byliigo")
_db.执行SQL("deletefrommessageswhere1=1");
stringmessages;intcount;
(messages,count)=listAllMessages();
html=html.替换("$(messages)",messages);
html=html.替换("$(count)",count.到文本());
fcgi.Output(html.到UTF8());
}
_db.关闭();
}
privatestaticcreateTable()
{
Sqlite表结构tdef=newSqlite表结构();
tdef.添加字段("id",Sqlite字段类型.主键整数);
tdef.添加字段("name",Sqlite字段类型.文本);
tdef.添加字段("message",Sqlite字段类型.文本);
tdef.添加字段("ip",Sqlite字段类型.文本);
tdef.添加字段("date",Sqlite字段类型.文本);
_db.创建表("messages",tdef);
}
privatestaticboolinsertMessage(FCGIfcgi)
{
privatestaticstringGetDate()
{
日期时间类t=new日期时间类();
returnt.年().到文本()+"/"+t.月().到文本()+"/"+t.日().到文本()+""+t.时().到文本()+":"+t.分().到文本()+":"+t.秒().到文本();
}
stringname=fcgi.QUERY_STRING("name");
if(name=="")name="EF爱好者";
stringmessage=fcgi.QUERY_STRING("message");
if(message=="")message="他/她很懒,什么都没说:)";
stringip=fcgi.REMOTE_ADDR;
stringdate=GetDate();
stringsql="insertintomessages(name,message,ip,date)values('"+name+"','"+message+"','"+ip+"','"+date+"')";
return_db.执行SQL(sql);
}
privatestaticstring,intlistAllMessages()
{
privatestaticstringfixHTMLChars(strings)
{
s=s.替换全部("&","&");
s=s.替换全部("<","<");
s=s.替换全部(">",">");
//someonenotethis?:)
s=s.替换全部("[b]","<b>");s=s.替换全部("[/b]","</b>");
s=s.替换全部("[red]","<fontcolor="red">");s=s.替换全部("[/red]","</font>");
s=s.替换全部("[blue]","<fontcolor="blue">");s=s.替换全部("[/blue]","</font>");
s=s.替换全部("[green]","<fontcolor="green">");s=s.替换全部("[/green]","</font>");
returns;
}
privatestaticstringformatMessage(stringname,stringmessage,stringip,stringdate)
{
staticstringmsg_template="<p>$(name)($(ip))于$(date)留言:$(message)</p> ";
stringmsg=msg_template.替换("$(name)",name);
msg=msg.替换("$(ip)",ip);
msg=msg.替换("$(message)",fixHTMLChars(message));
msg=msg.替换("$(date)",date);
returnmsg;
}
Sqlite记录集query=newSqlite记录集(_db,"select*frommessagesorderby_ROWID_desc");
stringmessages="";
intcount=0;
if(query.打开())
{
count=query.取记录数();
while(query.到下一记录())
{
messages+=formatMessage(query.读字段值("name",Sqlite字段类型.文本),query.读字段值("message",Sqlite字段类型.文本),query.读字段值("ip",Sqlite字段类型.文本),query.读字段值("date",Sqlite字段类型.文本));
}
}
return(messages,count);
}
常量文本html_template=["Content-type:text/html
<html><head>
<metahttp-equiv="content-type"content="text/html;charset=utf-8">
<title>$(title)</title>
</head>
<body>
<h1>$(title)</h1>
<hr></hr>
<formmethod="post">
<p>姓名:<inputtype="text"name="name"size=20/></p>
<p>留言:<inputtype="text"name="message"size=100/></p>
<p><inputtype="submit"value="提交留言"></input></p>
</form>
<p><ahref="msgboard.txt"target="_blank">此留言板的EF源代码</a></p>
<hr></hr>
<h1>所有留言(共$(count)条)</h1>
$(messages)
<hr></hr>
<p>byliigo,<ahref="http://blog.csdn.net/liigo/">http://blog.csdn.net/liigo/</a></p>
</body>
</html>
"];
}
分享到:
相关推荐
【标题】"Web网页设计(C#):学生管理系统"是一个使用C#编程语言和Web技术构建的应用程序,主要用于管理教育机构中的学生信息。这个系统通常包括对学生数据的增、删、改、查等基本功能,是计算机科学尤其是软件工程...
在IT行业中,数据库应用程序系统是不可或缺的一部分,它们用于存储、管理和检索数据,为各种业务...对于希望在IT领域从事数据库应用开发的人员来说,“使用C#开发数据库应用程序系统ACCP8.0”是一次宝贵的学习经历。
在本项目中,"EFCore+WebApi增删改查"是一个使用Entity Framework Core(简称EFCore)和Web API技术构建的.NET应用示例。这个框架主要用于演示如何通过Web服务接口进行数据操作,如添加、删除、修改和查询,前端展示...
在.NET框架下,C#是一种广泛使用的编程语言,尤其在开发Web应用程序时。这个案例——"一个应用.Net中C#技术开发的实用Web案例",展示了如何利用C#的强大力量来构建一个功能完善的B2C(Business to Consumer)在线...
在本文中,我们将深入探讨如何使用`.NET Core 6`框架和`Entity Framework (EF)`来构建一个功能完备的Web API服务,实现数据的增、删、查、改(CRUD)操作。`.NET Core 6`是微软推出的一个高性能、跨平台的开源开发...
ASP.NET Core同样支持数据库应用开发,并与EF Core紧密结合。 九、部署与调试 在完成ASP.NET数据库应用程序的开发后,可以通过IIS或IIS Express进行本地或远程部署。Visual Studio集成的调试工具能帮助开发者定位并...
ASP.NET 是微软公司推出的用于构建动态网站、Web应用程序和Web服务的一种强大框架。WebSamples 是一个包含多个ASP.NET示例的集合,它为开发者提供了学习和理解ASP.NET特性和功能的宝贵资源。在这个压缩包中,...
ASP.NET Core 6 WebAPI与Entity Framework (EF) DBFirst结合使用是开发高效、数据库驱动的Web服务的常见方法。这个技术栈允许开发者利用SQL Server的强大功能,同时借助EF简化数据访问层的实现。以下是对这个主题的...
ASP.NET Core Web应用程序是Microsoft开发的一个跨平台的框架,用于构建现代、高性能的Web应用。在本场景中,我们关注的重点是如何在ASP.NET Core中创建数据库。这通常涉及到使用Entity Framework Core (EF Core),...
"web聊天室(.net core MVC + signalr + EF + Authorize)" 描述了一款基于.NET Core MVC框架、使用SignalR实现实时通信、Entity Framework(EF)进行数据库操作,并结合Authorize进行权限控制的Web聊天室应用。...
ASP.NET Core是微软开发的一个开源、跨平台的框架,用于构建高性能、现代化的互联网规模的应用程序。在这个全堆栈的ASP.NET Core项目中,我们关注的是.NET 8版本,它带来了许多新特性和性能改进。这个项目展示了如何...
首先,C# MVC(Model-View-Controller)是一种用于构建可维护性和可测试性的Web应用程序的设计模式。它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型负责业务逻辑和数据...
这个源码包“KibaAspNetCore-master”是针对初学者设计的,旨在帮助他们理解并入门Asp.Net Core Web应用程序的开发。 1. **Asp.Net Core基础** Asp.Net Core是对经典Asp.Net的重构,它采用模块化设计,允许开发者...
实验室和材料-Web应用程序开发 :warning: :warning: 考试信息(技巧和窍门) 使用脚手架或尝试重现自动创建部分(使用实体框架的带有视图的控制器) 对于数据表,您可以使用以下示例: 在REPO的解决方案领域中...
标题中的“angularjs+webapi+EF”是一个典型的前后端分离的Web开发技术组合,其中AngularJS是前端框架,WebAPI是后端数据接口,而Entity Framework(EF)则是一种常用的ORM(对象关系映射)工具,用于简化数据库操作...
总结,phpWeb留言模块是Web应用程序中的一个实用组件,它涉及前端界面设计、后端数据处理、数据库管理和安全性等多个方面。开发这样一个模块需要对PHP编程、数据库操作和Web安全有深入理解。通过不断优化和完善,...
这是一套完整的教程,旨在帮助初学者和有一定经验的开发者掌握现代Web应用程序开发的核心技术。 C#是微软公司推出的面向对象的编程语言,广泛应用于Windows平台、移动设备以及游戏开发。.NET 6是.NET框架的最新版本...
基于EF+MVC+Bootstrap的通用管理系统。 Framework 业务无关的底层通用机制及功能 Model基类:提供数据传输和底层的最基本的基类及接口 DAL底层:基于EF code first,提供Repository泛型方法及写历史日志 Untility:...
1. asp.netCore:asp.netCore是微软开发的一款开源、跨平台的Web应用程序框架,用于构建高效、现代化的互联网应用。它提供了强大的依赖注入、中间件、测试支持等功能,且性能优秀,支持多语言环境,使开发者能够构建...
MVC是一种设计模式,广泛应用于Web应用开发中。它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理业务逻辑和数据管理,视图负责展示用户界面,而控制器则作为两者...