最近花了几个夜晚帮师妹整了一个企业网站

news/2024/5/11 5:16:22/文章来源:https://blog.csdn.net/weixin_34032779/article/details/91967216

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

背景:

话说年前有个师妹泪眼汪汪,楚楚动情地找我帮她弄个企业网站。

不过那时候,每天都苦B地闪着:“加班中,相信不用多久升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰,想想还有点小激动呢”。

所以每夜都懒懒地累到不想动,一直拖延到年后,回到广州才动有了写代码的冲动。

想想毕竟是自家师妹,承诺过的还是要还的,所以打算认真负责的花些时间把它整出来。

 

技术选型:

1:时间考量: 

首先这是一个义务型的网站,所以会考虑时间不能占用太多, 尽量满足基础功能,比较异想天开的功能先忽略。

整体前后沟通和小调整,历长1-2周,实际编码时间,大概24小时内,换算起时间,那也是三个工作日,六个夜晚啊。

2:技术选型:MVC还是WebForm:

A:时间不能占用过多,开发周期不能拉长。

B:个人能临时提供的服务器是2003,只有.NET 2.0,后期可能会转移到对方购买的虚拟主机,所以部署要方便。

C:友好的URL并不是对方在乎的。 

所以综合考虑:WebForm。

像MVC,它的优点是:提供简单友好的URL,对外是一个好的唬头,MVC架构分层思想对新手是一种引导。 

3:数据库选型:MSSQL?Access?Sqlite?

用MSSQL,在这种简单的企业站里,大财小用了。

Access:拥有最弱的并发限制,64K,这个在我以前QBlog系列文章里,把它优化上天了,后来还是离开了。

Sqlite:这个需要最高的信任权限,某些虚拟主机商可能会不支持,而且并发能力和Access差不多一个级别。

 

以我多年的实战经历,这里我选择文本数据库,这里有几个重要思考因素。

1:数据量少:少到可以预估的时间内,文章不会超过1千。

2:占用资源少:目前VPS就1G内存,数据库勉强跑上了sql2000,而且服务器上跑了好几个项目,不适合把这外部的数据放置到自己的项目中。

3:性能要高,抗并发要强:服务器本身配置很低,如果不能抗并发,随便用我提供的分布式压力测试就能搞掉的话,那不坑我自己的服务器。

4:数据的安全性隐私木有要求:这些数据都是可公开的。

综合上面的考虑,MSSQL,虽然能抗并发,这个吃内存,不行,而Access和Sqlite不抗并发,如果选择了它们,意味着我必须考虑到整个缓存机制或生成静态页面机制,这无疑会加长我的开发时间。

 

好在我发现了文本数据库:刚好满足以上的条件,而且文本数据库一直在应用,基本上这个企业站也不在话下,所以最后是用上了CodeFirst方式的文本数据库。

而选择文本数据库,经压力测试,几千上万个并发也不是问题,它天然的内存数据库机制本身就是缓存机制,一次开发,就可以收工了。


实战开发:

1:美工的界面来源: 

首先,她不是美工,我也不会美工,所以,网站需要有参考,好在她给了一款参考网站。

所以,以我的经验,把对方网站那点皮肤弄下来不是什么问题,所以美工的问题看似就解决了,具体看一眼下图,发现是很清秀简洁的:

 2:代码编写:

由于数据库选项是文本数据库,所以基本上就是CodeFirst,定义好业务实体,什么分层,在这里就是浮云:

 

Web.Config就这么一行了:

< connectionStrings >
         < add  name ="Conn"  connectionString ="txt path={0}App_Data\db;ts=0" />
     </ connectionStrings >

 

具体运行后产生的数据存储,就在App_Data下的db文件夹下了,一个表就对应一个文本数据了。

另外考虑到文章的字节大,就单独隔离出来一个body文件夹来存放文章,代码也很简单:

public  class ArticleBody
    {
         public  static  void Set( int id,  string body)
        {
             string path = AppDomain.CurrentDomain.BaseDirectory +  " /App_Data/db/body/ " + id +  " .body ";
            File.WriteAllText(path, body);
        }
         public  static  string Get( int id)
        {
             string path = AppDomain.CurrentDomain.BaseDirectory +  " /App_Data/db/body/ " + id +  " .body ";
             if (File.Exists(path))
            {
                 return File.ReadAllText(path);
            }
             return  string.Empty;
        }
    }

 

红色那一块是后台,由于偷工减料,所以就不方便公开名称。


3:技术点需要思考的地方:

整个网站,基本上都是简单类似以下的代码:

public  partial  class ArticleCate : System.Web.UI.UserControl

    {
         protected  void Page_Load( object sender, EventArgs e)
        {
             if (!IsPostBack)
            {
                BindList();
            }
        }
         void BindList()
        {
             using (ArticleClass a =  new ArticleClass())
            {
                a.Select( " order by orderNum asc ").Bind(rptList);
            }
        }
    }

不过也有一些需要费点脑的:

3.1:左侧的分类列表,有的点击是直接进入到文章详细,有的点击是直接进入列表界面:

面对这个问题,有着最开始的设计思维:

A:分类名称难道是文章的名称(因为见过的很多基本上都是同名) ?

B:那么要区分显示在列表还是单独的,要在文章里加个字段以区别?

中间的过渡思维:

A:分类名称就是分类名称?

B:分类名称上加个字段,以区别点击是进入指定的某个文章?

最后的决定性思维:

A:分类名称还是分类名称。

B:当分类名称只有一条文章时,地址变为直接指向那篇文章。

 

3.2:文本编辑器的引入:

一开始我是很偷懒的,用一个文本框来发文章,就想了理了。

后来想想不能懒到这程度,毕竟人家是师妹啊,何况我还单身,所以引入文本编辑器升级一下档次也是有必要的。

网上可选的编辑种类很多,FCK,King等网上一搜一个堆,不过我还是思考了一下,如果用上这些:

第一,重,随便一个都几M起步;

第二,图片上传需要自己再折腾,如果运气不好,研究+实现可能会花上一天时间。

第三:我太懒了,我想最多1小时以内就把它给换完。

 

我想到以前QBlog里我写过一个编辑器(改来的),于是直接弄过来,发现原来的代码和QBlog的开发模式有点结合。 

花了几分钟,改了点代码,基本上就能用了,而且重点是文件上传,基本上小改几分钟也适合着用了,省了不少时间。

 

 

3.3 产品中心lightBox.js的引入:

这一块就没什么好说的了,就是那种一点图片出来一遮照层,整个背景黑的那种,06年就开始流行的,没想到现在还用的上。 

关于后台:

对于后台,一开始打算用QBlog那种后台方式,或者像EasyUI那种前端,然后搞个CodeSmith批量生成一样,不过一想到这CS不知道放哪了,光找出来就要不少时间,再说它也不支持我的文本数据库。

虽然CodeFirst也支持多种数据库,改个数据库链接就可以转移到其它数据库,然后再借CS去生成,不过感觉这转来转去的麻烦。 

于是,心一横,就那几个表,也就几个界面,还不如手工来的快,于是一个木有样式,惨不忍睹的界面,只有最简单的增删改查逻辑的后台就出来了。

由于后台界面这一块太丑,就不截图了,免的亮瞎了大伙的眼睛。

 

网站预览:http://paileju.com
至于源码,想要来学习的也可以Q我,随便给。

总结:

到此,基本上就算完工了,搞完之后,收到了师妹寄来的零食,也算是一种回报了,虽然大部分零售是辣的不合我口味,不过还是有不少零售味道还是不错的,像那个1块钱1个的肉松饼就很好吃,可是,为啥只买了一个,纳尼?

 

新的一年,要重新卖身了,打算漂泊,城市不限,欢迎大伙推荐买主,谢谢。

 

转载于:https://my.oschina.net/secyaher/blog/274388

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_760682.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js+css完成的网站流行效果

预览预览2http://bbs.blueidea.com/thread-2814227-1-3.html 转载于:https://www.cnblogs.com/CB/archive/2008/07/01/1232873.html

众网站BETA LOGO

GOOGLE 转载于:https://www.cnblogs.com/kaixin110/archive/2009/02/11/1388301.html

使用squid代理后某些网站无法访问的解决办法

在测试Squid代理服务器&#xff0c;发现有些网站无法访问&#xff0c;但是绝大部分网站都是可以访问的。&#xff08;当前环境&#xff1a;squid-2.6.STABLE21-6版本&#xff09;这个问题就出现在我的博客上&#xff0c;访问http://www.liusuping.com&#xff0c;使用squid代理…

JiaThis™ - 提升网站流量的工具 收藏一下

http://www.jiathis.com/help/html/what-is-jiathis 网站分享的工具 JiaThis是一个提供网页地址收藏、分享及发送的WEB2.0按钮工具&#xff0c;网站的浏览者可以方便的分享到人人网、分享到开心网、分享到QQ空间、分享到新浪微博等一系列社会化关系网络站点。 网站主可以在这…

从该网站集配置的声明提供程序中出现错误

使用Sharepoint Designer2010创建外部内容类型- SQL Server 具体步骤参考 http://www.cnblogs.com/Sunmoonfire/archive/2010/06/20/1761224.html 至网站点击该列表出现"访问已被业务数据连接拒绝"的错误. 这时到管理中心-应用程序管理-管理服务应用程序 点击BDC服务…

2月第二周域名主机网站排名TOP15 中国数据升至13名

据国际统计机构Alexa最新统计数据&#xff0c;在2月6日至12日一周时间内&#xff0c;用户覆盖数排名TOP15的国内域名主机网站依次为&#xff1a;中国万网、西部数码、易名中国、新网、金名网、35互联、爱名网、主机屋、新网互联、商务中国、中资源、网域科技、中国数据、阳光互…

网站群2

引用&#xff1a;http://wzq.xa24h.com/portal.php?modview&aid2604 项目背景 上海计量测试技术研究院(SIMT)是由政府部门依法设置的法定计量检定机构&#xff0c;也是国务院计量行政管理部门批准建立的“华东国家计量测试中心”和国家科技部批准设立的国家级分析测试中心…

经典网页设计:精美的个人作品集网站设计欣赏【下篇】

作为一个网页设计师&#xff0c;需要经常去关注优秀的网站作品&#xff0c;获取创作灵感&#xff0c;掌握最新的设计趋势。在这个竞争激烈的就业市场&#xff0c;个人作品集网站是最好的求职工具。因此&#xff0c;设计师们都竭尽所能设计一个有创造性的个人作品展示网站&#…

利用HTML5的一个重要特性 —— DeviceOrientation来实现手机网站上的摇一摇功能

2019独角兽企业重金招聘Python工程师标准>>> 介绍之前做两个声明&#xff1a; 1、以下代码可以直接运行&#xff0c;当然你别忘了引用jQuery才行&#xff0c;我可提醒了&#xff0c;别到时候跑不起来骂我就成&#xff1b; 2、下面的实现思想参照了网上的一些文章&…

网站基本概念

文章目录网站基本概念网站服务器IP域名DNS端口静态网站动态网站网站基本概念 网站 网站(Website)&#xff0c;是指在互联网上&#xff0c;根据一定的规则&#xff0c;使用HTML、PHP等代码语言制作的用于展示特定内容的相关网页的集合&#xff0c;有可供管理人员操作的后台及用…

php禁止和允许制定ip 访问网站

2019独角兽企业重金招聘Python工程师标准>>> 有的时候网站在未完成未正式上线的情况下&#xff0c;为了使网站在有很多问题的情况下&#xff0c;可以先临时屏蔽ip来达到禁止除自己之外的人来访问。 <?php if(getenv(HTTP_CLIENT_IP) && strcasecmp(gete…

零基础建站教程(html+js+php+mysql+ftp+apache)

序言&#xff1a;因为公司需求&#xff0c;我不得不去学习建站&#xff0c;以前都是做后台的&#xff0c;没有接触这些东西&#xff0c;所以也是从0开始研究的&#xff0c;大概半个月时间&#xff0c;学了三门语言加一些工具捣鼓出了一个小站&#xff0c;在此分享&#xff0c;也…

大规模网站架构的缓存机制和几何分形学

缓存机制和几何分形学 缓存机制在我们的实际研发工作中&#xff0c;被极其广泛地应用&#xff0c;通过这些缓存机制来提升系统交互的效率。简单的总结来说&#xff0c;就是在两个环节或者系统之间&#xff0c;会引入一个cache/buffer做为提升整体效率的角色。 而有趣的是&…

【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器

一、反向代理&#xff1a;Web服务器的“经纪人” 1.1 反向代理初印象 反向代理&#xff08;Reverse Proxy&#xff09;方式是指以代理服务器来接受internet上的连接请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;并将从服务器上得到的结果返回给internet上请…

C#Web从0到1—在自己的服务器上发布第一个网站

一、购买一个服务器&#xff1a; 选择&#xff1a;阿里云&#xff0c;腾讯云之类的&#xff0c;反正都有免费体验&#xff0c;照着注册指导一步一步来就可以了。这里选了啊里云&#xff0c;送6个月呢。 二、发布网站 https://blog.csdn.net/Mr_Lyoko/article/details/80153389…

Visual Studio 2017 下创建ASP.NET网站程序详细步骤

1、文件——新建——项目 2.、新弹出的窗口上选择Visual C#&#xff0c;然后选择ASP.NET Web 应用程序&#xff08;.NET Framework&#xff09;,然后点击确定 3、选择空——然后在下面勾选Web窗体&#xff0c;然后点击确定 4、右边的解决方案资源管理器&#xff0c;选择解决方案…

【Asp.net入门04】第一个ASP.NET 应用程序-如何添加Web窗体到网站中

添加Web窗体 本部分内容&#xff1a; 什么是web form怎样添加web form 1.添加Web窗体到项目中 Web 窗体是一项 ASP.NET 功能&#xff0c;您可以使用它为 Web 应用程序创建用户界面。Web 窗体页为您提供了一种强大而直接的编程模型&#xff0c;该模型使用您熟悉的快速应用程序…

iOS之学习资源收集--很好的IOS技术学习网站

点击图片也能打开相关的网站&#xff1a; https://boxueio.com/skill/swift http://ios.b2mp.cn/ http://gold.xitu.io/welcome/?utm_sourcecnblogs&utm_mediumbanner&utm_contentgaoshou&utm_campaignq3_website http://sspai.com/tag/iOS http://www.open-open.…

阿里云windows版本云服务发布asp.net网站,外网无法访问的问题

弄完以后&#xff0c;以为921是之间建的&#xff0c;可以内网访问。外网不能访问。当时搜索的姿势不对&#xff08;关键词&#xff09;&#xff0c;便去交流群请教了一下。得到重要的信息&#xff0c;才有思路了 开始设置全部分配端口 921是之前就建好的了&#xff0c;ip地址为…

阿里云Windows Server 2012R2 搭建网站教程

准备工作&#xff1a; 云服务器(这里用腾讯云) WindowsServer2012R2系统 话不多说&#xff0c;直接开干 远程连接服务器&#xff0c;在桌面找到【服务器管理】 会进入到服务器管理的仪表盘 点击【添加角色和功能】 【下一步】 选择基于角色或基于功能的安装单击【下一步…