meSing.js is a JavaScript singing synthesis library that uses the Web Audio API's DSP capabilities in conjunction with the meSpeak.js speech synthesis library to provide a vocal synthesizer for the web. First, the lyrics with corresponding MIDI notes are parsed and fed to meSpeak.js; the resulting text-to-speech output is then converted into a series of AudioBufferSourceNodes, which are subsequently processed and adjusted for pitch, rhythm, and expression. Demo
- مطالعه مسیر آموزشی "Entity Framework Code-First"
- مطالعه مسیر آموزشی "Asp.NET MVC"
- مطالعه مقالات مربوط به "Asp.net Identity"
- مطالعه مسیر آموزشی "اصول طراحی شی گرا SOLID" و دوره "بررسی مفاهیم معکوس سازی وابستگیها و ابزارهای مرتبط با آن"
- انجمن
- ارتباط دوستی
- سیستم ترفیع رتبه
- Themeable
- سیستم Following
- صفحات داینامیک
- سیستم پیام رسانی
- امکان ساخت گروههای شخصی برای انتشار مطالب خود (توسط کاربران) با اعمال دسترسی مختلف
- پیغام خصوصی
- وبلاگ
- نظرسنجی ها
- مدیریت کاربران با دسترسیها داینامیک
- اخبار
- آگهی ها
/// <summary> /// Represents the lable /// </summary> public class Tag { #region Ctor /// <summary> /// Create one instance of <see cref="Tag"/> /// </summary> public Tag() { Id = SequentialGuidGenerator.NewSequentialGuid(); } #endregion #region Properties /// <summary> /// sets or gets Tag's identifier /// </summary> public virtual Guid Id { get; set; } /// <summary> /// sets or gets Tag's name /// </summary> public virtual string Name { get; set; } #endregion #region NavigationProperties /// <summary> /// sets or gets Tag's posts /// </summary> public virtual ICollection<BlogPost> BlogPosts { get; set; } #endregion }
/// <summary> /// Represents the Post's Draft /// </summary> public class BlogDraft { #region Ctor /// <summary> /// create one instance of <see cref="BlogDraft"/> /// </summary> public BlogDraft() { Id = SequentialGuidGenerator.NewSequentialGuid(); } #endregion #region Properties /// <summary> /// gets or sets Id of post's draft /// </summary> public virtual Guid Id { get; set; } /// <summary> /// gets or sets body of post's draft /// </summary> public virtual string Body { get; set; } /// <summary> /// gets or set title of post's draft /// </summary> public virtual string Title { get; set; } /// <summary> /// gets or sets tags of post's draft that seperated using ',' /// </summary> public virtual string TagNames { get; set; } /// <summary> /// gets or sets value indicating whether this draft is ready to publish /// </summary> public virtual bool IsReadyForPublish { get; set; } /// <summary> /// ges ro sets DateTime that this draft added /// </summary> public virtual DateTime CreatedOn { get; set; } /// <summary> /// gets or sets information of User-Agent /// </summary> public virtual string Agent { get; set; } /// <summary> /// gets or sets date that this draft publish as ready /// </summary> public virtual DateTime? ReadyForPublishOn { get; set; } #endregion #region NavigationProperties /// <summary> /// gets or sets Id of user that he is owner of this draft /// </summary> public virtual long OwnerId { get; set; } /// <summary> /// gets or sets user that he is owner of this draft /// </summary> public virtual User Owner { get; set; } #endregion }
/// <summary> /// Section of Rating /// </summary> public enum RatingSection { News, Announcement, ForumTopic, BlogComment, NewsComment, PollComment, AnnouncementComment, ForumPost, ... } /// <summary> /// Represents Rating Record regard by section type for Rating System /// </summary> public class UserRating { #region Ctor /// <summary> /// Create one instance of <see cref="UserRating"/> /// </summary> public UserRating() { Id = SequentialGuidGenerator.NewSequentialGuid(); } #endregion #region Properties /// <summary> /// gets or sets Id of Rating Record /// </summary> public virtual Guid Id { get; set; } /// <summary> /// gets or sets value of rate /// </summary> public virtual double RatingValue { get; set; } /// <summary> /// gets or sets Section's Id /// </summary> public virtual long SectionId { get; set; } /// <summary> /// gets or sets Section /// </summary> public virtual RatingSection Section { get; set; } #endregion #region Navigation Properties /// <summary> /// gets or sets user that rate one section /// </summary> public virtual User Rater { get; set; } /// <summary> /// gets or sets Rater Id that rate one section /// </summary> public virtual long RaterId { get; set; } #endregion }
/// <summary> /// Represent the rating as ComplexType /// </summary> [ComplexType] public class Rating { /// <summary> /// sets or gets total of rating /// </summary> public virtual double? TotalRating { get; set; } /// <summary> /// sets or gets rater's count /// </summary> public virtual long? RatersCount { get; set; } /// <summary> /// sets or gets average of rating /// </summary> public virtual double? AverageRating { get; set; } }
/// <summary> /// Represents a base class for every content in system /// </summary> public abstract class BaseContent { #region Properties /// <summary> /// get or set identifier of record /// </summary> public virtual long Id { get; set; } /// <summary> /// gets or sets date of publishing content /// </summary> public virtual DateTime PublishedOn { get; set; } /// <summary> /// gets or sets Last Update's Date /// </summary> public virtual DateTime ModifiedOn { get; set; } /// <summary> /// gets or sets the blog pot body /// </summary> public virtual string Body { get; set; } /// <summary> /// gets or sets the content title /// </summary> public virtual string Title { get; set; } /// <summary> /// gets or sets value indicating Custom Slug /// </summary> public virtual string SlugUrl { get; set; } /// <summary> /// gets or sets meta title for seo /// </summary> public virtual string MetaTitle { get; set; } /// <summary> /// gets or sets meta keywords for seo /// </summary> public virtual string MetaKeywords { get; set; } /// <summary> /// gets or sets meta description of the content /// </summary> public virtual string MetaDescription { get; set; } /// <summary> /// gets or sets /// </summary> public virtual string FocusKeyword { get; set; } /// <summary> /// gets or sets value indicating whether the content use CanonicalUrl /// </summary> public virtual bool UseCanonicalUrl { get; set; } /// <summary> /// gets or sets CanonicalUrl That the Post Point to it /// </summary> public virtual string CanonicalUrl { get; set; } /// <summary> /// gets or sets value indicating whether the content user no Follow for Seo /// </summary> public virtual bool UseNoFollow { get; set; } /// <summary> /// gets or sets value indicating whether the content user no Index for Seo /// </summary> public virtual bool UseNoIndex { get; set; } /// <summary> /// gets or sets value indicating whether the content in sitemap /// </summary> public virtual bool IsInSitemap { get; set; } /// <summary> /// gets or sets a value indicating whether the content comments are allowed /// </summary> public virtual bool AllowComments { get; set; } /// <summary> /// gets or sets a value indicating whether the content comments are allowed for anonymouses /// </summary> public virtual bool AllowCommentForAnonymous { get; set; } /// <summary> /// gets or sets viewed count by rss /// </summary> public virtual long ViewCountByRss { get; set; } /// <summary> /// gets or sets viewed count /// </summary> public virtual long ViewCount { get; set; } /// <summary> /// Gets or sets the total number of comments /// <remarks>The same as if we run Item.Comments.where(a=>a.Status==Status.Approved).Count() /// We use this property for performance optimization (no SQL command executed) /// </remarks> /// </summary> public virtual int ApprovedCommentsCount { get; set; } /// <summary> /// Gets or sets the total number of comments /// <remarks>The same as if we run Item.Comments.where(a=>a.Status==Status.UnApproved).Count() /// We use this property for performance optimization (no SQL command executed)</remarks></summary> public virtual int UnApprovedCommentsCount { get; set; } /// <summary> /// gets or sets value indicating whether the content is logical deleted or hidden /// </summary> public virtual bool IsDeleted { get; set; } /// <summary> /// gets or sets rating complex instance /// </summary> public virtual Rating Rating { get; set; } /// <summary> /// gets or sets value indicating whether the content show with rssFeed /// </summary> public virtual bool ShowWithRss { get; set; } /// <summary> /// gets or sets value indicating maximum days count that users can send comment /// </summary> public virtual int DaysCountForSupportComment { get; set; } /// <summary> /// gets or sets information of User-Agent /// </summary> public virtual string Agent { get; set; } /// <summary> /// gets or sets icon name with size 200*200 px for snippet /// </summary> public virtual string SocialSnippetIconName { get; set; } /// <summary> /// gets or sets title for snippet /// </summary> public virtual string SocialSnippetTitle { get; set; } /// <summary> /// gets or sets description for snippet /// </summary> public virtual string SocialSnippetDescription { get; set; } /// <summary> /// gets or sets body of content's comment /// </summary> public virtual byte[] RowVersion { get; set; } /// <summary> /// gets or sets name of tags seperated by comma that assosiated with this content fo increase performance /// </summary> public virtual string TagNames { get; set; } /// <summary> /// gets or sets counter for Content's report /// </summary> public virtual int ReportsCount { get; set; } #endregion #region NavigationProperties /// <summary> /// get or set user that create this record /// </summary> public virtual User Author { get; set; } /// <summary> /// gets or sets Id of user that create this record /// </summary> public virtual long AuthorId { get; set; } /// <summary> /// get or set the tags integrated with content /// </summary> public virtual ICollection<Tag> Tags { get; set; } #endregion }
بخشهای مختلفی که در ابتدای مقاله مطرح شدند، دارای یکسری خصوصیات مشترک میباشند و برای این منظور این خصوصیات را در یک کلاس پایه کپسوله کردهایم. شاید تفکر شما این باشد که میخواهیم ارث بری TPH یا TPT را اعمال کنیم. ولی با توجه به سلیقهی شخصی، در این بخش قصد استفاده از ارث بری را ندارم.
نکتهای که وجود دارد فیلدهای ApprovedCommentsCount UnApprovedCommentsCount و TagNames میباشند که هنگام درج نظر جدید باید تعداد نظرات ذخیره شده را ویرایش کنیم و هنگام ویرایش خود پست یا خبر با ... و یا حتی ویرایش خود تگ یا حذف آن تگ باید TagNames که لیست برچسبهای محتوا را به صورت جدا شده با (,) از هم دیگر میباشد، ویرایش کنیم (جای بحث دارد).
مشخص است که هر یک از مطالب منتشر شده در بخشهای وبلاگ، اخبار، نظرسنجی و آگهیها، یک کابر ایجاد کننده (Author نامیدهایم) خواهد داشت و هر کاربر هم میتواند چندین مطلب را ایجاد کند. لذا رابطهی یک به چند بین تمام این بخشها مذکور و کاربر ایجاد خواهد شد.
مدل LinkBack
/// <summary> /// Represents link for implemention linkback /// </summary> public class LinkBack { #region Ctor /// <summary> /// create one instance of <see cref="LinkBack"/> /// </summary> public LinkBack() { CreatedOn = DateTime.Now; Id = SequentialGuidGenerator.NewSequentialGuid(); } #endregion #region Properties /// <summary> /// gets or sets link's Id /// </summary> public virtual Guid Id { get; set; } /// <summary> /// gets or sets text for show Link /// </summary> public virtual string Title { get; set; } /// <summary> /// gets or sets link's address /// </summary> public virtual string Url { get; set; } /// <summary> /// gets or set value indicating whether this link is internal o external /// </summary> public virtual LinkBackType Type { get; set; } /// <summary> /// gets or sets date that this record is added /// </summary> public virtual DateTime CreatedOn { get; set; } #endregion #region NavigationProperties /// <summary> /// gets or sets Post that associated /// </summary> public virtual BlogPost Post { get; set; } /// <summary> /// gets or sets id of Post that associated /// </summary> public virtual long PostId { get; set; } #endregion } /// <summary> /// represents Type of ReferrerLinks /// </summary> public enum LinkBackType { /// <summary> /// Internal link /// </summary> Internal, /// <summary> /// External Link /// </summary> External }
مطمئنا در خیلی از وبلاگها مثل سایت جاری متوجه نمایش لینکها ارجاع دهندههای خارجی و داخلی در زیر مطلب شدهاید. کلاس LinkBack هم دقیقا برای این منظور در نظرگرفته شده است که عنوان صفحهای که این پست در آنجا لینک داده شده است، به همراه آدرس آن صفحه، در جدول حاصل از این کلاس ذخیره خواهند شد. نوع داده LinkBackType هم برای متمایز کردن رکوردهای درج شده به عنوان LinkBack در نظر گرفته شده است که بتوان آنها را متمایز کرد، به ارجاعات داخلی و خارجی.
مدل پست ها
/// <summary> /// Represents a blog post /// </summary> public class BlogPost : BaseContent { #region Ctor /// <summary> /// Create one Instance of <see cref="BlogPost"/> /// </summary> public BlogPost() { Rating = new Rating(); PublishedOn = DateTime.Now; } #endregion #region Properties /// <summary> /// gets or sets Status of LinkBack Notifications /// </summary> public virtual LinkBackStatus LinkBackStatus { get; set; } #endregion #region NavigationProperties /// <summary> /// get or set blog post's Reviews /// </summary> public virtual ICollection<BlogComment> Comments { get; set; } /// <summary> /// get or set collection of links that reference to this blog post /// </summary> public virtual ICollection<LinkBack> LinkBacks { get; set; } /// <summary> /// get or set Collection of Users that Contribute on this post /// </summary> public virtual ICollection<User> Contributors { get; set; } #endregion } /// <summary> /// Represents Status for ReferrerLinks /// </summary> public enum LinkBackStatus { [Display(Name ="غیرفعال")] Disable, [Display(Name = "فعال")] Enable, [Display(Name = "لینکها داخلی")] JustInternal, [Display(Name = "لینکها خارجی")] JustExternal }
/// <summary> /// Represents a base class for every comment in system /// </summary> public abstract class BaseComment { #region Properties /// <summary> /// get or set identifier of record /// </summary> public virtual long Id { get; set; } /// <summary> /// gets or sets date of creation /// </summary> public virtual DateTime CreatedOn { get; set; } /// <summary> /// gets or sets displayName of this comment's Creator if he/she is Anonymous /// </summary> public virtual string CreatorDisplayName { get; set; } /// <summary> /// gets or sets body of blog post's comment /// </summary> public virtual string Body { get; set; } /// <summary> /// gets or sets body of blog post's comment /// </summary> public virtual Rating Rating { get; set; } /// <summary> /// gets or sets informations of agent /// </summary> public virtual string UserAgent { get; set; } /// <summary> /// gets or sets siteUrl of Creator if he/she is Anonymous /// </summary> public virtual string SiteUrl { get; set; } /// <summary> /// gets or sets Email of Creator if he/she is anonymous /// </summary> public virtual string Email { get; set; } /// <summary> /// gets or sets status of comment /// </summary> public virtual CommentStatus Status { get; set; } /// <summary> /// gets or sets Ip Address of Creator /// </summary> public virtual string CreatorIp { get; set; } /// <summary> /// gets or sets datetime that is modified /// </summary> public virtual DateTime? ModifiedOn { get; set; } /// <summary> /// gets or sets counter for report this comment /// </summary> public virtual int ReportsCount { get; set; } #endregion #region NavigationProperties /// <summary> /// get or set user that create this record /// </summary> public virtual User Creator { get; set; } /// <summary> /// get or set Id of user that create this record /// </summary> public virtual long? CreatorId { get; set; } #endregion } public enum CommentStatus { /* 0 - approved, 1 - pending, 2 - spam, -1 - trash */ [Display(Name = "تأیید شده")] Approved = 0, [Display(Name = "در انتظار بررسی")] Pending = 1, [Display(Name = "جفنگ")] Spam = 2, [Display(Name = "زباله دان")] Trash = -1 }
/// <summary> /// Represents a blog post's comment /// </summary> public class BlogComment : BaseComment { #region Ctor /// <summary> /// Create One Instance for <see cref="BlogComment"/> /// </summary> public BlogComment() { Rating = new Rating(); CreatedOn = DateTime.Now; } #endregion #region NavigationProperties /// <summary> /// gets or sets BlogComment's identifier for Replying and impelemention self referencing /// </summary> public virtual long? ReplyId { get; set; } /// <summary> /// gets or sets blog's comment for Replying and impelemention self referencing /// </summary> public virtual BlogComment Reply { get; set; } /// <summary> /// get or set collection of blog's comment for Replying and impelemention self referencing /// </summary> public virtual ICollection<BlogComment> Children { get; set; } /// <summary> /// gets or sets post that this comment sent to it /// </summary> public virtual BlogPost Post { get; set; } /// <summary> /// gets or sets post'Id that this comment sent to it /// </summary> public virtual long PostId { get; set; } #endregion }
اضافه شدن SHA1 به SQLite 3.17.0
مقایسه React و Angular 4
When you start working on a new web application you will probably need to analyze different tools to deal with the different functionalities that you have to work on. As soon as you start searching for alternatives you are going to run across Angular and React, they are without any doubt two of the major options to consider, at least till today.
کتابخانه ProgressButtonStyles
A set of flat and 3D progress button styles where the button itself serves as a progress indicator. 3D styles are used for showing the progress indication on one side of the button while rotating the button in perspective. Demo