SlideShare une entreprise Scribd logo
1  sur  25
.NET Frameworkで
ブログ&CMS
~Orchard CMS編~
@第7回まどべんよっかいち
2013/11/9
青木 宣明(@kumar0001)
どうしてCMSを?
Windows Phone 8の日本発売が見え
ない状況…
• アプリ開発のモチベーションが↘
• 最近はネイティブクライアントを見てきた
ので、Web技術にも触れておきたい
放置してる開発ブログ
• 時系列のブログでは書きづらいので、ノウ
ハウを貯めていくサイトを構築したい
• せっかくなのでCMSで作ろう
CMSの選択
• PHP
• Wordpress, Joomla!,
Drupalなど
• Python
• Plone, Zope
他にも多数のCMSがあっ
て把握しきれていません
ASP.NET MVCでのCMS
ASP.NET/ASP.NET MVCで構築された
CMSもあります
• .NET CMS, Umbraco CMS, N2 CMS,
DotNetNuke, Orchard CMSなど
Webサイトのカスタマイズ
• CMSを構築した言語を使う場合が多い
• PHPでも構わないけども…慣れているC#
もしくはPythonを使いたい
ASP.NET MVCで構築されたOrchard CMSを選択
Orchard CMSを選んだ理由(1)
Webサイトの部品化
• Webサイトの構成要素を部品化して、そ
れを組み合わせる方法
• カスタマイズがしやすそう
画面のクラス定義
• 画面構成をクラス(=コンテンツタイプ)と
して定義
• 個々のページは定義したクラスのインスタ
ンスとして生成する
簡素で直感的な管理画面
Orchard CMSを選んだ理由(2)
ネット上のドキュメントが多い
• 公式ドキュメントは日本語に翻訳されてい
ないが、読みやすくとっかかりやすい
• ユーザのブログもそれなりに見つかり参考
にできる(日本語のも多い)
Orchard CMSの情報源
公式サイト
• http://orchardproject.net/
MIX11 Keynote Day1での紹介
 http://channel9.msdn.com/Events/MIX/MIX11
 http://www.youtube.com/watch?v=9hY00mcAlRM
• MIX11で12分ほど紹介
Orchard CMSの情報源
MSDN マガジン January 2012
• Orchard CMS - Orchard の拡張性
http://msdn.microsoft.com/ja-
jp/magazine/hh708754.aspx
ブログ
• ウェブマトリックスマンのブログ
• 他にも日本語情報があります
Orchardサイトの構造
複数のZoneに区切られる
・ZoneにはコンテンツやWidgetを
追加できる
・何もないZoneは表示されない
Layout
Orchardサイトの構造
特定の条件で表示されるZoneの集合
 デフォルト(常に表示)
 認証していないユーザの場合
 認証済みのユーザの場合
 ホームページの場合
 常に表示しない
Layer
Orchardサイトの構造
Widget
Widget
Widget
Content
Widget
Content
Orchardサイトの構造
ContentとParts
Shape Tracingツールで
選択箇所のShapeを表示
Title Part
Common Part
Blog Content
Blog Post Content
Comments Count
Tag
Body
@{
Layout.Title = Model.Title;
}
<h1>@Model.Title</h1>
Templateに従って
レンダリング
Orchardサイトの構造
ContentとParts
Blog Postコンテンツタイプの
定義画面
・複数のPartsから構成される
・他のコンテンツタイプで使
われるPartもある
・表示されないPartもある
(Publish Laterなど)
Orchardサイトの構造
Content Item
BlogPostコンテンツタイプの
インスタンス
・Partsごとにデータ入力
Autoroute Part
Publish Later PartCommon Part
Body Part
Tags Part
Comment Part
Title Part
Orchardサイトの構造
Content Field
コンテンツタイプに追加してフィールド
を定義できる
・Partsと違って再利用されない
Orchardサイトの構造
Content Field
FieldはBoolean/Text/Linkなど
の基本型から、メディア選択
などの拡張的なものまである
Fieldごとに詳細な設定が可能
・必須フラグ
・入力パターン
など
Orchardサイトの構造
Shape
Shape Tracingツールで
選択箇所のShapeを表示
Branding Shape
Title Sumary Shape
Widget, Content Part
・HTMLレンダリングの過程
でShapeの集合に変換
Shapeは表示の単位
・表示方法のカスタマイズ
を行える単位でもある
Orchardの他の機能
テーマ
• Look&Feelを一括して変更できる
• Templateコード, CSS, 画像などをパッ
ケージ化
Roleベースの権限管理
Workflow
ギャラリー
• モジュール・テーマを公開する
• モジュール=Widget, Content Typeなど
の部品を公開する単位
OrchardでのWebサイト構築
インストー
ル
• WebMatrix, Windows Azureのギャラリーから
• ソースコードから
機能のカス
タマイズ
• Content Typeの定義、配置
• Widgetの配置
• Custom Formの定義、配置
見た目のカ
スタマイズ
• テーマの変更
• テーマの修正 (CSS, Template)
デモ:AP開発ブログサイト
放置してるAP開発ブログサイトのリ
ニューアル
• 開発・検証で得たノウハウの記録・公開にブ
ログ形式が向いていない場合がある
• (および単なるサボり)
開発・検証で得たノウハウの記録
• 時系列での記録 (Blog)
勉強会の参加記録
作業内容、手順
• 階層構造での記録 (Wiki)
再編成された情報
両方を扱えるCMSで
再構築する
デモ:AP開発ブログサイト
トップ
• Twitterの最新ツイート
開発日誌(Blog)
技術メモ(Wiki)
• Wiki記法やmarkdownで記述
アプリ紹介
• 定型的なページ⇒Content Typeとして定義
 アプリケーション名
 概要
 スクリーンショット
 ストアへのリンク
About us
• 自己紹介
• ストアアプリのプライバシーポリシーなどの規約を配置
デモ:AP開発ブログサイト
Blogの配置
• SPAM対策
連絡フォームの配置
• Contentタイプの定義
• ワークフローの定義
見栄えのカスタマイズ
• テーマのインストール
Responsive Web Designに対応したテーマ
• テーマのカスタマイズ
• Shape Tracing
デモ:AP開発ブログサイト
メモ:モバイルへの対応
• 2つの方法
User Agentに応じてファイルを切り替える
メンテナンスのコストがかかる
Responsive Web Designを取り入れる
CSS3のmedia query(@media)を使って、画面幅に
応じてコンテンツの配置を変更する
コンテンツを記述するHTMLは共通でよい
• 今回はResponsive Web Designを採用
最近のブラウザならCSS3に対応している…は
ず
非対応のブラウザは切り捨てで
デモ:AP開発ブログサイト
メモ:テーマのカスタマイズ
• ResponsiveThemeMachineテーマを導入
• Code Generationモジュールをenable
• Orchard.exeを起動
codegen theme MyResponsiveTheme
/BasedOn:ResponsiveThemeMachine
• 元のテーマから変更するファイルをコピー
して修正
変更しないファイルは表示の際に、派生元テー
マから自動的に取得される
まとめ
Content Partによる部品の再利用
• Webサイトデザインのカスタマイズを統一的に実施できる
• 既存部品の利用で新しいContent Typeを手軽に定義できる
Content Typeによるページの定義
• 決まった入力パターンがあれば、FieldやPartを使って定型化できる
• 表示のカスタマイズもできる(はず。未検証)
CMSサイトのカスタマイズ
• デザインのカスタマイズは、既存テーマからの差分の定義が手軽
• モジュールを開発して、より複雑な処理をするPart・Widgetを配置できる

Contenu connexe

Plus de Nobuaki Aoki

IoTの始め方~.NET Micro Framework編
IoTの始め方~.NET Micro Framework編IoTの始め方~.NET Micro Framework編
IoTの始め方~.NET Micro Framework編Nobuaki Aoki
 
Getting started with edison
Getting started with edisonGetting started with edison
Getting started with edisonNobuaki Aoki
 
第11回まどべんよっかいちの告知
第11回まどべんよっかいちの告知第11回まどべんよっかいちの告知
第11回まどべんよっかいちの告知Nobuaki Aoki
 
第1回三重合同懇親会の告知
第1回三重合同懇親会の告知第1回三重合同懇親会の告知
第1回三重合同懇親会の告知Nobuaki Aoki
 
(仮)登別クマ牧場のテツロウについて
(仮)登別クマ牧場のテツロウについて(仮)登別クマ牧場のテツロウについて
(仮)登別クマ牧場のテツロウについてNobuaki Aoki
 
まどべんよっかいちのご紹介
まどべんよっかいちのご紹介まどべんよっかいちのご紹介
まどべんよっかいちのご紹介Nobuaki Aoki
 
Microsoft Azure Mobile Serviceによるアプリ構築
Microsoft Azure Mobile Serviceによるアプリ構築Microsoft Azure Mobile Serviceによるアプリ構築
Microsoft Azure Mobile Serviceによるアプリ構築Nobuaki Aoki
 
mbedとwindows 8.1
mbedとwindows 8.1mbedとwindows 8.1
mbedとwindows 8.1Nobuaki Aoki
 
Windows.Web.Http.HttpClientとWebAuthenticationBroker
Windows.Web.Http.HttpClientとWebAuthenticationBrokerWindows.Web.Http.HttpClientとWebAuthenticationBroker
Windows.Web.Http.HttpClientとWebAuthenticationBrokerNobuaki Aoki
 
Windows phone 8プログラミング~gps&地図編~
Windows phone 8プログラミング~gps&地図編~Windows phone 8プログラミング~gps&地図編~
Windows phone 8プログラミング~gps&地図編~Nobuaki Aoki
 
Windows Azure Mobile Servicesによるアプリ構築
Windows Azure Mobile Servicesによるアプリ構築Windows Azure Mobile Servicesによるアプリ構築
Windows Azure Mobile Servicesによるアプリ構築Nobuaki Aoki
 
Windows phone 8のデバイスを使おう~カメラ&フォト編~(公開用)
Windows phone 8のデバイスを使おう~カメラ&フォト編~(公開用)Windows phone 8のデバイスを使おう~カメラ&フォト編~(公開用)
Windows phone 8のデバイスを使おう~カメラ&フォト編~(公開用)Nobuaki Aoki
 
Windows phone 8のデバイスを使おう~近接通信編~(公開用)
Windows phone 8のデバイスを使おう~近接通信編~(公開用)Windows phone 8のデバイスを使おう~近接通信編~(公開用)
Windows phone 8のデバイスを使おう~近接通信編~(公開用)Nobuaki Aoki
 
Wp8 longlistselectorでのページング処理
Wp8 longlistselectorでのページング処理Wp8 longlistselectorでのページング処理
Wp8 longlistselectorでのページング処理Nobuaki Aoki
 
Metrostyleappに挑戦してみた
Metrostyleappに挑戦してみたMetrostyleappに挑戦してみた
Metrostyleappに挑戦してみたNobuaki Aoki
 
Windows phoneの開発ツール
Windows phoneの開発ツールWindows phoneの開発ツール
Windows phoneの開発ツールNobuaki Aoki
 
Windows phoneアプリとネットサービスとの連携
Windows phoneアプリとネットサービスとの連携Windows phoneアプリとネットサービスとの連携
Windows phoneアプリとネットサービスとの連携Nobuaki Aoki
 
Windows phone SDK 8.0でのアプリ開発
Windows phone SDK 8.0でのアプリ開発Windows phone SDK 8.0でのアプリ開発
Windows phone SDK 8.0でのアプリ開発Nobuaki Aoki
 
Windows Phone勉強会@四日市へのお誘い
Windows Phone勉強会@四日市へのお誘いWindows Phone勉強会@四日市へのお誘い
Windows Phone勉強会@四日市へのお誘いNobuaki Aoki
 

Plus de Nobuaki Aoki (19)

IoTの始め方~.NET Micro Framework編
IoTの始め方~.NET Micro Framework編IoTの始め方~.NET Micro Framework編
IoTの始め方~.NET Micro Framework編
 
Getting started with edison
Getting started with edisonGetting started with edison
Getting started with edison
 
第11回まどべんよっかいちの告知
第11回まどべんよっかいちの告知第11回まどべんよっかいちの告知
第11回まどべんよっかいちの告知
 
第1回三重合同懇親会の告知
第1回三重合同懇親会の告知第1回三重合同懇親会の告知
第1回三重合同懇親会の告知
 
(仮)登別クマ牧場のテツロウについて
(仮)登別クマ牧場のテツロウについて(仮)登別クマ牧場のテツロウについて
(仮)登別クマ牧場のテツロウについて
 
まどべんよっかいちのご紹介
まどべんよっかいちのご紹介まどべんよっかいちのご紹介
まどべんよっかいちのご紹介
 
Microsoft Azure Mobile Serviceによるアプリ構築
Microsoft Azure Mobile Serviceによるアプリ構築Microsoft Azure Mobile Serviceによるアプリ構築
Microsoft Azure Mobile Serviceによるアプリ構築
 
mbedとwindows 8.1
mbedとwindows 8.1mbedとwindows 8.1
mbedとwindows 8.1
 
Windows.Web.Http.HttpClientとWebAuthenticationBroker
Windows.Web.Http.HttpClientとWebAuthenticationBrokerWindows.Web.Http.HttpClientとWebAuthenticationBroker
Windows.Web.Http.HttpClientとWebAuthenticationBroker
 
Windows phone 8プログラミング~gps&地図編~
Windows phone 8プログラミング~gps&地図編~Windows phone 8プログラミング~gps&地図編~
Windows phone 8プログラミング~gps&地図編~
 
Windows Azure Mobile Servicesによるアプリ構築
Windows Azure Mobile Servicesによるアプリ構築Windows Azure Mobile Servicesによるアプリ構築
Windows Azure Mobile Servicesによるアプリ構築
 
Windows phone 8のデバイスを使おう~カメラ&フォト編~(公開用)
Windows phone 8のデバイスを使おう~カメラ&フォト編~(公開用)Windows phone 8のデバイスを使おう~カメラ&フォト編~(公開用)
Windows phone 8のデバイスを使おう~カメラ&フォト編~(公開用)
 
Windows phone 8のデバイスを使おう~近接通信編~(公開用)
Windows phone 8のデバイスを使おう~近接通信編~(公開用)Windows phone 8のデバイスを使おう~近接通信編~(公開用)
Windows phone 8のデバイスを使おう~近接通信編~(公開用)
 
Wp8 longlistselectorでのページング処理
Wp8 longlistselectorでのページング処理Wp8 longlistselectorでのページング処理
Wp8 longlistselectorでのページング処理
 
Metrostyleappに挑戦してみた
Metrostyleappに挑戦してみたMetrostyleappに挑戦してみた
Metrostyleappに挑戦してみた
 
Windows phoneの開発ツール
Windows phoneの開発ツールWindows phoneの開発ツール
Windows phoneの開発ツール
 
Windows phoneアプリとネットサービスとの連携
Windows phoneアプリとネットサービスとの連携Windows phoneアプリとネットサービスとの連携
Windows phoneアプリとネットサービスとの連携
 
Windows phone SDK 8.0でのアプリ開発
Windows phone SDK 8.0でのアプリ開発Windows phone SDK 8.0でのアプリ開発
Windows phone SDK 8.0でのアプリ開発
 
Windows Phone勉強会@四日市へのお誘い
Windows Phone勉強会@四日市へのお誘いWindows Phone勉強会@四日市へのお誘い
Windows Phone勉強会@四日市へのお誘い
 

.NET Frameworkで.ブログ&CMS~Orchard CMS編~