https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.2
zondag 13 januari 2019
zondag 6 januari 2019
vue.js virtual dom
The virtual DOM used in vue.js is based on snabbdom.
vrijdag 4 januari 2019
Upload folder with .NET Core and JQuery
Client (javascript) :
let uploadInput = $('<input type="file" id="file" name="file" size="10" accept="image/*" webkitdirectory mozdirectory />');
function uploadButtonClick() {
let promiseArray = [];
let theFiles = $('#file')[0].files;
for (let i = 0; i < theFiles.length; i++) {
let aFile = theFiles[i];
(function (theFile) {
promiseArray.push(uploadFile(theFile));
})(aFile);
}
$.when.apply($, promiseArray).then(function () {
});
}
function uploadFile(theFile) {
let deferred = $.Deferred();
var formData = new FormData();
formData.append('parameter1', 'value1');
formData.append('file', theFile, theFile.webkitRelativePath);
$.ajax({
method: "POST",
url: '/v1/UploadFile',
data: formData,
cache: false,
contentType: false,
processData: false
}).done(function (response) {
deferred.resolve(response);
});
return deferred.promise();
}
Server (.NET Core controller):
[HttpPost]
[RequestFormLimits(MultipartBodyLengthLimit =209715200)]
[RequestSizeLimit(209715200)]
[Route("UploadFile")]
public ActionResult<List<string>> UploadFile(IFormFile file, [FromServices] IHostingEnvironment env)
{
string uploadDir = "c:\\dir\\upload";
string dirPart = Path.GetDirectoryName(file.FileName);
Directory.CreateDirectory(uploadDir + "\\" + dirPart);
string fileNamePart = file.FileName; // Path.GetFileName(file.FileName);
string fileName = $"{uploadDir}\\{fileNamePart}";
using (FileStream fs = System.IO.File.Create(fileName))
{
file.CopyTo(fs);
fs.Flush();
}
var result = new List<string>();
result.Add($"{file.Length} bytes uploaded successfully.");
return result;
}
let uploadInput = $('<input type="file" id="file" name="file" size="10" accept="image/*" webkitdirectory mozdirectory />');
function uploadButtonClick() {
let promiseArray = [];
let theFiles = $('#file')[0].files;
for (let i = 0; i < theFiles.length; i++) {
let aFile = theFiles[i];
(function (theFile) {
promiseArray.push(uploadFile(theFile));
})(aFile);
}
$.when.apply($, promiseArray).then(function () {
});
}
function uploadFile(theFile) {
let deferred = $.Deferred();
var formData = new FormData();
formData.append('parameter1', 'value1');
formData.append('file', theFile, theFile.webkitRelativePath);
$.ajax({
method: "POST",
url: '/v1/UploadFile',
data: formData,
cache: false,
contentType: false,
processData: false
}).done(function (response) {
deferred.resolve(response);
});
return deferred.promise();
}
Server (.NET Core controller):
[HttpPost]
[RequestFormLimits(MultipartBodyLengthLimit =209715200)]
[RequestSizeLimit(209715200)]
[Route("UploadFile")]
public ActionResult<List<string>> UploadFile(IFormFile file, [FromServices] IHostingEnvironment env)
{
string uploadDir = "c:\\dir\\upload";
string dirPart = Path.GetDirectoryName(file.FileName);
Directory.CreateDirectory(uploadDir + "\\" + dirPart);
string fileNamePart = file.FileName; // Path.GetFileName(file.FileName);
string fileName = $"{uploadDir}\\{fileNamePart}";
using (FileStream fs = System.IO.File.Create(fileName))
{
file.CopyTo(fs);
fs.Flush();
}
var result = new List<string>();
result.Add($"{file.Length} bytes uploaded successfully.");
return result;
}
dinsdag 1 januari 2019
Organisatie moet zelf ook scalable en non-blocking zijn, net als de software die het gebruikt.
Wil je een gedistribueerd, scalable, asynchroon, non-blocking software gebruiken, dan moet je organisatie ook zo werken, anders gaat het geen rendement geven.
Dus geen dead-locks, zoals grote meetings en conference calls waarin iedereen veel tijd kwijt is.
Inspiratie van Pieter Hintjens van ZeroMQ uit: https://www.youtube.com/watch?v=yhGXJ9Jt3-A
Dus geen dead-locks, zoals grote meetings en conference calls waarin iedereen veel tijd kwijt is.
Inspiratie van Pieter Hintjens van ZeroMQ uit: https://www.youtube.com/watch?v=yhGXJ9Jt3-A
Abonneren op:
Posts (Atom)