於 ASP.NET 分類下的文章
今天分享這篇文章是希望可以有更多人來玩 ASP.NET MVC !!
一直以來我覺得ASP.NET 對於一些原本是OpenSource 開發者轉進微軟Solution的人來說,最討厭的就是;一個可以讓自己開心測試玩樂的環境難求!在銀彈不足的情況下常常需要東找西找.至於找什麼大家心裡明白就好XD 外加大多數的公司老闆不太會因為你的好奇心就貿然用新版的軟體,Framework,所以很多時候是自己有心可是大環境有點無奈,更多的情況應該是就算Express版本和一些免費的SDK都可以玩.但是玩玩之後要分享給朋友真的是好麻煩. 如果你又想使用MSSQL那就更討厭了今天發現了這個方便的服務配合整理一些前輩的文章希望大家也可以來玩。
何謂AppHarbor ?
AppHarbor 是一個PaaS服務,如果你還不明白這是啥可以參考 Wiki 簡單說明 ! 如果你需要的是一些實例那可以參考這篇
在稍微理解一些前因後果之後,馬上就可以先來註冊一下。
比起微軟本身的Azure我覺得這個服務實在是單純超多的。就是輸入資料註冊完之後建立一個App
何謂JSON
JSON(JavaScript Object Nonation) 是一種輕量級的[資料交換語言],以純文字為基底儲存和傳送的資料格式.說的白話一點是一種定義好用來做資料交換的格式(還是很饒舌),那就是一種功能上類似XML的東西.還無法參透的話請參考這篇。而JSONNET講的粗淺一點就是一隻用來把NET物件轉成JSON字串或者把JSON字串轉成物件的DLL
官方介紹:
Json.NET makes working with JSON formatted data in .NET simple. Quickly read and write JSON using LINQ to JSON or serialize your .NET objects with a single method call using the JsonSerializer.
這個組件使.NET可以更簡單快速的使用JSON格式的資料,並且使用LINQ去撈資料或者序列化(產生JSON字串)您的.NET物件
整理使用筆記 :
1. 下載後直接將/bin底下的dll加入參考,目前4版有對應2.0 3.5 後面沒有版號的目錄是4.0
2. 匯入命名空間
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
3. 物件轉JSON
第一種:傳統強型別直接轉
//實踐一個書本類別並帶入資料
TradtionBook tbook = new TradtionBook { Name = "OlderBook", Author = "AndyYou", ISBN = 123456, PubDate = new DateTime(2011,9,9) };
Console.WriteLine(JsonConvert.SerializeObject(tbook)); // 這樣就轉好了
CKeditor in ASP.NET
1. 至官方下載 http://ckeditor.com/download
2. 解開壓鎖檔後刪除不必要的檔案 _samples _source 目錄以減少檔案容量。
3. 複製該目錄至您的.NET專案底下
4. 在<head></head>中間引入Ckeditor 的JS 核心 :
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
在HEAD中如下:
<head runat="server">
<title>HTML Editor</title>
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
</head>
5. 在Form中間插入Textbox物件 或切換到原始碼頁面插入 注意: ID可以自行設定
<asp:TextBox ID="tbContent" name="tbContent" runat="server" TextMode="MultiLine"></asp:TextBox>
6. 接著在上面那段程式碼下方插入下面這段JS
<script type="text/javascript">
//CKEDITOR.replace('tbContent');
CKEDITOR.replace('<%=tbContent.ClientID.Replace("_","$") %>',{toolbar:'Andybar'});
</script>
重點程式註解 :
CKEDITOR.replace('<%=[物件ID].ClientID.Replace("_","$") %>',{toolbar:'[ 工具列的屬性 可設定 Basic 或 Full ]});
繼續閱讀 »
C#部份
0. 基礎語法
基本型別,時間物件, 時間比較, 字串, 整數, 浮點數 (常用語法整理),生命週期,web.config 連線字串設定
bool:true/false
string: ""
string.Format("{0}{1}",var1,var2);
decimal price = 120M //小數以下可達28位
float,byte,char
int: int? age = null; //可允許空值
命名規則: A-Z a-z _
列舉關鍵字 : protected, private, public, void,class,
DateTime.Now
DateTime.Now.DayOfWeek; //星期幾
DateTime.Now.DayOfWeek.GetHashCode(); //傳回雜湊碼 星期天=>0 ~ 星期六=>6
DateTime Dt = new DateTime(2011,01,01,12,00,00);
DateTime EndDt = new DateTime(2011,07,31,12,00,00);
DateTime.Now.CompareTo(EndDt);// 現在時間 大於EndDt => 1 相等=>0 小於=>-1
路徑: Request.PhysicalApplicationPath; 實體路徑
Request.ApplicationPath 應用程式路徑
加密:
System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile("123456", "MD5");
詳細的教學請參考 這裡 本篇將整個說明的部份範例整合並做詳細的註解,分享給有需要的人。
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="iTextSharp.text" %>
<%@ Import Namespace="iTextSharp.text.html.simpleparser" %>
<%@ Import Namespace="iTextSharp.text.pdf" %>
<%@ Import Namespace="System.Collections.Generic" %>
protected void Button1_Click(object sender, EventArgs e)
{
Document doc = new Document(PageSize.A4,50,50,80,50);//宣告一個文件,設定文件大小(Margin:左,右,上,下)
MemoryStream Memory = new MemoryStream();//使用記憶體暫存將內容擷取至doc
PdfWriter PdfWriter = PdfWriter.GetInstance(doc, Memory);//使用PdfWriter 將doc的內容導入Memory 並繪製成pdf
//各種字型設定 BaseFont設定字型
BaseFont bfChinese = BaseFont.CreateFont(Request.PhysicalApplicationPath+@"font\MSJH.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
//↑中文字須配合中文字型 將中文字抓到目錄下
//設定字型其他樣式
Font ChFont = new Font(bfChinese, 12);
Font ChFont_blue = new Font(bfChinese, 15, Font.NORMAL, new BaseColor(51, 0, 153));
//Chunk為文字片段簡單說就是string 不會自行斷行 ("內容",字型物件)
Chunk c0 = new Chunk("<c0>第一句</c0>",ChFont);
//Phrase為句子 可以將chunk彙整至Phrase 但Phrase也是句子也不會斷行需透過 \n 或 Environment.NewLine
Phrase p1 = new Phrase(c0);
Chunk c1 = new Chunk("<c1>第二句</c1>", ChFont);
Chunk c2 = new Chunk("<c2>第三句 </c2>", ChFont);
//透過chunk將個別的文字先寫入後再透過Phrase 的Add將個別的chunk加入
Phrase p2 = new Phrase(c1);
p2.Add(c2);
//段落 可以設定樣式如下
Paragraph pg = new Paragraph();
pg.Add(p1);
pg.Add(p2);
pg.Alignment=1;//設定左右對齊 0:左 1:置中 2:右
pg.FirstLineIndent = 20f;//段落首句縮排
pg.SetLeading(0.0f, 2.0f);//設定行句
繼續閱讀 »
近期迴響