新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
WinForm含有一个窗体,作为控件和其它图形的平台,可以开发智能客户端,易于部署和更新图像,无论是否连接到Internet都可以工作,并且可以用比传统的基于Windows的应用程序(如MFC开发的Windows应用程序)更安全的方式访问本地计算机上的资源。
创新互联公司是一家集网站建设,休宁县企业网站建设,休宁县品牌网站建设,网站定制,休宁县网站建设报价,网络营销,网络优化,休宁县网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
WinForm和Web窗体。两者在开发环境中都具有完全的设计时支持,提供同样丰富的用户界面,由于这种功能相似性,要决定哪种技术适合给定的应用程序可能有点困难。
如果创建的是一个公众可以通过Internet访问的电子商务网站,则应该使用Web窗体页开发此应用程序。如果正在生成需要利用客户端计算机的全部功能,并且处理的工作量很大,要求响应迅速的应用程序(比如办公程序,游戏软件,销售系统),应该使用WinForm,它是在.NET框架中生成的,因此它可以访问客户端计算机上的系统资源,以消除由不希望的访问引起的任何安全性风险或潜在问题。
Web窗体创建一个浏览器用户界面组成的应用程序,包括公众可通过万维网使用的应用程序,比如电子商务应用程序。但是Web窗体并不仅仅用于创建网站,许多其他应用程序同样适用于“瘦前端”,比如基于Internet的雇员手册或津贴应用程序。任何Web窗体应用程序都有一个重要的优点,就是无需发行成本。用户已经安装了所需的唯一一个应用程序——浏览器。
Web窗体应用程序与平台无关,即它们是“延伸”的应用程序。不论用户的浏览器类型是什么,也不论使用的计算机类型是什么,他们都可以与应用程序进行交互。Web窗体应用程序提供了一些即使在非Web上下文中依然有用的功能。因为这些功能依赖于HTML,Web窗体应用程序适合任何种类的文本密集型应用程序,尤其适合那些文本格式设置对其很重要的应用程序,这些限制防止用户访问某部分应用程序。
WPF在图形方面比WinForm功能更强,高保真度,克服WinForm依赖的GDI和GDI+的缺点。WinForm制作3D很困难,而WPF很容易,下面是WPF编写的3D示例:
winform是Windows窗体应用程序,也就是通常说的桌面应用程序,如迅雷、QQ等能够在Windows上直接运行的程序
Webform是网站窗体程序,需要运行在浏览器上的,如开心农场、百度等
C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过Web Server 同数据库进行数据交互。
C/S 与 B/S 区别:
1.硬件环境不同:
C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.
B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行
2.对安全要求不同
C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.
B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。
3.对程序架构不同
C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.
4.软件重用不同
C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.
B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子
5.系统维护不同
C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统
B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.
6.处理问题不同
C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统
B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.
7.用户接口不同
C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.
8.信息流不同
C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低
B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更像交易中心。
不安全,给你两个加密解密函数
/// summary
/// DES加密,密钥为8位字符
/// /summary
/// param name="strEncrypt"需要加密的字符串/param
/// param name="strKey"8位的密钥/param
/// returns/returns
public static string DesEncrypt(string strEncrypt, string strKey)
{
if (string.IsNullOrEmpty(strEncrypt)) return null;
try
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(strEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(strKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(strKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
{
ret.AppendFormat("{0:X2}", b);
}
ret.ToString();
return ret.ToString();
}
catch
{
return null;
}
}
/// summary
/// DES解密,密钥为8为字符
/// /summary
/// param name="strDecrypt"需要加密的字符串/param
/// param name="strKey"8位的密钥/param
/// returns/returns
public static string DesDecrypt(string strDecrypt, string strKey)
{
if (string.IsNullOrEmpty(strDecrypt)) return null;
try
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = new byte[strDecrypt.Length / 2];
for (int x = 0; x strDecrypt.Length / 2; x++)
{
int i = (Convert.ToInt32(strDecrypt.Substring(x * 2, 2), 16));
inputByteArray[x] = (byte)i;
}
des.Key = ASCIIEncoding.ASCII.GetBytes(strKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(strKey);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return System.Text.Encoding.Default.GetString(ms.ToArray());
}
catch
{
return null;
}
}
}
使用方法,先把连接字符串加密
string strConnEnc = DesEncrypt(strConn,'abcd1234');
然后 strConnEnc 就是加密过的了,可以写在配置文件web.config里头或别的地方
使用的时候
DesDecrypt(strConnEnc,'abcd1234')
调出来结果就是连接字符串了,可以用来连接数据库了