Agile چیست؟
Agile is a term used to describe approaches to software development emphasizing incremental delivery, team collaboration, continual planning, and continual learning. The term “Agile” was coined in 2001 in the Agile Manifesto. The manifesto set out to establish principles to guide a better approach to software development. The manifesto set out to establish principles to guide a better approach to software development. At its core, the manifesto declares 4 value statements representing the foundation of the agile movement.
In this tutorial, we’ll be creating a simple shopping cart that works with drag ‘n’ drops.
It will have support for add-to-basket with quantity updates (so that the same items could be added more than once) and removing items from the basket.
Demo Download
Not many are familiar with this awesome feature of dotnet core. Aspnet
team is actively maintaining a project named JavascriptServices
; Along with other packages, it includes the NodeServices
package. Using this package, one can easily create an instance of node
and execute JavaScript code (function) in the backend. If you think of it right now, you can see that it actually opens up a wide variety of development opportunities. By opportunities, I mean; the ASP.NET core project is trying hard to make its package eco-system (NuGet) rich but while doing it, why not get advantages of other package eco-system as well, right? When I talk about other than nuget package manager, the first name that comes to my mind is Npm
(node package manager). Npm
is the largest package manager out there on this very day and its growing rapidly. By using NodeServices
package, we can now use (not all of the npm
packages but) most of the npm
packages in our backend development. So, let me show you how to configure NodeServices
in your aspnet core project and use it to execute JavaScript code on the backend.
مقدمه ای بر الگوی MVVM
افزونهای برای نمایش رشتههای منابع
کتابخانه jfMagnify
CREATE TABLE tableName ( jsonData CHAR(250) -- or VARCHAR, TEXT, BLOB ); INSERT INTO tableName VALUES ( '{ "name": "User1", "age": 41}' ); SELECT * FROM tableName; { "name": "User1", "age": 41}
SELECT * FROM tableName WHERE jsonData REGEXP 'User1';
CREATE TABLE tableName ( jsonData JSON ); INSERT INTO tableName VALUES ( '{ "name": "User1", "age": 41, "name": "User2"}' ); SELECT * FROM tableName; {"age": 41, "name": "User2"}
- ابتدا بررسی خواهد شد که سند JSON معتبر باشد؛ در غیر اینصورت ذخیرهسازی با مشکل مواجه خواهد شد.
- از فیلدهایی که کلید تکراری دارند، صرفنظر خواهند شد. در مثال بالا دوبار فیلد name را مقداردهی کردهایم. در اینجالت key/value دوم لحاظ شدهاست. البته میبایستی اصل first key wins لحاظ میشد، اما این مورد به عنوان یک باگ گزارش شدهاست و در نسخههای 8 به بعد رفع شدهاست (https://forums.mysql.com/read.php?3,660500,660500 - https://bugs.mysql.com/bug.php?id=86866).
- فاصلههای اضافی بین کلیدها حذف شدهاند.
- برای جستجوی بهتر، کلیدهای آبجکت JSON به صورت مرتب شده ذخیره شدهاند.
{ "id": "1", "sku": "asdf123", "name": "Lorem ipsum jacket", "price": 12.45, "discount": 10, "offerEnd": "October 5, 2020 12:11:00", "new": false, "rating": 4, "saleCount": 54, "category": ["fashion", "men"], "tag": ["fashion", "men", "jacket", "full sleeve"], "variation": [ { "color": "white", "image": "/assets/img/product/fashion/1.jpg", "size": [ { "name": "x", "stock": 3 }, { "name": "m", "stock": 2 }, { "name": "xl", "stock": 5 } ] }, { "color": "black", "image": "/assets/img/product/fashion/8.jpg", "size": [ { "name": "x", "stock": 4 }, { "name": "m", "stock": 7 }, { "name": "xl", "stock": 9 }, { "name": "xxl", "stock": 1 } ] }, { "color": "brown", "image": "/assets/img/product/fashion/3.jpg", "size": [ { "name": "x", "stock": 1 }, { "name": "m", "stock": 2 }, { "name": "xl", "stock": 4 }, { "name": "xxl", "stock": 0 } ] } ], "image": [ "/assets/img/product/fashion/1.jpg", "/assets/img/product/fashion/3.jpg", "/assets/img/product/fashion/6.jpg", "/assets/img/product/fashion/8.jpg", "/assets/img/product/fashion/9.jpg" ], "description": { "shortDescription": "Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur.", "fullDescription": "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?" } }
SELECT JSON_PRETTY( JSON_EXTRACT(data, "$.category") ) FROM experiments.productMetadata; /* [ "fashion", "men" ] [ "fashion", "women" ] [ "fashion", "men" ] */
JSON_EXTRACT(data, "$.tag[1]") JSON_EXTRACT(data, "$.description.shortDescription")
SELECT JSON_EXTRACT(data, "$.*.shortDescription") FROM experiments.productMetadata;
SELECT JSON_KEYS(data) FROM experiments.productMetadata; -- ["id", "new", "sku", "tag", "name", "image", "price", "rating", "category", "discount", "offerEnd", "saleCount", "variation", "description"] -- ["id", "new", "sku", "tag", "name", "image", "price", "rating", "category", "discount", "saleCount", "variation", "description"]
SELECT JSON_KEYS(data, "$.description") FROM experiments.productMetadata; -- ["fullDescription", "shortDescription"] -- ["fullDescription", "shortDescription"]
SELECT JSON_CONTAINS(data, "10", "$.discount") FROM experiments.productMetadata; -- 1 -- 0
SELECT JSON_CONTAINS_PATH(data, "one", "$.description", "$.address", "$.website") FROM experiments.productMetadata;
SELECT JSON_SEARCH(data, 'one', 'fashion') FROM experiments.productMetadata; -- "$.tag[0]" -- "$.tag[0]"
Git + .NET/Mono = ❤ http://libgit2.github.com
LibGit2Sharp brings all the might and speed of libgit2, a native Git implementation, to the managed world of .NET and Mono.
$ git init /d/temp/rooted/path
string rootedPath = Repository.Init(@"D:\temp\rooted\path"); Console.WriteLine(rootedPath);
$ git add --all .
using (var repo = new Repository("path/to/your/repo")) { Commands.Stage(repo, "*"); }
$ git checkout <branch>
using (var repo = new Repository("path/to/your/repo")) { var branch = repo .Branches[branchName]; Branch currentBranch = Commands.Checkout(repo , branch); }