ASP.NET Core Product Pricing Revised

15 July 2019

Today we revised the pricing of our asp.net core products specially related to media services.

List of products with new pricing

If you have any question regarding pricing, upgrade options, terms of use and query regarding customization, technical guides, contact with us

HTTP Error 500.0 - ANCM In-Process Handler Load Failure

15 December 2018

You will notice "HTTP Error 500.0 - ANCM In-Process Handler Load Failure" when you try to upgrade & publish your application from ASP.NET Core 2.1 runtime to ASp.NET Core 2.2 runtime and deploy on IIS.

HTTP Error 500.0 - ANCM In-Process Handler Load Failure

You can resolve this error by performing the following steps.

i: While deploying make sure you publish your application by selecting win-x64

ii: Under IIS try to create new poll for your application and point your application to newly created poll.

iii: Map your application with newly created pool by using Advance Settings

iv: Restart your application and browse your website.

This will resolve this issue.

PlUpload Handler for ASP.NET Core Application

05 December 2018

PlUpload is a popular multi-runtime file uploader that can allow you to upload any type of files via web & mobile devices

This article provide detail how you can process uloaded files directly or via chunk upload within asp.net core application and send response after completing uploads

Sample code to initialize PlUpload within your project through jQuery.

     $("#uploader").pluploadQueue({
        // General settings
        runtimes : 'html5,flash,silverlight,html4',
        url : '/api/uploader/uploads',
        chunk_size : '1mb',
        unique_names : true,
 
        // Resize images on client-side if we can
        resize : {width : 320, height : 240, quality : 90}
    });

To process and save files locally, you have to write api call to receive chunk data and save it on server.

Complete code for processing chunk data within asp.net core application below.

Example Code

This code has been tested in ASP.NET Core 2.1

Create api controller e.g uploaderController and put below actions into it.

      [HttpPost("uploads")]
       public async Task uploads()
        {
            if (!MultipartRequestHelper.IsMultipartContentType(Request.ContentType))
            {
                return BadRequest($"Expected a multipart request, but got {Request.ContentType}");
            }
            
            // fetch username from header if you want to receive username and create directory for user
            StringValues UserName;
            SiteConfig.HttpContextAccessor.HttpContext.Request.Headers.TryGetValue("UName", out UserName);

            // Used to accumulate all the form url encoded key value pairs in the 
            // request.
            var formAccumulator = new KeyValueAccumulator();
            // string targetFilePath = null;

            var boundary = MultipartRequestHelper.GetBoundary(
                  MediaTypeHeaderValue.Parse(Request.ContentType),
                  _defaultFormOptions.MultipartBoundaryLengthLimit);

            var reader = new MultipartReader(boundary, HttpContext.Request.Body);

            var section = await reader.ReadNextSectionAsync();

            var uploadPath = SiteConfig.Environment.ContentRootPath + "/wwwroot/uploads";
            if (!Directory.Exists(uploadPath))
            {
                Directory_Process.CreateRequiredDirectories(uploadPath);
            }

            var fileName = "";
            while (section != null)
            {
                ContentDispositionHeaderValue contentDisposition;
                var hasContentDispositionHeader = ContentDispositionHeaderValue.TryParse(section.ContentDisposition,
                    out contentDisposition);

                if (hasContentDispositionHeader)
                {
                    if (MultipartRequestHelper.HasFileContentDisposition(contentDisposition))
                    {
                        var output = formAccumulator.GetResults();
                        var chunk = "0";
                        foreach (var item in output)
                        {
                            if (item.Key == "name")
                                fileName = item.Value;
                            else if (item.Key == "chunk")
                                chunk = item.Value;
                        }

                        var Path = uploadPath + "" + fileName;
                        using (var fs = new FileStream(Path, chunk == "0" ? FileMode.Create : FileMode.Append))
                        {
                            await section.Body.CopyToAsync(fs);
                            fs.Flush();
                        }
                    }
                    else if (MultipartRequestHelper.HasFormDataContentDisposition(contentDisposition))
                    {
                        var key = HeaderUtilities.RemoveQuotes(contentDisposition.Name);
                        var encoding = GetEncoding(section);
                        using (var streamReader = new StreamReader(
                            section.Body,
                            encoding,
                            detectEncodingFromByteOrderMarks: true,
                            bufferSize: 1024,
                            leaveOpen: true))
                        {
                            // The value length limit is enforced by MultipartBodyLengthLimit
                            var value = await streamReader.ReadToEndAsync();
                            if (String.Equals(value, "undefined", StringComparison.OrdinalIgnoreCase))
                            {
                                value = String.Empty;
                            }
                            formAccumulator.Append(key.ToString(), value);

                            if (formAccumulator.ValueCount > _defaultFormOptions.ValueCountLimit)
                            {
                                throw new InvalidDataException($"Form key count limit {_defaultFormOptions.ValueCountLimit} exceeded.");
                            }
                        }
                    }
                }

                var result = formAccumulator.GetResults();

                // Drains any remaining section body that has not been consumed and
                // reads the headers for the next section.
                section = await reader.ReadNextSectionAsync();
            }

            string orignalfilename = uploadPath + "" + fileName;
           
            string url = "/" + fileName; // url of upload file
            string fileType = System.IO.Path.GetExtension(fileName);
            string fileIndex = fileName.Replace(fileType, "");

            return Ok(new { jsonrpc = "2.0", result = "OK", fname = fileName, url = url, filetype = fileType, filename = fileName, fileIndex = fileIndex });
        }

private static Encoding GetEncoding(MultipartSection section)
{
    MediaTypeHeaderValue mediaType;
    var hasMediaTypeHeader = MediaTypeHeaderValue.TryParse(section.ContentType, out mediaType);
    // UTF-7 is insecure and should not be honored. UTF-8 will succeed in 
    // most cases.
    if (!hasMediaTypeHeader || Encoding.UTF7.Equals(mediaType.Encoding))
    {
       return Encoding.UTF8;
    }
    return mediaType.Encoding;
}

This function will process chunk data and send response back to application when done.

Mobile Application Development Launched

10 July 2015

We just launched extending our all products to mobile application platforms. We will use ionicframework as core platform to translate all our web solutions to clean mobile application that can be easily compilted to ios, andriod or window phone application via phonegap.

Here you can check all our converted application to mobile platform. 

For mobile application development we will rely purely on angular js for front end and php or asp.net for backened processing. We will later extend it to ruby on rail and node js platforms.

After now every web product or enterprise product have free mobile compatible app if available.

We appreciate your feedbacks for building next generation, useful mobile applications.

Gamify Application for ASP.NET and PHP Solutions.

30 January 2015

We developed advance gamification application with all basic and advance features that can allow developers to integrate it within their existing php or asp.net (MVC or web form) solutions easily.

It covers almost all features required for building great gamification solution which includes

  • Badges System
  • Rewards Management System
  • Level Management
  • Points & Credits Management
  • Packages Management
  • Events Management

For more detail check live demo

ASP.NET MVC Gamify Documentation

ASP.NET Gamify Web Form Documentation

PHP Gamify Documentation

We are started selling our lighter version of kits through CodeCanyon

12 August 2014

Today we extended selling our lighter version of products through CodeCanyon network on reasonal price based on standard and extended licenses.

Lighter products are those which are extract from core solution that target single core functionality or utility products.

E.g ASP.NET Video Starter Kit have more than 10 core sections including (photos, videos, audio, albums, blogs, forums, qa, groups, channels and more), every customer not need all products, some require only photo feature. 

While keeping in consideration, we made single version solution with all features for photos, videos, audio, albums, blogs, forums, qa, groups and more will be in futures.

These lighter or single core feature products to be avaialble for sale on CodeCanyon network.

List of Products:

List of products that can be available on sale through CodeCanyon are

  • ASP.NET vPhoto Kit
  • ASP.NET vAudio Kit
  • ASP.NET vQ&A Kit
  • ASP.NET vBlog Kit
  • ASP.NET vForum Kit
  • ASP.NET vGroup Kit

Upcoming Products:

List of upcoming products that can be soon available for sale including

  • ASP.NET vClassified Kit
  • ASP.NET vReal-Estate Kit
  • ASP.NET vEcommerce Kit
  • ASP.NET vDeal-Listing Kit
  • ASP.NET vAuto-Classified Kit
  • ASP.NET vDating Kit
  • and more

We appreciate your feedbacks for making more useful products and solutions that can target ASP.NET web form, MVC, Entity Framework, NHibernate and ADO.NET technologies.

All in One Bundle Features Extended.

11 August 2014

Today we restructued bundle "All in One" available under puchase section of website.

Now this bundle will include complete source code (c#, vb.net) version of all products released by us including source code (c#) of ASP.NET Media Handler Pro component.

Also shipped with extended license and free upgrade of package till next five years. (Once purchased, we will get free upgrade of this package until next five years on request, upgrade will include exsiting products upgrades + newly added products in bundle)

For more information contact us with our support team.

 

Pricing of Our Products Changed.

11 August 2014

Today we made adjustements in prices of our products listed under purchase section.

Detail of changes listed below.

i: Price of ASP.NET YuClone Script reduced from $199 to $149 with the release of version 8.0

ii: Price of ASP.NET Media Sharing Script reduced from $399 to $249.

iii: Price of ASP.NET Video Starter Kit Enterprise Edition reduced from $499 to $399

iv: Price of All in One bundle increased from $599 to $699 by extending features and license of this product further more.

You can check latest prices of all of our products in purchase section.

Products Data Access Layer Extended

02 August 2014

From first launched of ASP.NET Video Starter Kit we used ADO.NET as core data access technology for both SQL Server and MySql database management system. Now due to increasing popularity and emerging of new data access technologies we are extending support for two more data access techologies for our all web related products.

Now after version 8.0 of all our products, each product will support the following data access technologies but one at single project.

  • ADO.NET (web form project and along with mysql.data connector for mysql database support). It doesn't support MVC projects
  • NHibernate (web form and MVC version)
  • Entity Framework 6.0 (web form and MVC version)

To keep it simple, each product will support only single data access layer in one solution at a time. e.g no product have all three solutions in one project. So each bundle will be shipped with three projects based on availability or if officially released.

Restrictions:

Each project have restrictions e.g

  • Entity Framework can only be used with SQL Server Database.
  • ADO.NET can't be available in MVC version of product, means on MySQL support directly. For MySQL you can use NHibernate as database layer in MVC projects

MediaSoftPro Site Extended

02 August 2014

Today we released, newly extended version of our official website http://www.mediasoftpro.com with new design and features.

List of changes done in our website

  • Replace design with latest twitter bootstrap 3.0 responsive design.
  • Implement latest own build asp.net video starter kit 8.0 features to extended, clean, fast and make more professional looks for various available features.
  • Introducing two new core sections for adding more ease to our customer for accessing various resources within our website.

Site Design Improvements:

We upgrade website design with bootstrap 3.2 compatible responsive them along with all other adjustments including

  • Link structure improvments
  • Adding social connectivity via our facebook, twitter, google plus and linkdin social accounts.
  • Improved articles, product documentation listing to be easily reachable to customers.

Integration of ASP.NET Video Starter Kit 8.0 Features:

We have upgraded all core sections including forums, blogs and Q&A with latest version of asp.net video starter kit to make our support system more improved, user friendly, fastly accessible and more user readeable.

Introducing new Core Sections:

We have introduced two new core sections in our new site.

I: Photos (Screenshots Demonstration Section)

II: Glossary (Wiki Posts or centralize our article resources in a professional way)

Introduction of these two section will help us to write more useful articles and make it reachable to users easily from centralize location rather than mixed up in various areas.

I: Photos:

Photos or screenshot section will help us to upload screenshots of various features available in our products. Some products are small and writing documentation and feature list are easy but some products like ASP.NET Video Starter Kit have more than one thousand features along with 20 core sections. Its impossible for us to write documentation for all one thousand features with detail in  a single compact area and provide a demo of every feature. Even we provide live demo for this product but it takes a complete day to browse and review all features available in a product. For us problems extended with the release of new version of product which cause us to upgrade our documentation of every feature. In such upgrade actions we mostly lose our precious search indexing.

Due to these difficulties in mind, we added newly screenshot section where we will post newly added feature screenshots along with all detail, reference codes, availability ot feature in version of selected products and more. This help us to clean our core documentation, product detail page with list of all features updated time to time and also helps customers to easily review all features along with technical and general feature detail.

II: Glossary or Wiki

This section will help us to organize all our core articles which we privously written in html format in a single unit. In past we wrote all articles in html format, which are very difficult for us to make it centralize, upgrade of article contents, upgrade these article pages with the release of new website look and feel and link structure. Small change in link structure causes severe impact on our search indexing.

These issues in mind, we introducts new glossary or wiki post section in our website. Here we will wrote all useful articles, notes, share examples and codes, technical overviews of features available in our products and more in future.

We appreciate your recommendations.

New Services Launched with CodeName JUGNOON

11 January 2014

Few months back, we just launched new services via codename JUGNOON to provider next generation, lighter version of products using latest web tools including jQuery, Bootstrap, Angular JS, ASP.NET MVC and PHP.

JUGNOON Products and Services available on

http://www.jugnoon.com

JUGNOON Services will target products development in two core areas

i: ASP.NET MVC

ii: PHP

Both type of products will use latest front end tools

i: jQuery

ii: Angular JS

iii: Bootstrap.

All products and services released under JUGNOON will be available for purchase through codecanyon.net market place.

We appreciate your feedbacks for making more useful products.

MediaSoft Pro Team.

Extended Services to PHP

28 August 2013

We have just started extended our services from asp.net to php. 

Until now we released all products compatible only with asp.net, c#, vb.net, .net frameworks. 

Today we released our first free php utility script PHP Media Handler Pro for processing media files.

We will soon release our all products in php version along with utility scripts.

We appreciate feedbacks. 

Blog Section Introduced in MediaSoft Pro Website.

16 January 2010

At last we added blog section in our website http://www.mediasoftpro.com to provide information to customers regarding any development occurs in our products, services & tools.
\r\nIn bog section we will add articles related to our products, additional utilities that we work on it and other technologies related to video encoding, streaming & managing.
In contrast we will post articles about.

We also appreciate that you keep posting thoughts, ideas, comments regarding ASP.NET and video technologies.
We will try our best to share our ideas and services that we provide to our customers.