7. Web ブラウザ Web サーバ DB サーバ
コントローラ
ビュー
EF
DACUI
※ 細かいコードは理解しなくて OK です
(本日のサンプルコードは後日配布します)
8. [Table("authors")]
public class Author {
[Column("au_id"), Required, MaxLength(11), Key]
public string AuthorId { get; set; }
[Column("au_fname"), Required, MaxLength(20)]
public string AuthorFirstName { get; set; }
[Column("au_lname"), Required, MaxLength(40)]
public string AuthorLastName { get; set; }
...
}
public class PubsEntities : DbContext {
protected override void OnConfiguring(DbContextOptionsBuilder options) {
options.UseSqlServer("...(接続文字列)...");
}
public DbSet<Author> Authors { get; set; }
...
}
DAC
EF
9. public class Sample01Controller : Controller
{
[HttpGet]
public ActionResult ShowAllAuthors()
{
using (PubsEntities pubs = new PubsEntities())
{
ViewData["Authors"] = pubs.Authors.ToList();
}
return View();
}
}
コントローラ
UI
10. <table class="...">
<thead>...</thead>
<tbody>
@foreach (Author a in (ViewData["Authors"] as List<Author>))
{
<tr>
<td>@a.AuthorId</td>
<td>@a.AuthorFirstName @a.AuthorLastName</td>
<td>@a.Phone</td>
<td>@a.State</td>
...
</tr>
}
</tbody>
</table>
ビュー
UI
サーバで
描画処理
11. Web サーバ DB サーバ
Web API EF
DACSI
JavaScriptHTML
Web ブラウザ
※ 細かいコードは理解しなくて OK です
(本日のサンプルコードは後日配布します)
UI
12. [Table("authors")]
public class Author {
[Column("au_id"), Required, MaxLength(11), Key]
public string AuthorId { get; set; }
[Column("au_fname"), Required, MaxLength(20)]
public string AuthorFirstName { get; set; }
[Column("au_lname"), Required, MaxLength(40)]
public string AuthorLastName { get; set; }
...
}
public class PubsEntities : DbContext {
protected override void OnConfiguring(DbContextOptionsBuilder options) {
options.UseSqlServer("...(接続文字列)...");
}
public DbSet<Author> Authors { get; set; }
...
}
DAC
EF
13. public class Sample02Controller : Controller
{
[HttpGet]
public List<Author> GetAllAuthors()
{
using (PubsEntities pubs = new PubsEntities())
{
return pubs.Authors.ToList();
}
}
}
Web API
SI
サーバは
データ返信のみ
56. [HttpPost]
public GetRichMessageResult GetRichMessage(string name)
{
return new GetRichMessageResult(...);
}
public class GetRichMessageResult {
public ResultEnum Result { get; set; }
public string Message { get; set; }
public DateTime CurrentDateTime { get; set; }
}
57. コンテンツ application/json(JSON形式)
本文 (Body)
{"Result": 2,
"Message":"Hello World, Nobuyuki",
"CurrentDateTime":
"2015-10-06T11:09:23.385863+09:00"}
public class GetRichMessageResult {
public ResultEnum Result { get; set; }
public string Message { get; set; }
public DateTime CurrentDateTime { get; set; }
}
数値型