一直做winform的项目,想做B/S,觉得它更是大势所趋。要学就学最流行,所以选择了.net mvc。
最近一直在学习mvc,觉得学技术还是老外的最好了,再加上自己想学习下英语。所以选择了几本mvc的英语书籍来学习。
1、Programming ASP.NET MVC 4(ASP.NET MVC 4 编程指南)
2、ASP.NET.MVC.4.in.Action(ASP.NET.MVC.4 实战)
3、Professional ASP.NET MVC (精通 ASP.NET MVC 4.pdf)
我想把这基本书边看边翻译下,希望自己坚持下去。
首先是第一本
ASP.NET MVC 编程指南
第一章 开始运行
1.1 ASP.NET MVC 基础
微软的网页开发平台
模型-视图-控制器架构
1.2 网页开发者的ASP.NET MVC
1.3 用数据运行
1.4 客户端开发
第二章 进一步了解
第三章 提升与进阶
第四章 掌握控制
第五章 灵活运用
第六章 附录
本文链接
2 Brush b = new SolidBrush(Color.FromArgb(50, Color.Transparent));
3
4
5 Bitmap image = new Bitmap(1015, 637);
6 Graphics g = Graphics.FromImage(image);
7 g.Clear(Color.Transparent);
8 g.FillRectangle(b, 0, 0, 1015, 637);
9 //g.DrawRectangle(Pens.Plum, 0, 0, 299, 49);
10 //Font font = new Font("Alba Super", 20, FontStyle.Underline);
11 //g.DrawString("This is a test.", font, Brushes.Plum, 10, 0);
12
13 //System.Drawing.Image icon = System.Drawing.Image.FromFile(Server.MapPath("your.gif"));
14 //g.DrawImageUnscaled(icon, 240, 0);
15
16 //image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
17 //SolidBrush:定义单色画笔。画笔用于填充图形形状,如矩形、椭圆、扇形、多边形和封闭路径。
18 //这个画笔为描绘阴影的画笔,呈灰色
19 float alpha = 0;
20 int m_alpha = Convert.ToInt32(256 * alpha);
21 SolidBrush semiTransBrush2 = new SolidBrush(Color.FromArgb(m_alpha, 0, 0, 0));
22
23 //从四个 ARGB 分量(alpha、红色、绿色和蓝色)值创建 Color 结构,这里设置透明度为153
24 //这个画笔为描绘正式文字的笔刷,呈白色
25 SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(153, 255, 255, 255));
26
27
28 g.DrawImage(image, 0, 0, image.Width, image.Height);
29 Font f = new Font(setFont, 18, FontStyle.Bold); //字體大小
30 Font fno = new Font(setFont, 10, FontStyle.Bold);
31 Font fclerk = new Font(setFont, 8, FontStyle.Bold);
32 Brush fb = new SolidBrush(Color.Black); //字體顏色
33 string addText = "塗聚文";
34 //new RectangleF(0, 0, 500, 500), strFormat)
35 g.DrawString(addText, f, fb, new RectangleF(130, 220, 550, 110), new StringFormat());//放的姓名位置
36 g.DrawString("行政及人事管理人員", fclerk, fb, new RectangleF(130, 410, 550, 110), new StringFormat());//放職稱的位置
37 g.DrawString("行政及人力资源管理部", fno, fb, new RectangleF(130, 470, 550, 110), new StringFormat());//放部門名稱的位置
38 g.DrawString("L00094", fno, fb, new RectangleF(130, 540, 550, 110), new StringFormat()); //放員工編號的位置
39
40 int xPosOfWm;
41 int yPosOfWm;
42 int phWidth = image.Width;
43 int phHeight = image.Height;
44 Photopath = dirInfo + "2cun.jpg"; //2寸照片
45 System.Drawing.Image copyImage = System.Drawing.Image.FromFile(Photopath);
46 int wmWidth = copyImage.Width;
47 int wmHeight = copyImage.Height;
48
49
50
在使用DispatcherTimer之前,需要使用using System.Windows.Threading;命名空间;集成到按指定时间间隔和指定优先级处理的 Dispatcher 队列中的计时器。 在每个 Dispatcher 循环的顶端重新计算 DispatcherTimer。 不能保证会正好在时间间隔发生时执行计时器,但能够保证不会在时间间隔发生之前执行计时器。 这是因为 DispatcherTimer 操作与其他操作一样被放置到 Dispatcher 队列中。 何时执行 DispatcherTimer 操作取决于队列中的其他作业及其优先级。在使用时代码如下:
{
InitializeComponent();
DispatcherTimer time = new DispatcherTimer();
time.Interval = new TimeSpan(0, 0, 1);
time.Tick += new EventHandler(time_Tick);
time.Start();
}
void time_Tick(object sender, EventArgs e)
{
tbkTimer.Text = "当前时间:" + DateTime.Now.ToLongTimeString();
}
主要代码如上,则在客户端可以看到一个在不断更新的时间;DispatchTimer主要适合于调度任务的情况。事实上,除StoryBoard组件之外dispatcherTimer也是Silverlight编程中实现动画效果的一种重要技术。当然,我们应该当心使用dispatcherTimer有可能导致创建太多的后台线程,从而有可能导致增加CPU的负荷而降低效率。
Dispatcher同样的需要使用using System.Windows.Threading命名空间;Dispatcher 类当前只提供从非用户界面 (UI) 线程在 UI 上运行代码的支持。 您可以通过 DependencyObject . Dispatcher 和 ScriptObject . Dispatcher 属性访问 UI 线程的 Dispatcher 对象。这些方法是实例方法,但这些类型的实例无法频繁从非 UI 线程访问。
下面是一个实现倒计时功能的例子:
前台XAMl代码:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<StackPanel x:Name="layerout" >
<Border x:Name="border" Background="AliceBlue" Width="200" Height="50" Margin="5" BorderBrush="Black" BorderThickness="3" CornerRadius="5"></Border>
<StackPanel Margin="80 0 0 0" Orientation="Horizontal" Width="188">
<Button Content="开始" x:Name="btnStart" Width="66" Height="30" Margin="5" Click="btnStart_Click"></Button>
<Button Content="延迟" x:Name="btnJoin" Width="100" Height="30" Margin="5" Click="btnJoin_Click"></Button>
</StackPanel>
</StackPanel>
</UserControl>
后台C#代码如下:
{
private static System.Windows.Controls.TextBlock tbk;
private Thread thread;
public Timer()
{
InitializeComponent();
tbk = new TextBlock()
{
FontSize = 15,
Width = 300,
Height = 100,
};
border.Child = tbk;
thread = new Thread(Timer.SetText);
}
public static void SetText()
{
int i = 60;