現状のアプリケーションのアーキテクチャをアプリケーションの形態毎にまとめた資料(でいいのかな?)がcodeplexで公開されています。
Pocket Guideといいつつ150ページぐらいのものが多いですが。。。
アプリケーションを構築する上で、どういう技術要素を選択するか、といった時点で参考になることも多そうです。
ざっとでも見ておきたいとこですが、、、分量がなぁ(w
現状のアプリケーションのアーキテクチャをアプリケーションの形態毎にまとめた資料(でいいのかな?)がcodeplexで公開されています。
Pocket Guideといいつつ150ページぐらいのものが多いですが。。。
アプリケーションを構築する上で、どういう技術要素を選択するか、といった時点で参考になることも多そうです。
ざっとでも見ておきたいとこですが、、、分量がなぁ(w
なお、当ソースは、Visual C# 2005 Express Editionで動作を確認しています。
Builder
using System;
namespace Gushwell.DesignPatterns {
public abstract class Builder {
public abstract void MakeTitle(string title);
public abstract void MakeString(string str);
public abstract void MakeItems(string[] items);
public abstract void Close();
}
}
TextBuilder
using System;
using System.Text;
namespace Gushwell.DesignPatterns {
public class TextBuilder : Builder {
// このフィールドに文書を構築していく
private StringBuilder buffer = new StringBuilder();
// 完成した文書
virtual public string Result {
get { return buffer.ToString(); }
}
// プレーンテキストでのタイトル
public override void MakeTitle(string title) {
buffer.Append("==============================\n"); // 飾り線
buffer.Append("『" + title + "』\n"); // 『』つきのタイトル
buffer.Append("\n"); // 空行
}
// プレーンテキストでの文字列
public override void MakeString(string str) {
buffer.Append('■' + str + "\n"); // ■つきの文字列
buffer.Append("\n"); // 空行
}
// プレーンテキストでの箇条書き
public override void MakeItems(string[] items) {
for (int i = 0; i < items.Length; i++) {
buffer.Append(" ・" + items[i] + "\n"); // ・つきの項目
}
buffer.Append("\n"); // 空行
}
// 文書の完成
public override void Close() {
buffer.Append("==============================\n"); // 飾り線
}
}
}
HTMLBuilder
using System;
using System.IO;
namespace Gushwell.DesignPatterns {
public class HTMLBuilder : Builder {
private string filename; // 作成するファイル名
private StreamWriter writer; // ファイルに書き込む
// 完成した文書
public virtual string Result {
get { return filename; } // ファイル名を返す
}
// HTMLファイルでのタイトル
public override void MakeTitle(string title) {
filename = title + ".html"; // タイトルを元にファイル名決定
try {
writer = new StreamWriter(filename, false);
} catch (System.IO.IOException e) {
Console.WriteLine(e.StackTrace);
}
// タイトルを出力
writer.WriteLine("");
writer.WriteLine("");
writer.WriteLine("
" + title + "
");
}
// HTMLファイルでの文字列
public override void MakeString(string str) {
writer.WriteLine("
" + str + "
"); //
タグで出力
}
// HTMLファイルでの箇条書き
public override void MakeItems(string[] items) {
writer.WriteLine("
Director
using System;
namespace Gushwell.DesignPatterns {
public class Director {
private Builder builder;
public Director(Builder builder) {
// Builderのサブクラスのインスタンスが与えられるので、
// builderフィールドに保持しておく。
this.builder = builder;
}
public virtual void Construct() {
// 文書構築
builder.MakeTitle("Greeting"); // タイトル
builder.MakeString("朝から昼にかけて"); // 文字列
builder.MakeItems(new string[]
{ "おはようございます。", "こんにちは。" });
builder.MakeString("夜に"); // 別の文字列
builder.MakeItems(new string[]
{ "こんばんは。", "おやすみなさい。", "さようなら。" });
builder.Close(); // 文書を完成させる
}
}
}
Program
using System;
namespace Gushwell.DesignPatterns {
public class Program {
public static void Main(string[] args) {
if (args.Length != 1) {
Usage();
return;
}
if (args[0].Equals("plain")) {
TextBuilder textbuilder = new TextBuilder();
Director director = new Director(textbuilder);
director.Construct();
string result = textbuilder.Result;
Console.WriteLine(result);
} else if (args[0].Equals("html")) {
HTMLBuilder htmlbuilder = new HTMLBuilder();
Director director = new Director(htmlbuilder);
director.Construct();
string filename = htmlbuilder.Result;
Console.WriteLine(filename + "が作成されました。");
} else {
Usage();
return;
}
}
public static void Usage() {
Console.WriteLine("Usage: BuilderSample plain プレーンテキストで文書作成");
Console.WriteLine("Usage: BuilderSample html HTMLファイルで文書作成");
}
}
}
デモ環境を作っていて確認したことですが、
WIndows Server 2008 の環境に SharePoint Server 2007 をそのまま、インストールしてもエラーが出てインストールできません。
これは、初期版の SharePoint Server 2007 が Windows Server 2008 に対応していないためです。
なので、インストールメディアの Updates フォルダ(更新プログラムを放り込むフォルダですね。)に SP1 を適用してから、インストールする必要があるとのことです。
また、テスト環境での確認であれば、MSDN サブスクリプションから、SP1 適用済みのメディアがダウンロードできますので、それを利用してもインストールすることはできます。
情報が公開されていても分かりづらいようなので、この場でご紹介させていただきました。
正式な情報は以下です。
Windows Server 2008 で Office SharePoint Server 2007 のスタンドアロン インストールを実行する
NET AJAX . Rate This.
NET AJAX. Rate This. ferglo. 28 Nov 2008 1:58 PM. Comments 1. Esta vez quiero compartir con ustedes este excelente recurso, son 71 videos cortos que te llevan desde cero a crear los componentes de aplicación muy completa, pudes decargas …
More here:
ASP.NET AJAX – MVP Factor – Site Home – MSDN Blogs
Cloudship: Membership Provider for the Cloud
ASP.NETに組み込まれているMembershipの各コントロールは、標準だとMembershipProviderを通してSQL Server上のデータベースに格納されているユーザ情報を利用するようになっています。
Azureではデータはクラウド上の専用のストレージに格納することになりますが、そこにユーザ情報を格納して利用できるようなMembershipProviderを作成する方法が例示されています。
この手のプロバイダは標準で提供されるようになるような気もしますが、知っておいて損はないかと。
#あれ、SDKに含まれるサンプルにMembership使ってるものなかったかな。。。
This post is an attempt to collect all the major Flash/ AJAX /PHP photo galleries in jut one place. Most of them are entirely free of charge.
This post is an attempt to collect all the major Flash/AJAX/PHP photo galleries in jut one place. Most of them are entirely free of charge. Some, however, have some limitations to their free versions but is should not stop you from …
Continue reading here:
100 + 1 FREE photo/image galleries (AJAX, Flash, PHP) « Web-kreation
It’s been a while since my last post, but that’s because I’ve been also helping out with the Seadragon AJAX release.
It’s been a while since my last post, but that’s because I’ve been also helping out with the Seadragon AJAX release. You have to check out what we did there. You can now browse single images in web browsers where Silverlight is either …
Read more from the original source:
Seadragon AJAX and Deep Zoom – A Deep Zoom Blog – Site Home – MSDN …
なお、当ソースは、Visual C# 2005 Express Editionで動作を確認しています。
Productクラス
using System;namespace Gushwell.DesignPatterns.Framework
{
public abstract class Product {
public abstract void Use();}
}
Factoryクラス
using System;namespace Gushwell.DesignPatterns.Framework
{
public abstract class Factory {public Product Create(string owner)
{
Product p = CreateProduct(owner);RegisterProduct(p);return p;}
protected abstract Product CreateProduct(string owner);
protected abstract void RegisterProduct(Product product);
}
}
IDCardクラス
using System;
using Gushwell.DesignPatterns.Framework;
namespace Gushwell.DesignPatterns.IDCard {
public class IDCard : Product {
private string owner;public IDCard(string owner) {
Console.WriteLine(owner + "のカードを作ります。");
this.owner = owner;}
public override void Use() {
Console.WriteLine(owner + "のカードを使います。");
}public virtual string Owner {
get {
return owner; }
}
}
}
IDCardFactoryクラス
using System;
using System.Collections.Generic;
using Gushwell.DesignPatterns.Framework;
namespace Gushwell.DesignPatterns.IDCard {
public class IDCardFactory : Factory {
private Listowners = new List ();
protected override Product CreateProduct(string owner) {
return new IDCard(owner);}
protected override void RegisterProduct(Product product) {
owners.Add(((IDCard)product).Owner);}public virtual ListOwners {
get {
return owners; }
}
}
}
Programクラス
using System;
using Gushwell.DesignPatterns.Framework;
using Gushwell.DesignPatterns.IDCard;
namespace Gushwell.DesignPatterns {
public class Program {
[STAThread]public static void Main(string[] args) {
Factory factory = new IDCardFactory();
Product card1 = factory.Create("結城浩");
Product card2 = factory.Create("とむら");
Product card3 = factory.Create("佐藤花子");
card1.Use();card2.Use();card3.Use();}
}
}
なお、当ソースは、Visual C# 2005 Express Editionで動作を確認しています。
Factoryクラス
using System;
namespace Gushwell.DesignPatterns.BaseFactory {
public abstract class Factory {
public static Factory GetFactory(string classname) {
Factory factory = null;
try {
factory = (Factory)Activator.CreateInstance(Type.GetType(classname));
} catch (System.TypeLoadException) {
Console.Error.WriteLine("クラス " + classname + " が見つかりません。");
} catch (System.Exception e) {
Console.Error.WriteLine(e.StackTrace);
}
return factory;
}
public abstract Link CreateLink(string caption, string url);
public abstract Tray CreateTray(string caption);
public abstract Page CreatePage(string title, string author);
}
}
Pageクラス
using System;
using System.Text;
using System.Collections.Generic;
using System.IO;
namespace Gushwell.DesignPatterns.BaseFactory {
public abstract class Page {
protected string title;
protected string author;
protected List- content = new List
- ();
public Page(string title, string author) {
this.title = title;
this.author = author;
}
public virtual void Add(Item item) {
content.Add(item);
}
public virtual void Output() {
try {
string filename = title + ".html";
StreamWriter writer = new StreamWriter(filename, false, Encoding.Default);
writer.Write(this.MakeHTML());
writer.Close();
Console.WriteLine(filename + " を作成しました。");
} catch (System.IO.IOException e) {
Console.Error.WriteLine(e.StackTrace);
}
}
public abstract string MakeHTML();
}
}
Trayクラス
using System;
using System.Collections.Generic;
namespace Gushwell.DesignPatterns.BaseFactory {
public abstract class Tray : Item {
protected List- tray = new List
- ();
public Tray(string caption)
: base(caption) {
}
public virtual void Add(Item item) {
tray.Add(item);
}
}
}
Itemクラス
using System;
namespace Gushwell.DesignPatterns.BaseFactory {
public abstract class Item {
protected string caption;
public Item(string caption) {
this.caption = caption;
}
public abstract string MakeHTML();
}
}
Linkクラス
using System;
namespace Gushwell.DesignPatterns.BaseFactory {
public abstract class Link : Item {
protected string url;
public Link(string caption, string url)
: base(caption) {
this.url = url;
}
}
}
なお、当ソースは、Visual C# 2005 Express Editionで動作を確認しています。
Singletonクラス
using System;
namespace Gushwell.DesignPatterns {
public sealed class Singleton {
public static Singleton Instance {
get { return singleton; }
}
private static readonly Singleton singleton = new Singleton();
private Singleton() {
Console.WriteLine("インスタンスを生成しました。");
}
}
}
Programクラス
using System;
namespace Gushwell.DesignPatterns {
public class Program {
[STAThread]
public static void Main(System.String[] args) {
Console.WriteLine("Start.");
Singleton obj1 = Singleton.Instance;
Singleton obj2 = Singleton.Instance;
if (obj1 == obj2) {
Console.WriteLine("obj1とobj2は同じインスタンスです。");
} else {
Console.WriteLine("obj1とobj2は同じインスタンスではありません。");
}
Console.WriteLine("End.");
Console.ReadLine();
}
}
}
Powered by WordPress