小程序
用了近三个晚上开发了一个小程序——“精致三面翻”售出存档表,主要帮助我爸的公司进行数据整理。用到了ASP.net 2.0的技术。
虽然程序很小,但是相信对于父亲的公司还是挺有帮助的。开发过程中有一些小体会和经验:
- 程序并不是代码越优美越好。对于一些小程序,快速开发,省略一些无关紧要的问题显得非常重要。对于软件工程科班出身的我,编码时命名很难不想到匈牙利命名法。。如果我们把时间都花在校正变量上,那么无异于浪费。我的策略:将主要用到的TextBox/DateTimePicker等一些类的对象加以合理命名,其它的则随系统的自身命名好了。另外数据库选用了Access,表名、字段名全部中文。。加上.net 2.0的DataSet,开发非常快捷。。时间多半花在了画界面上。。
- 如果程序中出现几个大块相同的地方,建议把他们做成UserControl加以调用。省时省力。
- 如果你使用的是Access数据库,在进行参数传递的时候,变量名不要是SqlServer中的“select * from table where username=@username”,而应该是:“select * from table where username=?”。问号足矣。这点也花了我一定的时间。
- 对于.net的数据库,配置文件对它的路径描述是:|DataDirectory|。那么我们怎么找到这个文件夹呢?答案是:Application.LocalUserAppDataPath。这个有的时候很重要。。比如在我的备份功能那块。。
- 利用.net framwork 2.0发送mail的代码不用找了,我提供一个能用于gmail的,放在下面了。
- IconWorkshop软件做出来的icon很好看!
- That’s it. ^_^
public void SMTP(string from, string to, string bcc, string subject, string body, string attachment)
{
MailMessage mailMsg = new MailMessage();
mailMsg.From = new MailAddress(from);
mailMsg.To.Add(to);
mailMsg.Subject = subject;
mailMsg.IsBodyHtml = true;
mailMsg.BodyEncoding = Encoding.UTF8;
mailMsg.Body = body;
mailMsg.Attachments.Add(new Attachment(attachment));
mailMsg.Priority = MailPriority.Normal;
// Smtp configuration
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("xxx@gmail.com", "thepassword");
client.Port = 587; //or use 465
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
object userState = mailMsg;
try
{
//you can also call client.Send(msg)
client.SendAsync(mailMsg, userState);
client.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);
}
catch (SmtpException ex)
{
//Catch errors...
MessageBox.Show("Error:" + ex.Message);
toolStripStatusLabel1.Text = "Error...";
this.Enabled = true;
}
Спасибо за пост! Добавил блог в RSS-ридер, теперь читать буду регулярно..
[Reply]