Entity Framework Core Power Tools - 1

by vivid 1. 四月 2020 01:11

.NET Magazine國際中文電子雜誌
作 者:許薰尹
審 稿:張智凱
文章編號: N200421801
出刊日期: 2020/4/1

Entity Framework Core提供了兩套工具程式讓我們對資料庫進行操作,像是進行逆向工程(Reverse engineering),這兩套工具分別為:套件管理員主控台 (Package Manager Console) 命令(使用 NuGet Package Manager下載)與EF Core 命令列工具 (command-line interface (CLI))。習慣使用微軟開發工具的程式設計師,常常會問一個問題:「這些操作是否有圖型介面可以使用 ?」。「Entity Framework Core Power Tools」是你的最佳朋友。在這篇文章中,我們將介紹這個套件,除了提供視覺化的介面來進行逆向工程(Reverse engineering)之外,還提供了哪些好用的功能。

Entity Framework Core Power Tools安裝

首先你需要從Visual Studio 2019開發工具「延伸模組」-「管理延伸模組」選項開啟「管理擴充功能」對話盒,選取左方清單「線上」分類,然後在右上方文字方塊輸入「EF Core Power Tools」關鍵字搜尋,找到後按下「下載」按鈕,從網路下載下來安裝,請參考下圖所示:

clip_image002

圖 1:Entity Framework Core Power Tools安裝。

接著會要求關閉Visual Studio 開發工具,之後便開始進入安裝作業,點選畫面中的「Modify」按鈕,請參考下圖所示:

clip_image004

圖 2:進入安裝作業。

再來會開始安裝動作,直到安裝完成,請參考下圖所示:

clip_image006

圖 3:開始安裝。

從Visual Studio 2019開發工具「檔案」-「新增」-「專案」項目,在「建立新專案」對話盒中,第一個下拉式清單方塊選取「C#」程式語言;從第二個下拉式清單方塊選取「所有平台」;從第三個下拉式清單方塊選取「主控台」,然後選取下方的「主控台應用程式(.NET Core)」範本。請參考下圖所示:

clip_image008

圖 4:建立主控台應用程式。

在「設定新的專案」對話盒中,設定專案名稱與儲存位置,然後按下「建立」按鈕,請參考下圖所示:

clip_image010

圖 5:「設定新的專案」。

逆向工程(Reverse engineering)

若要進行Entity Framework Core逆向工程(Reverse engineering),從現有資料庫的結構描述資訊,來產生開發所需的實體類別程式碼,可以選擇Visual Studio 2019開發工具「方案總管」中的專案名稱,按一下滑鼠右鍵,從快捷選單中,選取「EF Core Power Tools」-「Reverse Engineer」選項,請參考下圖所示:

clip_image012

圖 6:逆向工程(Reverse engineering)。

下一步是連接到資料庫,目前支援多種資料庫,包含SQL Server、SQLite、Postgres、MySQL...等等。由於本範例是以「Entity Framework Core 3.1.x」版,需在「Choose Database Connection」對話盒,勾選「Use EF Core 3.0」核取方塊,然後按一下「Add」按鈕,請參考下圖所示:

clip_image014

圖 7:連接到資料庫。

我們以連接到微軟開發用的SQL Server Express 2019版為例,在「連接屬性」視窗中,設以下屬性,請參考下圖所示:

· 資料來源 (Data Source) :Microsoft SQL Server (SqlClient)。

· 伺服器名稱(Server name)欄位:輸入「.\SQLExpress」。

· 驗證(Authentication):選取「Windows驗證(Windows Authentication)」。

· 選取或輸入資料庫名稱(Select or enter a database name)欄位:選擇「Northwind」資料庫。

clip_image016

圖 8:連接到微軟開發用的SQL Server Express 2019版。

在「Select Tables to Script」對話盒,勾選要使用的資料表(可以選取多個),在此為簡單起見,本例只有選取一個「Region」資料表,然後按下「OK」按鈕,請參考下圖所示:

clip_image018

圖 9:勾選要使用的資料表(可以選取多個)。

參考下圖,在「Generate EF Core Model in Project EFPTDemo」對話盒設定以下內容:

clip_image020

圖 10:「Generate EF Core Model in Project EFPTDemo」對話盒。

按下「OK」鍵,就會根據上個步驟的設定,來產生程式碼。若沒有發生錯誤,完成後,便可以看到執行成功的訊息,請參考下圖所示:

clip_image022

圖 11:執行成功的訊息。

EF Core Power Tools會自動在專案之中,加入「Microsoft.EntityFrameworkCore.SqlServer」套件,並且自動在你指定的「Data」、「Models」資料夾之中產生「NorthwindContext.cs」以及「Region.cs」檔案,請參考下圖所示:

clip_image024

圖 12:自動安裝套件與產生實體類別程式碼。

其中「NorthwindContext.cs」檔案中包含的程式碼,定義一個「NorthwindContext」類別繼承自「DbContext」類別,負責跟實際的資料庫伺服器溝通,「NorthwindContext」類別中定義一個「Regions」屬性,對應到資料庫中「Region」資料表。因為在「Generate EF Core Model in Project EFPTDemo」對話盒之中勾選了「Include connection string in generated code」選項,因此「OnConfiguring」方法中包含程式碼設定了連接到資料庫的連接字串。「OnModelCreating」方法則包含程式碼設定資料表中的欄位資訊:

NorthwindContext.cs檔案程式碼列表

// <auto-generated> This file has been auto generated by EF Core Power Tools. </auto-generated>
using EFPTDemo.Models;
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;

namespace EFPTDemo.Data {
  public partial class NorthwindContext : DbContext {
    public NorthwindContext() {
    }

    public NorthwindContext( DbContextOptions<NorthwindContext> options )
        : base( options ) {
    }

    public virtual DbSet<Region> Regions { get; set; }

    protected override void OnConfiguring( DbContextOptionsBuilder optionsBuilder ) {
      if ( !optionsBuilder.IsConfigured ) {
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
        optionsBuilder.UseSqlServer( "Data Source=.\\sqlexpress;Initial Catalog=Northwind;Integrated Security=True" );
      }
    }

    protected override void OnModelCreating( ModelBuilder modelBuilder ) {
      modelBuilder.Entity<Region>( entity => {
        entity.HasKey( e => e.RegionId )
            .IsClustered( false );

        entity.Property( e => e.RegionId ).ValueGeneratedNever();

        entity.Property( e => e.RegionDescription ).IsFixedLength();
      } );

      OnModelCreatingPartial( modelBuilder );
    }

    partial void OnModelCreatingPartial( ModelBuilder modelBuilder );
  }
}

 

「Region.cs」檔案則定義了對應到資料表欄位的屬性,請參考以下程式碼列表:

Region.cs檔案程式碼列表

// <auto-generated> This file has been auto generated by EF Core Power Tools. </auto-generated>
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace EFPTDemo.Models {
  [Table( "Region" )]
  public partial class Region {
    [Key]
    [Column( "RegionID" )]
    public int RegionId { get; set; }
    [Required]
    [StringLength( 50 )]
    public string RegionDescription { get; set; }
  }
}

 

專案中根資料夾下會額外產生一個JSON格式的「efpt.config.json」設定檔案,此檔案記錄了你在EF Power Tools之中所做的設定。

efpt.config.json檔案程式碼列表

{
   "ContextClassName": "NorthwindContext",
   "ContextNamespace": null,
   "DefaultDacpacSchema": null,
   "DoNotCombineNamespace": false,
   "IdReplace": false,
   "IncludeConnectionString": true,
   "ModelNamespace": null,
   "OutputContextPath": "Data",
   "OutputPath": "Models",
   "ProjectRootNamespace": "EFPTDemo",
   "SelectedHandlebarsLanguage": 0,
   "SelectedToBeGenerated": 0,
   "Tables": [
      {
         "HasPrimaryKey": true,
         "Name": "[dbo].[Region]"
      }
   ],
   "UseDatabaseNames": false,
   "UseFluentApiOnly": false,
   "UseHandleBars": false,
   "UseInflector": true,
   "UseLegacyPluralizer": false,
   "UseSpatial": false
}

 

使用DbContext物件

實體類別與DbContext類別產生完之後,就可以利用這些類別來存取資料庫資料,修改「Program」類別程式碼,在「Main」方法中,利用Entity Framework Core查詢「Northwind」資料庫「Region」資料表中的所有資料,參考以下範例程式碼:

using EFPTDemo.Data;
using System;

namespace EFPTDemo {
  class Program {
    static void Main( string[] args ) {
      using ( NorthwindContext context = new NorthwindContext() ) {
        foreach ( var item in context.Regions ) {
          Console.WriteLine($"Region Id : {item.RegionId} , Region Description : {item.RegionDescription}" );
        }
      }
    }
  }
}


這個範例程式的執行結果參考如下:

clip_image026

圖 13:查詢「Northwind」資料庫「Region」資料表中的所有資料。

加入Model Diagram

下一個要介紹的是加入Entity Framework Core Model Diagram的功能。若選擇Visual Studio 2019開發工具「方案總管」中的專案名稱,按一下滑鼠右鍵,從快捷選單中,選取「EF Core Power Tools」-「Add DbContext Model Diagram」選項,請參考下圖所示:

clip_image028

圖 14:加入Model Diagram。

接著會根據專案中的DbContext類別產生出一個副檔名為dbml的檔案,以視覺化的圖型來顯示模型中實體之間的關係與屬性。

clip_image030

圖 15:Model Diagram。

特別注意,Visual Studio 2019需要在安裝時,選擇「Individual components」項目,然後勾選要安裝「Architecture and analysis tools」,才會有視覺化圖型介面來呈現模型。

clip_image032

圖 16:安裝「Architecture and analysis tools」。

Dgml檔案是XML格式,以這個範例而言,產生的「NorthwindContext.dgml」檔案內容如下:

NorthwindContext.dgml檔案程式碼列表

<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph GraphDirection="LeftToRight" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
  <Nodes>
    <Node Id="IModel" Category="Model" Annotations="Relational:MaxIdentifierLength: 128 SqlServer:ValueGenerationStrategy: IdentityColumn" Bounds="-1.4210854715202E-14,-2.8421709430404E-14,197.15,201.92" ChangeTrackingStrategy="ChangeTrackingStrategy.Snapshot" Group="Expanded" Label="NorthwindContext" ProductVersion="3.1.1" PropertyAccessMode="PropertyAccessMode.Default" UseManualLocation="True" />
    <Node Id="Region" Category="EntityType" Annotations="" BaseClass="" Bounds="20,40,157.15,141.92" ChangeTrackingStrategy="ChangeTrackingStrategy.Snapshot" Group="Expanded" IsAbstract="False" Label="Region" Name="Region" />
    <Node Id="Region.RegionDescription" Category="Property Required" AfterSaveBehavior="PropertySaveBehavior.Save" Annotations="MaxLength: 50 Relational:IsFixedLength: True TypeMapping: Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerStringTypeMapping" BeforeSaveBehavior="PropertySaveBehavior.Save" Bounds="40,135.96,117.15,25.96" Field="" IsAlternateKey="False" IsConcurrencyToken="False" IsForeignKey="False" IsIndexed="False" IsPrimaryKey="False" IsRequired="True" IsShadow="False" IsUnicode="True" Label="RegionDescription" MaxLength="50" Name="RegionDescription" PropertyAccessMode="PropertyAccessMode.Default" Type="string" ValueGenerated="None" />
    <Node Id="Region.RegionId" Category="Property Primary" AfterSaveBehavior="PropertySaveBehavior.Save" Annotations="Relational:ColumnName: RegionID TypeMapping: Microsoft.EntityFrameworkCore.Storage.IntTypeMapping" BeforeSaveBehavior="PropertySaveBehavior.Save" Bounds="40,80,67.1566666666667,25.96" Field="" IsAlternateKey="False" IsConcurrencyToken="False" IsForeignKey="False" IsIndexed="False" IsPrimaryKey="True" IsRequired="True" IsShadow="False" IsUnicode="True" Label="RegionId" MaxLength="None" Name="RegionId" PropertyAccessMode="PropertyAccessMode.Default" Type="int" ValueGenerated="None" />
  </Nodes>
  <Links>
    <Link Source="IModel" Target="Region" Category="Contains" />
    <Link Source="Region" Target="Region.RegionDescription" Category="Contains" />
    <Link Source="Region" Target="Region.RegionId" Category="Contains" />
  </Links>
  <Categories>
    <Category Id="Contains" Label="包含" Description="連結的來源是否包含目標物件" CanBeDataDriven="False" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="由下列包含" IsContainment="True" OutgoingActionLabel="包含" />
    <Category Id="EntityType" />
    <Category Id="Model" />
    <Category Id="Property Primary" />
    <Category Id="Property Required" />
  </Categories>
  <Properties>
    <Property Id="AfterSaveBehavior" Group="Property Flags" DataType="System.String" />
    <Property Id="Annotations" Description="Annotations" Group="Model Properties" DataType="System.String" />
    <Property Id="BaseClass" Description="Base class" Group="Model Properties" DataType="System.String" />
    <Property Id="BeforeSaveBehavior" Group="Property Flags" DataType="System.String" />
    <Property Id="Bounds" DataType="System.Windows.Rect" />
    <Property Id="CanBeDataDriven" Label="CanBeDataDriven" Description="CanBeDataDriven" DataType="System.Boolean" />
    <Property Id="CanLinkedNodesBeDataDriven" Label="CanLinkedNodesBeDataDriven" Description="CanLinkedNodesBeDataDriven" DataType="System.Boolean" />
    <Property Id="ChangeTrackingStrategy" Description="Change tracking strategy" Group="Model Properties" DataType="System.String" />
    <Property Id="Expression" DataType="System.String" />
    <Property Id="Field" Description="Backing field" Group="Model Properties" DataType="System.String" />
    <Property Id="GraphDirection" DataType="Microsoft.VisualStudio.Diagrams.Layout.LayoutOrientation" />
    <Property Id="Group" Label="群組" Description="將節點顯示為群組" DataType="Microsoft.VisualStudio.GraphModel.GraphGroupStyle" />
    <Property Id="GroupLabel" DataType="System.String" />
    <Property Id="IncomingActionLabel" Label="IncomingActionLabel" Description="IncomingActionLabel" DataType="System.String" />
    <Property Id="IsAbstract" Label="IsAbstract" Description="IsAbstract" Group="Model Properties" DataType="System.Boolean" />
    <Property Id="IsAlternateKey" Group="Property Flags" DataType="System.Boolean" />
    <Property Id="IsConcurrencyToken" Group="Property Flags" DataType="System.Boolean" />
    <Property Id="IsContainment" DataType="System.Boolean" />
    <Property Id="IsEnabled" DataType="System.Boolean" />
    <Property Id="IsForeignKey" Group="Property Flags" DataType="System.Boolean" />
    <Property Id="IsIndexed" Group="Property Flags" DataType="System.Boolean" />
    <Property Id="IsPrimaryKey" Group="Property Flags" DataType="System.Boolean" />
    <Property Id="IsRequired" Group="Property Flags" DataType="System.Boolean" />
    <Property Id="IsShadow" Group="Property Flags" DataType="System.Boolean" />
    <Property Id="IsUnicode" Group="Property Flags" DataType="System.Boolean" />
    <Property Id="Label" Label="標籤" Description="可註釋物件的可顯示標籤" DataType="System.String" />
    <Property Id="MaxLength" DataType="System.String" />
    <Property Id="Name" Group="Model Properties" DataType="System.String" />
    <Property Id="OutgoingActionLabel" Label="OutgoingActionLabel" Description="OutgoingActionLabel" DataType="System.String" />
    <Property Id="ProductVersion" Label="Product Version" Description="EF Core product version" Group="Model Properties" DataType="System.String" />
    <Property Id="PropertyAccessMode" Group="Property Flags" DataType="System.String" />
    <Property Id="TargetType" DataType="System.Type" />
    <Property Id="Type" Description="CLR data type" Group="Model Properties" DataType="System.String" />
    <Property Id="UseManualLocation" DataType="System.Boolean" />
    <Property Id="Value" DataType="System.String" />
    <Property Id="ValueGenerated" Group="Property Flags" DataType="System.String" />
    <Property Id="ValueLabel" DataType="System.String" />
  </Properties>
  <Styles>
    <Style TargetType="Node" GroupLabel="EntityType" ValueLabel="True">
      <Condition Expression="HasCategory('EntityType')" />
      <Setter Property="Background" Value="#FFC0C0C0" />
    </Style>
    <Style TargetType="Node" GroupLabel="Property Primary" ValueLabel="True">
      <Condition Expression="HasCategory('Property Primary')" />
      <Setter Property="Background" Value="#FF008000" />
    </Style>
    <Style TargetType="Node" GroupLabel="Property Optional" ValueLabel="True">
      <Condition Expression="HasCategory('Property Optional')" />
      <Setter Property="Background" Value="#FF808040" />
    </Style>
    <Style TargetType="Node" GroupLabel="Property Foreign" ValueLabel="True">
      <Condition Expression="HasCategory('Property Foreign')" />
      <Setter Property="Background" Value="#FF8080FF" />
    </Style>
    <Style TargetType="Node" GroupLabel="Property Required" ValueLabel="True">
      <Condition Expression="HasCategory('Property Required')" />
      <Setter Property="Background" Value="#FFC0A000" />
    </Style>
    <Style TargetType="Node" GroupLabel="Navigation Property" ValueLabel="True">
      <Condition Expression="HasCategory('Navigation Property')" />
      <Setter Property="Background" Value="#FF990000" />
    </Style>
    <Style TargetType="Node" GroupLabel="Navigation Collection" ValueLabel="True">
      <Condition Expression="HasCategory('Navigation Collection')" />
      <Setter Property="Background" Value="#FFFF3232" />
    </Style>
    <Style TargetType="Node" GroupLabel="Model" ValueLabel="True">
      <Condition Expression="HasCategory('Model')" />
      <Setter Property="Background" Value="#FFFFFFFF" />
    </Style>
  </Styles>
</DirectedGraph>

 

View DbContext Model DDL SQL

若選擇Visual Studio 2019開發工具「方案總管」中的專案名稱,按一下滑鼠右鍵,從快捷選單中,選取「EF Core Power Tools」-「View DbContext Model DDL SQL」選項,請參考下圖所示:

clip_image034

圖 17:View DbContext Model DDL SQL。

接著在專案中便會根據目前DbContext模型來產生一個SQL檔案,描述要建立的資料庫結構,以本例來說,產生以下CREATE語法程式碼:

CREATE TABLE [Region] (

[RegionID] int NOT NULL,

[RegionDescription] nchar(50) NOT NULL,

CONSTRAINT [PK_Region] PRIMARY KEY NONCLUSTERED ([RegionID])

);

GO

「View DbContext Model DDL SQL」功能執行結果,請參考下圖所示:

clip_image036

圖 18:「View DbContext Model DDL SQL」功能執行結果。

View DbContext Model as DebugView

若選擇Visual Studio 2019開發工具「方案總管」中的專案名稱,按一下滑鼠右鍵,從快捷選單中,選取「EF Core Power Tools」-「View DbContext Model as DebugView」選項,請參考下圖所示:

clip_image038

圖 19:「View DbContext Model as DebugView」選項。

將會產生一個文字檔顯示在編輯畫面,其中描述模型的Metadata,以方便程式設計師來了解模型,以及幫助除錯。請參考以下檔案內容的列表:

Model:
  EntityType: Region
    Properties:
      RegionId (int) Required PK AfterSave:Throw
        Annotations:
          Relational:ColumnName: RegionID
          TypeMapping: Microsoft.EntityFrameworkCore.Storage.IntTypeMapping
      RegionDescription (string) Required MaxLength50
        Annotations:
          MaxLength: 50
          Relational:IsFixedLength: True
          TypeMapping: Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerStringTypeMapping
    Keys:
      RegionId PK
        Annotations:
          SqlServer:Clustered: False
    Annotations:
      ConstructorBinding: Microsoft.EntityFrameworkCore.Metadata.ConstructorBinding
      Relational:TableName: Region
Annotations:
  ProductVersion: 3.1.1
  Relational:MaxIdentifierLength: 128
  SqlServer:ValueGenerationStrategy: IdentityColumn

 

在使用Visual Studio 工具除錯時,也可以在中斷模式,從除錯視窗檢視這些資訊,請參考下圖所示,展開「context」-「Model」-「DebugView」-「View」選項:

clip_image040

圖 20:除錯視窗。

點選放大鏡圖示就會開啟「文字視覺化檢視」視窗,請參考下圖所示:

clip_image042

圖 21:顯示模型資訊。

Add AsDgml() extension method

若選擇Visual Studio 2019開發工具「方案總管」中的專案名稱,按一下滑鼠右鍵,從快捷選單中,選取「EF Core Power Tools」-「Add AsDgml() extension method」選項,請參考下圖所示:

clip_image044

圖 22:「Add AsDgml() extension method」選項。

選擇「Add AsDgml() extension method」選項會自動在專案中安裝一個「ErikEJ.EntityFrameworkCore.DgmlBuilder」套件,可為DbContext類別新增一個「AsDgml()」擴充方法,同時開發工具會顯示一個暫存的文字檔案,其中包含以下讀我內容,提供參考範例程式碼來產生dbml檔案:

** ErikEJ.EntityFrameworkCore.DgmlBuilder Readme **

To use the extension method to generate a DGML file of your DbContext model,
use code similar to this:
   
    using Microsoft.EntityFrameworkCore;
 

    using (var myContext = new MyDbContext())
    {
        System.IO.File.WriteAllText(System.IO.Path.GetTempFileName() + ".dgml",
            myContext.AsDgml(),
            System.Text.Encoding.UTF8);
    }

 

讓我們修改主控台應用程式的「Main」方法如下:

using EFPTDemo.Data;
using Microsoft.EntityFrameworkCore;
using System;

namespace EFPTDemo {
  class Program {
    static void Main( string[] args ) {
      using ( var myContext = new NorthwindContext() ) {
        string file = System.IO.Path.GetTempFileName() + ".dgml";
        Console.WriteLine(file); //C:\Users\UserName\AppData\Local\Temp\tmp2CAF.tmp.dgml
        System.IO.File.WriteAllText( file , myContext.AsDgml() ,System.Text.Encoding.UTF8 );
      }
    }
  }
}

執行程式之後,就會在指定的資料夾產生dbml檔案。

View Database Schema as Graph

若選擇Visual Studio 2019開發工具「方案總管」中的專案名稱,按一下滑鼠右鍵,從快捷選單中,選取「EF Core Power Tools」-「View Database Schema as Graph」選項,請參考下圖所示:

clip_image046

圖 23:「View Database Schema as Graph」選項。

下一步是連接到資料庫,由於本範例是以「Entity Framework Core 3.1.x」版,需在「Choose Database Connection」對話盒,勾選「Use EF Core 3.0」核取方塊,然後按一下「Add」按鈕,請參考下圖所示:

clip_image047

圖 24:連接到資料庫。

在「Select Tables to Script」對話盒,勾選要使用的資料表(可以選取多個),在此選取「Categories」與「Products」資料表,然後按下「OK」按鈕,請參考下圖所示:

clip_image049

圖 25:勾選要使用的資料表。

接下來就可以看到Model Diagram,請參考下圖所示,點選向下的箭頭可以展開群組資訊:

clip_image051

圖 26:Model Diagram。

接著在圖型介面中,便可以看到更詳細的資料表欄位資訊,請參考下圖所示:

clip_image053

圖 27:資料表欄位資訊。

Tags:

.NET Core | .NET Magazine國際中文電子雜誌 | C# | 許薰尹Vivid Hsu | Entity Framework Core

評論 (126) -

check these guys out
check these guys out United States
2020/4/19 上午 04:49:52 #

I just want to say I am very new to blogs and truly liked this website. Likely I’m planning to bookmark your site . You actually have exceptional article content. Thanks a bunch for revealing your web site.

回覆

Supplies On The Fly
Supplies On The Fly United States
2020/4/22 上午 09:32:19 #

<p>This is a topic that’s close to my heart… Best wishes! Where can I find the contact details for questions?</p>

回覆

Marion Seidensticker
Marion Seidensticker United States
2020/4/22 上午 09:33:21 #

This actually addressed my problem, thanks!

回覆

Tractor Workshop Manuals
Tractor Workshop Manuals United States
2020/4/23 上午 10:44:05 #

Great   blog, I am  going to spend more time  reading about  this subject

回覆

Maryland pool table assembly
Maryland pool table assembly United States
2020/4/23 下午 06:39:30 #

Simply  a smiling  visitant here to share the love (:, btw great   style .

回覆

Orval Rake
Orval Rake United States
2020/4/23 下午 09:06:00 #

papaly.com/.../share

回覆

cPanel
cPanel United States
2020/4/24 上午 07:19:22 #

Greetings! I've been reading your website for a long time now and finally got the bravery to go ahead and give you a shout out from  Dallas Texas! Just wanted to tell you keep up the excellent job!

回覆

Swing set man
Swing set man United States
2020/4/24 上午 11:22:33 #

You have brought up a very  great   details ,  regards  for the post.

回覆

Simply want to say your article is as surprising. The clarity in your post is simply excellent and that i could assume you're a professional in this subject. Fine together with your permission allow me to seize your RSS feed to keep up to date with drawing close post. Thanks a million and please continue the gratifying work.

回覆

hemp cigarettes
hemp cigarettes United States
2020/4/24 下午 09:51:19 #

Hi there! I know this is somewhat off topic but I was wondering which blog platform are you using for this site? I'm getting sick and tired of Wordpress because I've had issues with hackers and I'm looking at alternatives for another platform. I would be fantastic if you could point me in the direction of a good platform.

回覆

Darron Feagan
Darron Feagan United States
2020/4/24 下午 11:00:31 #

Would you be fascinated in trading links?

回覆

Continue Reading
Continue Reading United States
2020/4/25 上午 01:33:04 #

I truly appreciate this post. I have been looking all over for this! Thank goodness I found it on Bing. You have made my day! Thx again!

回覆

CBD gummies
CBD gummies United States
2020/4/25 下午 05:03:41 #

I was able to find good information from your articles.

回覆

Cybersecurity
Cybersecurity United States
2020/4/25 下午 09:13:08 #

It is best to take part in a contest for top-of-the-line blogs on the web. I'll recommend this site!

回覆

best CBD oil
best CBD oil United States
2020/4/25 下午 11:51:07 #

Hello there, I think your website could be having internet browser compatibility problems. Whenever I look at your website in Safari, it looks fine however, if opening in IE, it has some overlapping issues. I simply wanted to give you a quick heads up! Other than that, wonderful blog.

回覆

Coronavirus
Coronavirus United States
2020/4/26 上午 05:00:43 #

Pretty great post. I simply stumbled upon your blog and wished to mention that I've truly loved browsing your blog posts. In any case I will be subscribing on your feed and I'm hoping you write again soon!

回覆

vegetarian
vegetarian United States
2020/4/26 上午 05:34:42 #

An interesting discussion is worth comment. I feel that it is best to write extra on this topic, it might not be a taboo subject however usually persons are not sufficient to talk on such topics. To the next. Cheers

回覆

make money from Instagram
make money from Instagram United States
2020/4/26 上午 09:24:13 #

I am not sure where you are getting your info, but great topic. I needs to spend some time learning more or understanding more. Thanks for wonderful information I was looking for this info for my mission.

回覆

best CBD gummies
best CBD gummies United States
2020/4/26 下午 12:54:45 #

You've made some decent points there. I looked on the web for additional information about the issue and found most people will go along with your views on this site.

回覆

best CBD gummies
best CBD gummies United States
2020/4/26 下午 06:38:10 #

I want to to thank you for this great read!! I absolutely loved every little bit of it. I have got you book-marked to look at new things you post…

回覆

calcul imc
calcul imc United States
2020/4/26 下午 07:17:51 #

Hi, Neat post. There is a problem along with your site in internet explorer, may test this… IE nonetheless is the market chief and a large portion of people will omit your great writing because of this problem.

回覆

Rashad Delash
Rashad Delash United States
2020/4/26 下午 08:12:45 #

I uncovered your blog website on google as well as check a few of your early posts. Remain to keep up the excellent operate. I just added up your RSS feed to my MSN News Reader. Seeking ahead to learning more from you in the future!?

回覆

Hollie Zumalt
Hollie Zumalt United States
2020/4/26 下午 10:51:29 #

An interesting discussion deserves comment. I believe that you should create much more on this topic, it might not be a taboo subject yet usually people are not nearly enough to talk on such topics. To the following. Cheers

回覆

best CBD gummies
best CBD gummies United States
2020/4/27 上午 02:49:40 #

Next time I read a blog, Hopefully it won't fail me as much as this one. I mean, I know it was my choice to read through, nonetheless I really believed you would have something helpful to talk about. All I hear is a bunch of crying about something that you can fix if you were not too busy looking for attention.

回覆

Bathroom remodel
Bathroom remodel United States
2020/4/27 上午 02:58:37 #

Your place is valueble for me. Thanks!…

回覆

Z&#252;gelunternehmen
Zügelunternehmen United States
2020/4/27 上午 07:20:46 #

I've been surfing on-line greater than 3 hours lately, yet I by no means discovered any attention-grabbing article like yours. It's beautiful price enough for me. In my view, if all website owners and bloggers made just right content material as you did, the internet can be a lot more helpful than ever before. "I think that maybe if women and children were in charge we would get somewhere." by James Grover Thurber.

回覆

Poland
Poland United States
2020/4/28 上午 07:03:08 #

Jak wygląda pompa ed Pompa ed składa się z trzech oddzielnych części:

回覆

best CBD gummies
best CBD gummies United States
2020/4/28 下午 07:50:15 #

Hello there, There's no doubt that your website might be having internet browser compatibility issues. When I look at your site in Safari, it looks fine however when opening in Internet Explorer, it has some overlapping issues. I just wanted to give you a quick heads up! Besides that, fantastic website!

回覆

Subscribe Gaming Podcast
Subscribe Gaming Podcast United States
2020/4/28 下午 10:23:43 #

Hello there,  You have done a fantastic job. I’ll certainly digg it and personally suggest to my friends. I am sure they'll be benefited from this website.

回覆

home
home United States
2020/4/29 上午 01:58:27 #

Thanks for sharing your ideas right here. The other factor is that if a problem comes up with a personal computer motherboard, people today should not have some risk associated with repairing it themselves for if it is not done right it can lead to irreparable damage to all the laptop. In most cases, it is safe to approach your dealer of the laptop with the repair of its motherboard. They've already technicians who have an experience in dealing with mobile computer motherboard complications and can carry out the right diagnosis and execute repairs.

回覆

best CBD oil
best CBD oil United States
2020/4/29 上午 06:32:44 #

I like it when individuals come together and share thoughts. Great site, stick with it.

回覆

kamagra sklep
kamagra sklep United States
2020/4/29 上午 07:01:29 #

Przegląd Erekcje to normalna, zdrowa funkcja ciała. Czasami jednak erekcja może pojawić się spontanicznie lub w czasie, gdy raczej jej nie masz.

回覆

Asbestos Garage
Asbestos Garage United States
2020/4/29 上午 07:36:17 #

Another issue is that video gaming has become one of the all-time main forms of recreation for people of various age groups. Kids engage in video games, and adults do, too. The XBox 360 is amongst the favorite video games systems for people who love to have hundreds of activities available to them, plus who like to learn live with others all over the world. Thank you for sharing your notions.

回覆

best CBD gummies
best CBD gummies United States
2020/4/29 上午 11:15:21 #

Excellent post! We will be linking to this great article on our website. Keep up the great writing.

回覆

Irish website design
Irish website design United States
2020/4/29 上午 11:21:29 #

hello!,I like your writing so much! proportion we be in contact extra approximately your post on AOL? I need a specialist in this house to unravel my problem. May be that is you! Looking forward to peer you.

回覆

mefunnysideup.co
mefunnysideup.co United States
2020/4/29 下午 05:08:49 #

I will right away snatch your rss feed as I can not in finding your email subscription hyperlink or newsletter service. Do you've any? Kindly let me recognise so that I may subscribe. Thanks.

回覆

best CBD oil
best CBD oil United States
2020/4/29 下午 08:17:46 #

This site was... how do you say it? Relevant!! Finally I have found something that helped me. Thanks a lot.

回覆

best CBD oil
best CBD oil United States
2020/4/30 上午 01:41:04 #

An intriguing discussion is worth comment. I do think that you need to publish more about this topic, it may not be a taboo matter but generally people don't talk about such topics. To the next! Cheers!

回覆

Happy Rap Instrumental
Happy Rap Instrumental United States
2020/4/30 上午 04:02:14 #

great points altogether, you simply gained a new reader. What would you recommend in regards to your post that you made a few days ago? Any positive?

回覆

best CBD oil
best CBD oil United States
2020/4/30 上午 11:45:32 #

I love reading through an article that will make people think. Also, thank you for allowing for me to comment.

回覆

bi
bi United States
2020/4/30 下午 05:10:12 #

Wonderful blog! I found it while browsing on Yahoo News. Do you have any tips on how to get listed in Yahoo News? I've been trying for a while but I never seem to get there! Appreciate it

回覆

connectworldatingnow
connectworldatingnow United States
2020/4/30 下午 11:43:26 #

Enjoyed  looking at  this, very good stuff,  thankyou . "A man may learn wisdom even from a foe." by Aristophanes.

回覆

company website
company website United States
2020/5/1 上午 12:33:16 #

great issues altogether, you just received a new reader. What would you recommend about your put up that you just made some days in the past? Any certain?

回覆

best CBD oil for sleep
best CBD oil for sleep United States
2020/5/1 上午 02:02:47 #

Good post. I learn something totally new and challenging on blogs I stumbleupon on a daily basis. It will always be helpful to read articles from other writers and practice something from other websites.

回覆

Jannette Copelin
Jannette Copelin United States
2020/5/1 上午 04:00:08 #

An impressive share, I simply offered this onto a colleague that was doing a little analysis on this. And he as a matter of fact purchased me breakfast because I located it for him. smile. So let me reword that: Thnx for the treat! However yeah Thnkx for investing the time to discuss this, I feel highly concerning it as well as love learning more on this topic. Preferably, as you come to be know-how, would certainly you mind updating your blog site with more details? It is highly useful for me. Big thumb up for this blog post!

回覆

whitewitch
whitewitch United States
2020/5/1 下午 04:25:08 #

There's certainly a great deal to know about this issue. I like all the points you've made.

回覆

Bruna Rainbow
Bruna Rainbow United States
2020/5/2 上午 05:30:03 #

There is significantly a package to find out about this. I assume you ensured great points in features likewise.

回覆

Melody Pigford
Melody Pigford United States
2020/5/3 上午 10:13:15 #

Hello there. I ran across your site by the use of Google whilst searching for another topic, your site followed up. It appears wonderful. I have bookmarked that in my google bookmarks to visit then.

回覆

Pahari Trek
Pahari Trek United States
2020/5/3 下午 04:14:27 #

Hello my family member! I wish to say that this post is amazing, nice written and include approximately all significant infos. I'd like to see extra posts like this.

回覆

wszyscyklikamy-pl
wszyscyklikamy-pl United States
2020/5/3 下午 10:15:19 #

<p>Having read this I thought it was very informative.<br />I appreciate you taking the time and energy to put this informative article<br />together. I once again find myself personally spending way too much time both reading and commenting.</p><p>But so what, it was still worth it!</p>

回覆

naira marley mafo
naira marley mafo United States
2020/5/3 下午 11:01:20 #

I simply could not leave your web site before suggesting that I extremely loved the usual info an individual provide on your visitors? Is gonna be back regularly to inspect new posts.

回覆

kosher kush exotic carts
kosher kush exotic carts United States
2020/5/4 上午 02:54:12 #

Fantastic goods from you, man. I have understand your stuff previous to and you're just extremely fantastic. I really like what you have acquired here, really like what you're stating and the way in which you say it. You make it enjoyable and you still care for to keep it sensible. I can not wait to read much more from you. This is actually a terrific website.

回覆

buy CBD oil
buy CBD oil United States
2020/5/4 上午 11:28:27 #

This is the right site for everyone who wishes to understand this topic. You realize so much its almost hard to argue with you (not that I personally would want to…HaHa). You definitely put a fresh spin on a topic that's been discussed for ages. Great stuff, just great.

回覆

best CBD oil for dogs
best CBD oil for dogs United States
2020/5/4 下午 05:41:22 #

Your style is very unique in comparison to other folks I've read stuff from. Many thanks for posting when you have the opportunity, Guess I'll just book mark this blog.

回覆

best CBD oil for arthritis
best CBD oil for arthritis United States
2020/5/4 下午 10:40:28 #

Everyone loves it when individuals get together and share thoughts. Great site, stick with it.

回覆

Von Schellenberge
Von Schellenberge United States
2020/5/5 上午 03:45:21 #

It is in reality a great and useful piece of info. I am satisfied that you simply shared this helpful information with us. Please keep us up to date like this. Thank you for sharing.

回覆

best CBD oil for sleep
best CBD oil for sleep United States
2020/5/5 上午 03:59:06 #

May I just say what a comfort to uncover someone that really understands what they're talking about online. You definitely realize how to bring an issue to light and make it important. More and more people should read this and understand this side of the story. I was surprised that you aren't more popular given that you certainly possess the gift.

回覆

kamagra 100 online
kamagra 100 online United States
2020/5/5 上午 05:03:20 #

<p>Thanks-a-mundo for the article.Really thank you! Want more.</p>

回覆

best CBD oil for pain
best CBD oil for pain United States
2020/5/5 下午 02:13:15 #

I wanted to thank you for this wonderful read!! I absolutely enjoyed every little bit of it. I have got you book-marked to check out new stuff you post…

回覆

best CBD cream for arthritis pain
best CBD cream for arthritis pain United States
2020/5/5 下午 09:23:59 #

Excellent article! We will be linking to this particularly great article on our site. Keep up the great writing.

回覆

zwrot podatku z zagranicy zgorzelec
zwrot podatku z zagranicy zgorzelec United States
2020/5/6 上午 02:13:59 #

You can definitely see your enthusiasm within the paintings you write. The arena hopes for even more passionate writers such as you who aren't afraid to say how they believe. All the time go after your heart. "Billy Almon has all of his inlaw and outlaws here this afternoon." by Jerry Coleman.

回覆

zwrot podatku z holandii 2017 forum
zwrot podatku z holandii 2017 forum United States
2020/5/6 下午 12:28:05 #

I really enjoy studying on this website, it has got superb posts. "And all the winds go sighing, For sweet things dying." by Christina Georgina Rossetti.

回覆

I'll immediately seize your rss feed as I can not in finding your e-mail subscription link or e-newsletter service. Do you have any? Please permit me recognize so that I may just subscribe. Thanks.

回覆

I loved up to you'll receive performed proper here. The comic strip is tasteful, your authored material stylish. nonetheless, you command get bought an edginess over that you want be handing over the following. sick unquestionably come more previously once more since exactly the similar nearly very regularly inside case you shield this increase.

回覆

gmx invest
gmx invest United States
2020/5/7 上午 08:14:10 #

Hello, you used to write magnificent, but the last few posts have been kinda boring… I miss your super writings. Past several posts are just a little bit out of track! come on!

回覆

zwrot podatku z zagranicy mielec
zwrot podatku z zagranicy mielec United States
2020/5/7 上午 09:34:58 #

Thank you for helping out, great information. "Nobody can be exactly like me. Sometimes even I have trouble doing it." by Tallulah Bankhead.

回覆

Hiya, I am really glad I've found this info. Today bloggers publish just about gossips and web and this is really frustrating. A good web site with interesting content, that's what I need. Thanks for keeping this website, I will be visiting it. Do you do newsletters? Can not find it.

回覆

kamagra gold opinie
kamagra gold opinie United States
2020/5/7 下午 05:31:16 #

<p>I really liked your article.Really looking forward to read more. Keep writing.</p>

回覆

SEO company
SEO company United States
2020/5/7 下午 08:08:56 #

回覆

zwrot podatku z zagranicy konin
zwrot podatku z zagranicy konin United States
2020/5/7 下午 08:11:17 #

Merely  a smiling  visitant here to share the love (:, btw  outstanding  design and style .

回覆

Robert Umanzor
Robert Umanzor United States
2020/5/8 上午 01:33:47 #

<p>Hey! Someone in my Facebook group shared this website with us so I came to look it over. I’m definitely loving the information. I’m book-marking and will be tweeting this to my followers! Exceptional blog and superb design and style.</p>

回覆

Jong Waldman
Jong Waldman United States
2020/5/8 上午 07:22:15 #

<p>Excellent way of explaining, and fastidious post to obtain data regarding<br />my presentation subject matter, which i am going to deliver in academy.</p>

回覆

John Deere Technical Manuals
John Deere Technical Manuals United States
2020/5/8 上午 10:29:40 #

Some times its a pain in the ass to read what  blog owners  wrote but this  site is very   user friendly ! .

回覆

cialis sklep
cialis sklep United States
2020/5/8 上午 11:51:24 #

<p>Have you ever thought about writing an e-book<br />or guest authoring on other blogs? I have a blog centered<br />on the same topics you discuss and would really like to have you share some stories/information. I know my subscribers would value your work.<br />If you’re even remotely interested, feel free to shoot me an e mail.</p>

回覆

Ann Zhou
Ann Zhou United States
2020/5/8 下午 12:58:01 #

<p>whoah this weblog is fantastic i love reading your articles. Keep up the great paintings! You already know, a lot of persons are looking around for this info, you could aid them greatly.</p>

回覆

Mat online
Mat online United States
2020/5/8 下午 02:11:23 #

I like it when people get together and share views. Great blog, continue the good work!

回覆

Sang Dutcher
Sang Dutcher United States
2020/5/8 下午 06:26:43 #

<p>I appreciate you sharing this blog article.Much thanks again.</p>

回覆

Thanh Rutske
Thanh Rutske United States
2020/5/9 上午 12:27:10 #

<p>I cannot thank you enough for the article post.Much thanks again.</p>

回覆

moroccan rug
moroccan rug United States
2020/5/9 上午 08:08:48 #

Everything is very open with a precise description of the issues. It was definitely informative. Your website is useful. Many thanks for sharing!

回覆

Autopflege Attendorn
Autopflege Attendorn United States
2020/5/9 下午 06:25:36 #

Hey there,  You've performed an incredible job. I will certainly digg it and personally suggest to my friends. I'm sure they'll be benefited from this website.

回覆

carlo bulley
carlo bulley United States
2020/5/9 下午 10:52:25 #

Keep functioning ,fantastic job!

回覆

tantra massage
tantra massage United States
2020/5/9 下午 11:18:42 #

Thanks so much for providing individuals with an exceptionally spectacular chance to check tips from this web site. It's always very ideal and also stuffed with a lot of fun for me and my office peers to search your web site particularly thrice every week to read the new issues you have got. And of course, I am actually fascinated for the striking opinions you give. Certain 4 facts on this page are in truth the simplest I have had.

回覆

Judi Slot Pulsa
Judi Slot Pulsa United States
2020/5/10 下午 08:34:36 #

Hi, Neat post. There's a problem with your web site in internet explorer, would check this¡K IE nonetheless is the market leader and a big component to other folks will pass over your excellent writing due to this problem.

回覆

Builders Dublin
Builders Dublin United States
2020/5/10 下午 11:56:07 #

Hello my family member! I wish to say that this post is awesome, nice written and come with almost all vital infos. I would like to see more posts like this .

回覆

kamagra apteka
kamagra apteka United States
2020/5/11 上午 08:33:31 #

<p>Im thankful for the blog article.Really looking forward to read more.</p>

回覆

buy online viagra in pakistan
buy online viagra in pakistan United States
2020/5/11 上午 11:13:42 #

After research a few of the post on your website now, as well as I truly like your method of blog writing. I bookmarked it to my book marking internet site list and will certainly be inspecting back quickly. Pls check out my web site also and let me know what you assume.

回覆

Leon
Leon United States
2020/5/11 下午 10:36:03 #

you're actually a excellent webmaster. The site loading speed is incredible. It seems that you are doing any distinctive trick. Also, The contents are masterwork. you've performed a wonderful activity on this matter!|

回覆

krakow przewodnik
krakow przewodnik United States
2020/5/12 上午 01:12:45 #

I"m amazed just about all the obstacles this stoic country has overcome. The Ellis Park pool facility is pretty large. Spend your stag night in Krakow - may worth it.

回覆

go to content and see more
go to content and see more United States
2020/5/12 上午 03:37:33 #

I'm extremely impressed with your writing skills and also with the layout on your blog. Is this a paid theme or did you modify it yourself? Either way keep up the excellent quality writing, it is rare to see a nice blog like this one today..

回覆

Merely  wanna  tell  that this is  extremely helpful, Thanks for taking your time to write this.

回覆

Nicholas
Nicholas United States
2020/5/12 下午 05:35:43 #

I visited various web pages but the audio feature for audio songs present at this website is actually marvelous.|

回覆

b&#233;rl&#233;s
bérlés United States
2020/5/12 下午 09:09:31 #

whoah this weblog is fantastic i really like reading your posts. Keep up the good work! You understand, many people are looking around for this information, you can aid them greatly.

回覆

Perfect Keto Coupons
Perfect Keto Coupons United States
2020/5/13 上午 12:25:11 #

I haven’t checked in here for some time as I thought it was getting boring, but the last few posts are good quality so I guess I’ll add you back to my everyday bloglist. You deserve it my friend Smile

回覆

New Installations
New Installations United States
2020/5/13 上午 12:31:25 #

I like this post, enjoyed this one thank you for posting. "To affect the quality of the day that is the art of life." by Henry David Thoreau.

回覆

zwrot podatku z holandii forum
zwrot podatku z holandii forum United States
2020/5/13 上午 04:14:56 #

Real  nice  style  and  wonderful  articles ,  nothing at all  else we  require : D.

回覆

Crime Fiction Author
Crime Fiction Author United States
2020/5/13 下午 02:33:26 #

I have seen many useful issues on your website about pcs. However, I've got the impression that laptop computers are still not nearly powerful sufficiently to be a good selection if you typically do jobs that require plenty of power, such as video editing and enhancing. But for internet surfing, word processing, and many other frequent computer functions they are fine, provided you do not mind the tiny screen size. Many thanks sharing your ideas.

回覆

zwrot podatku z holandii 2017 forum
zwrot podatku z holandii 2017 forum United States
2020/5/13 下午 02:50:57 #

I  truly  enjoy  looking through  on this  internet site , it has   superb   content . "You should pray for a sound mind in a sound body." by Juvenal.

回覆

zwrot podatku z zagranicy ostr&amp;#243;w wlkp
zwrot podatku z zagranicy ostr&#243;w wlkp United States
2020/5/14 上午 01:29:16 #

Great – I should definitely pronounce, impressed with your web site. I had no trouble navigating through all tabs as well as related information ended up being truly easy to do to access. I recently found what I hoped for before you know it in the least. Quite unusual. Is likely to appreciate it for those who add forums or anything, site theme . a tones way for your client to communicate. Excellent task.

回覆

all-tax zwrot podatku z zagranicy opole
all-tax zwrot podatku z zagranicy opole United States
2020/5/14 下午 12:32:34 #

Very interesting points  you have mentioned , thanks  for posting . "Opportunities are seldom labeled." by John H. Shield.

回覆

fishing net
fishing net United States
2020/5/14 下午 11:40:46 #

We're a group of volunteers and starting a new scheme in our community. Your site provided us with valuable information to work on. You've done a formidable job and our whole community will be thankful to you.

回覆

zwrot podatku z zagranicy ostr&amp;#243;w wlkp
zwrot podatku z zagranicy ostr&#243;w wlkp United States
2020/5/15 上午 12:24:12 #

Only  a smiling visitor  here to share the love (:, btw  outstanding  layout.

回覆

Lead Abatement
Lead Abatement United States
2020/5/15 上午 05:17:03 #

回覆

videos porno
videos porno United States
2020/5/16 上午 08:32:41 #

Hiya, I'm really glad I have found this info. Today bloggers publish just about gossips and net and this is actually irritating. A good site with interesting content, this is what I need. Thank you for keeping this web-site, I'll be visiting it. Do you do newsletters? Cant find it.

回覆

 Ipburger Coupons
Ipburger Coupons United States
2020/5/16 下午 09:10:28 #

You made some good points there. I looked on the internet for the subject matter and found most persons will go along with with your blog.

回覆

hand sanitiser
hand sanitiser United States
2020/5/16 下午 09:21:56 #

Just a smiling visitant here to share the love (:, btw great design. "Everything should be made as simple as possible, but not one bit simpler." by Albert Einstein.

回覆

Ross Beehler
Ross Beehler United States
2020/5/17 上午 09:21:54 #

Wow, incredible blog layout! How long have you been blogging for? you make blogging look easy. The overall look of your site is great, as well as the content!  xrumer

回覆

Broderick Serenil
Broderick Serenil United States
2020/5/18 下午 04:08:48 #

Aw, this was a really nice post. In concept I wish to put in writing like this moreover E taking time and precise effort to make a very good articleÖ however what can I sayÖ I procrastinate alot and not at all seem to get one thing done.

回覆

Clare Spiter
Clare Spiter United States
2020/5/19 下午 06:21:49 #

Hello! I merely would choose to make a massive thumbs up for your excellent info you’ve got here on this post. We are returning to your site to get more soon.

回覆

mactan island hopping
mactan island hopping United States
2020/5/20 上午 03:53:02 #

Magnificent goods from you, man. I've take into accout your stuff prior to and you are simply too wonderful. I actually like what you've got right here, certainly like what you are saying and the best way during which you say it. You are making it entertaining and you still care for to keep it wise. I can't wait to read much more from you. This is really a tremendous website.

回覆

the villages mortgage calculator
the villages mortgage calculator United States
2020/5/20 上午 07:06:40 #

回覆

베트남 다낭‌‌
베트남 다낭‌‌ United States
2020/5/20 下午 08:48:45 #

Very efficiently written story. It will be useful to everyone who employess it, as well as yours truly Smile. Keep doing what you are doing - for sure i will check out more posts.

回覆

srilanka labour
srilanka labour United States
2020/5/22 上午 06:48:28 #

But wanna  remark  on few general things, The website  style and design  is perfect, the  content material  is  rattling  superb  : D.

回覆

Oscar Makepeace
Oscar Makepeace United States
2020/5/22 上午 11:27:32 #

You definitely put a new whirl on a subject that's been written about for years. Remarkable material, just incredible! I enjoy reading a post that will make people think, thanks and we want more! Added to FeedBurner also. If you have a opportunity check out my web site. It's a work in progress, but I suppose that someday it will have nearly as good of content as yours. <a href="https://www.kellykoskyisafraud.com"; />kelly kosky</a>

回覆

토토사이트
토토사이트 United States
2020/5/22 下午 06:06:32 #

回覆

digitalmandy.com
digitalmandy.com United States
2020/5/22 下午 06:08:32 #

Free classified worldwide, Post your ad for free. Digitalmandy.com is a free classified for worldwide. Post your ads for free. We have premium listing as well For more info http://digitalmandy.com

回覆

Annelle Torrent
Annelle Torrent United States
2020/5/23 上午 10:36:58 #

I was really happy to find this site. Thank you for composing this grand read!! I definitely enjoyed your write up, have bookmarked it and will be looking for future posts. If you have a opportunity check out my web site. It's a work in progress, but I hope that someday it will turn out as outstanding as yours. <a href="https://www.kellykoskyisafraud.com"; />kelly kosky</a>

回覆

Ilda Roskop
Ilda Roskop United States
2020/5/24 上午 09:00:08 #

You should take part in a contest for one of the most interesting blogs on the web. I would endorse your blog!. I 'm interested in your posts, and have bookmarked the website so that I can check back for future updates. If you have a second check out my site. It's a work in progress, but i imagine that someday it will have nearly as good of content as yours <a href="https://www.kellykoskyisafraud.com"; />kelly kosky</a>

回覆

Jacob Seilhymer
Jacob Seilhymer United States
2020/5/24 上午 09:14:13 #

Hi there! I just like to give an abundant thumbs up for the favorable information you have got right here on this post. I've bookmarked your blog and will probably be coming again to your site for more soon. If you have a opportunity check out my web site It's brand new, but i am hoping some day it will be as informative as yours <a href="https://www.kellykoskyisafraud.com"; />kelly kosky</a>

回覆

best cbd oil companies
best cbd oil companies United States
2020/5/25 上午 08:43:55 #

I like what you guys are up too. This type of clever work and reporting! Keep up the superb works guys I've incorporated you guys to my personal blogroll.|

回覆

Joseph Tomaszycki
Joseph Tomaszycki United States
2020/5/25 下午 03:02:23 #

You decidedly put a new twirl on a subject that's been written about for years. Noteworthy stuff, just amazing! I enjoy reading a post that will make people think, thanks and we want more! Added to FeedBurner as well. If you have a opportunity check out my web site. It's a work in progress, but I assume that someday it will have nearly as good of subject matter as yours. <a href="https://www.kellykoskyisafraud.com"; />kelly kosky</a>

回覆

Maria Fumero
Maria Fumero United States
2020/5/25 下午 03:18:35 #

picked up your post on google and checked out a small number of of your former posts. Continue with the very good articles. Ill in all likelihood be by again to read more, thanks for the info! If you have a opportunity check out my web site. It's a work in progress, but I suppose that someday it will have almost as good of substance as yours. <a href="https://www.kellykoskyisafraud.com"; />kelly kosky</a>

回覆

difference between KF94 and KN95 Mask
difference between KF94 and KN95 Mask United States
2020/5/25 下午 03:34:23 #

I really wanted to type a  comment to be able to express gratitude to you for some of the fantastic tricks you are giving on this site. My time intensive internet research has finally been rewarded with good tips to go over with my friends and classmates. I would assert that most of us visitors actually are extremely lucky to be in a remarkable place with  many perfect people with good tactics. I feel very much happy to have encountered your entire webpages and look forward to so many more thrilling times reading here. Thanks a lot again for everything.

回覆

Online marketting
Online marketting United States
2020/5/25 下午 03:51:50 #

You actually make it appear really easy together with your presentation however I to find this topic to be really one thing that I feel I would never understand. It kind of feels too complex and very huge for me. I'm having a look forward in your next post, I will try to get the cling of it!

回覆

新增評論




  Country flag
biuquote
  • 評論
  • 線上預覽
Loading






NET Magazine國際中文電子雜誌

NET Magazine國際中文電子版雜誌,由恆逸資訊創立於2000,自發刊日起迄今已發行超過500篇.NET相關技術文章,擁有超過40000名註冊讀者群。NET Magazine國際中文電子版雜誌希望藉於電子雜誌與NET Developer達到共同學習與技術新知分享,歡迎每一位對.NET 技術有興趣的朋友們多多支持本雜誌,讓作者群們可以有持續性的動力繼續爬文。<請加入免費訂閱>

月分類Month List