dotnetblogengine.net を見て、フォーラムの投稿から、既存のサイトに統合するのはそれほど簡単ではないという印象を受けました。他の ASP.NET コントロールと同じように使用できる最新のブログ/ニュース ソリューションはありますか?
4 に答える
この既存のアプリケーションを統合する方法については、ステップ バイ ステップ ガイドを参照してください。さらに、この BlogEngine Web サイト プロジェクトと asp.net Web アプリケーションの統合にはいくつかの複雑さが伴うため、asp.net アプリケーションと統合するためのソリューションも見つかります。以下の指示に従うだけで完了です。
Web プロジェクト フォルダーを取得する
zip ファイルをダウンロードしたので、解凍する必要があります。これは、さまざまなユーティリティやさまざまな方法で実行できます。
Web プロジェクトのダウンロードを選択した場合、新しく解凍されたフォルダーには、使用する Web プロジェクトが含まれています。ソースコードをダウンロードすると、Web プロジェクトは少し埋もれています。Web プロジェクトは、BlogEngine.NET フォルダーの下にあり、BlogEngine フォルダーの下にあります。
Web プロジェクトを Web サーバーにロードする
Web プロジェクト フォルダーが作成されたので、これらのファイルとフォルダーを Web サーバーにコピーします。これには通常 FTP が必要ですが、状況によっては、ポータブル ストレージ デバイス (USB フラッシュ ドライブなど) が必要になる場合もあります。
フォルダを .NET 4.0 アプリケーションとして設定
これについて言うことはあまりありません。IIS に直接アクセスできる場合は、アプリケーションを作成する必要があります。ホストされたプロバイダーを使用している場合は、コントロール パネルを使用してこれを実現する必要があります。これは標準のオプションですが、見つからない場合は、ホスティング プロバイダーにサポートを依頼する必要があります。
App_Data フォルダーの書き込み権限を追加する
これは忘れがちな手順です。見逃しても、変更しようとするとすぐに気付くでしょう。アプリケーションに App_Data フォルダーへの書き込み権限を付与する必要があります。繰り返しになりますが、ホスティング プロバイダーには、これを行うためのコントロール パネルがある場合があります。そうでない場合は、ホスティング プロバイダーにサポートを依頼する必要がある場合があります。
書き込み権限の設定には、最大 3 つの手順が必要になる場合があります。
IIS 管理ツールまたはホスティング プロバイダーのコントロール パネルを使用して、フォルダーを「書き込み」可能に設定します。
ファイル システムに直接アクセスできる場合は、BlogEngine.NET のアプリケーション プールが実行されているアカウント (通常、XP / 2003 では「ASPNET」、Vista / 2008 では「ネットワーク サービス」) に物理フォルダーへの書き込みアクセス権があることを確認してください。 ;
Web フォルダーを解凍すると、すべてのファイルの読み取り専用属性が有効になります。App_Data フォルダーとすべてのファイルとサブフォルダーに対して、その属性をオフにします。
ウェブページに移動
これで、Web サイトに移動して、どのように行ったかを確認する準備が整いました。たとえば、テストのために Web サイトをローカル マシンにインストールした場合は、http://localhost/default.aspx
. IIS MMC スナップインを使用して、default.aspx に表示する既定のドキュメントを編集することもできます。これを行うとhttp://localhost/
、ページ名を指定せずに直接移動できます。すべてがうまくいけば、デフォルトのブログ ページが表示されます。
ログインしてユーザー名を設定する
最後のステップは、下にスクロールして右側のサインイン リンクを見つけることです。[サインイン] をクリックし、次の情報でログインします。
ユーザー名: 管理者
パスワード: 管理者
ログインすると、右側に新しいメニューが表示されます。[ユーザー] をクリックします。
自分用に新しいユーザーを作成します。選択したユーザー名が表示名になります。詳細については、ユーザー管理ページを参照してください。
管理者アカウントを削除します。これを読んでいるすべての人があなたのブログにログインできるようにしたくありませんか?
最後に、ログアウトしてから、自分用に作成したユーザー アカウントを使用して再度ログインします。
上記のインストールは、ブログをスタンドアローンのサイトとして実行したい場合に使用しますが、これは私たちの場合は特にまれですが、**サイト内にブログを含めて、別のサイトにリダイレクトする必要がないようにします。ブログへ、またはブログからメイン Web サイトへ。**ここにコードを入力してください
ブログ エンジン サイトを独自のプロジェクトに含めます。
ルート内に Blog という名前または任意の名前のフォルダーを作成します。App_Global Resources、App_Code、Web.Config、robots.txt、web.sitemap、および Global.asax を除く、このフォルダー内の Blog Engine .net サイト全体をコピーします。
App_Code フォルダーの名前を BlogApp_Core または必要に応じて変更します。App_Code フォルダーは、Web サイトで機能するため、Web アプリケーションでは機能しないためです。このフォルダをプロジェクトのルートにコピーします。
App_Global Resources の robots.txt と web.sitemap をプロジェクトのルートにマージまたはコピーします。
Blog Engine.core プロジェクトを Web アプリケーションに追加します。Blog Engine.core をビルドし、Web プロジェクトからの参照を「BlogEngine.Core.dll」に追加します。
Web.Config の変更 既に web.config が配置されている場合は、ブログの Web.Config をマージします。それ以外の場合は、単にルートにコピーします。ページ セクションの行に移動します。
それを次のように変更します。
<add assembly=”BlogWap” namespace=”Controls” tagPrefix=”blog”/>
は BlogWap
Web プロジェクト名です。次の行に移動します。
<add key="BlogEngine.VirtualPath" value="~/" />
これを次のように変更します。
<add key="BlogEngine.VirtualPath" value="~/Blog/" />
はBlog
、以前に作成したフォルダー名です。
SQL As データベースを使用する場合は、さらに変更を加える必要があります。
SQL を DB として使用するための変更点
Sql の setup/SQLServer 内でセットアップを実行して、テーブルを自動的に生成します。be.Users
ASP.NET メンバーシップを使用する場合は、テーブルとテーブルを削除できますbe.roles
。
DB where に従って接続文字列を変更しますname="BlogEngine"
。行を変更します。
<blogProvider defaultProvider="XMLBlogProvider">
に:
<blogProvider defaultProvider="DbBlogProvider">
行を変更します。
<membership defaultProvider="XMLMembershipProvider">
に:
<membership defaultProvider="SqlMembershipProvider">
行を変更します。
<roleManager defaultProvider="XMLRoleProvider" enabled="true" cacheRolesInCookie="true">
に:
<roleManager defaultProvider="SqlRoleProvider" enabled="true" cacheRolesInCookie="true">
- プロジェクトを右クリックし、[Web アプリケーションに変換] をクリックします。
これで、Web サイトから Web アプリケーションへの変換が完了したと思われるかもしれませんが、プロジェクト内にブログ エンジン .NET 2.0 バージョンを含める際にいくつかの問題があるので、プロジェクト内のファイルを編集して動作させる必要があります。
~/admin
Web プロジェクト レベルで検索し、~/Blog/admin
Blog に置き換えます。これはフォルダー名です。~/widget
~/themes
と についても同じです~/pics
。ファイル
~/blog/pages/settings.aspx.cs
を開き、メソッドの 262 行目に移動してBindCultures()
、次の行を次のように変更します。文字列パス = Server.MapPath(Util.AbsoluteWebRoot + "App_GlobalResources/");
に:
string path = Server.MapPath("~/App_GlobalResources/");
BlogEngine.Core
プロジェクトを開き、に移動しUtils.cs
ます。ここで関数を検索してCodeAssemblies()
、アセンブリを変更する必要があります。var assemblyName = "__code";
この行を次のように変更します。
var assemblyName = "WebProjectName";
と:
else
{
if (!IsMono)
{
assemblyName = "App_Code";
}
に:
else
{
if (!IsMono)
{
assemblyName = "WebProjectName";
}
関数に移動します。
AddFolderJavaScripts()
変化する
var fileEntries = Directory.GetFiles(HostingEnvironment.MapPath("~/" + pathFromRoot))
.Where(file =>
!scriptsAddedDuringRequest.ContainsKey(file) &&
file.EndsWith(".js", StringComparison.OrdinalIgnoreCase) &&
!file.EndsWith("-vsdoc.js",
StringComparison.OrdinalIgnoreCase)).ToList();
に:
var fileEntries = Directory.GetFiles(HostingEnvironment.MapPath("~/Blog/" + pathFromRoot))
.Where(file =>
!scriptsAddedDuringRequest.ContainsKey(file) &&
file.EndsWith(".js", StringComparison.OrdinalIgnoreCase) &&
!file.EndsWith("-vsdoc.js",
StringComparison.OrdinalIgnoreCase)).ToList();
ここでフォルダー内のファイル
Blog/admin
を確認します。名前空間を実際に確認する必要があります。名前空間が台無しになっているため、今後のリリースでは問題ない可能性があります。Admin や admin などの文字の大文字と小文字も確認する必要があります。すべての名前空間の問題を修正します。グローバル検索を実行して、またはフォルダーに名前を付けたもの
~/App_Code
に置き換えます。~/Blog_App_Code
App_code
プロジェクトをビルドして実行すると、アプリケーションが正常に動作するはずです ブログに移動してください ブログを追加してみてください ブログを削除してください 何が起こったのか、ブログを削除することはできません。 .
だからここに解決策があります。実際の削除は、js から内部的に呼び出している asmx を介して行われるため、js ファイル内のパスを確認して、asmx ファイルへのパスが正しいかどうかを確認する必要があります。最適な方法は、サイトに次の行を追加することです。 .master と admin.master
<script type="text/javascript">
var fullBaseUrl = '<%=ResolveUrl("~") %>';
</script>
fullBaseUrl
問題があった admin.js ファイル内でこの変数を使用します。また、次の 2 行を Web.config の handlers セクションに追加して、これらの asmx ファイルを機能させる必要があります。
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
ここで、すべてが正常に機能しているかどうかを確認する時が来ました。プロジェクトをビルドして、見事に機能していることを参照してください。最終的には正常に動作しましたが、厳密なテストを行った後、まだいくつかの問題が発生していることを確認しました。長いギャップの後に取得しました:(これはメディアファイルに関するもので、ビデオファイルを投稿とページにアップロードするオプションがあることがわかりますが、アップロードは正常に機能しますが、その投稿に移動するとビデオはありませんブラックボックス ああ、また行き詰まってしまいましたkkk でも、私たちはソフトウェア エンジニアであり、問題を恐れることはありません。自分に自信を持って先に進みましょう。問題があれば、解決策があることがわかっているので、詳しく調べてみましょう :) ああ、わかりましたソリューション
Blog/admin/EditPage.aspx.cs
彼らはここでパスをハードコーディングしたので、それが問題でした
関数を検索します。
BtnUploadVideoClick(object sender, EventArgs e)
変化する:
var folder = "~/" + mediaFolder + "/";` to `var folder = "~/Blog/" + mediaFolder + "/";
投稿のためにもう一度同じことを行う必要があります。これは次の場所にありますBlog/admin/post/Add_entry.aspx.cs
。BtnUploadVideoClick(object sender, EventArgs e) {
ソリューションを再度ビルドしてブラウズします。
Facebook と twitter を追加して、twitter と facebook を介して投稿を共有することもできBlogApp_Code/Extensions
ます。この機能を実装するためにフォルダーに 1 つのファイルを添付しただけです。その後、プロジェクトをビルドして閲覧しました。投稿のすぐ下に Facebook と Twitter の共有オプションが表示されます。いくつかのルールに従うだけで、Blog Engine .net で独自のテーマを作成することもできます。これで、BlogEngine.net の Web サイト内への統合が完了し、サイトと同様のビジュアルを使用できるようになりました。投稿をアップロードしてページをブログに追加し、あなたの考えを共有して、ビジネスにブログを使用して、好きなことを楽しんでください:)。
結論
ASP.NET 開発者ブログ エンジンとしての .NET は、数分で簡単にインストールできる最高のオープン ソース ブログ ツールです。コードを試して、要件に従って機能させてください。プロジェクト内で機能させるには、いくつかの点に注意する必要があります。
参考文献
- http://www.upfromthesky.com/blog/post/2009/01/30/Integrate-BlogEngine-145-into-an-exisitng-website-%28VSNET-Website-Project%29.aspx
- http://blogengine.codeplex.com/documentation
カスタマイズについては、これらのサイトを参照してください。独自のテーマを作成するには:
独自の拡張機能を作成する場合:
独自のコントロールを作成する場合:
Codeplex の Dasblog は簡単に統合できます。Scott Hanselman は、実際に彼のブログhttp://www.hanselman.com/blogで使用しています。
BlogEngineの最善の策は、既存のサイトのサブドメインとして設定し、既存のデザインに一致するようにCSSのスキンを変更することです。これが私がそのアプローチを使用した場所の例です:
http://blog.homenetdirect.com/
ブログは、コントロールIMHOとして実装するには多すぎます。ただし、タイトルと日付を上に表示した単純なニュースパネルの管理者を簡単に作成し、データベース化することができます。
BlogEngindotnetはあなたのブログを構築するのがとても簡単です、あなたはただする必要があります
- 最新バージョンをダウンロードし、
- ソースコードで利用可能なデータベーススクリプトを実行し、
- データベースを指す接続文字列を変更し、
- サブドメインにアップロードする、それだけです!
無料のブログが必要な場合は、googleが提供するブロガーを使用してください。