C# Corner

Resources  
  • Learn About MVC ArchitectureApr 25, 2018. MVC is actually the architectural pattern for implementing UI, although it was originally developed for desktop applications in 1970s. But then it is widely adopted in Web applications as well. And then as a result many frameworks have been created to enforce this pattern. MVC architecture has been famous for a long time in software engineering. Many programming languages adopt this pattern with different variations. But here we’ll discuss MVC patterns in terms of ASP.NET.
  • Learn About Mixin PatternApr 25, 2018. Mixin is an object oriented programming concept that has been used successfully in the enterprise application development scenarios. In an object oriented programming language, Mixin is a class which contains methods from other classes.
  • HTML Helper In ASP.NET MVCApr 25, 2018. HTML Helpers are classes which help to render HTML. These classes have methods which generate HTML at runtime. We can also bind a model object to individual HTML element for displaying or retrieving values.
  • CRUD Operations In Android SQLite - KotlinApr 18, 2018. In this article, we will learn how to perform CRUD (Create Read Update Delete) operations SQLite using Kotlin, the official first-class programming language for Android development. It is very easy and similar to implement like Java. We will learn SQLite implementation by building Simple TODO Application.
  • Azure Storage CRUD Operations In MVC Using C# - Azure Blob Storage - Part TwoApr 18, 2018. This article will give a step-by-step demonstration on how to store any physical object into Azure Blob Storage.
  • Write Your First Program Using Microsoft Graph SDKApr 18, 2018. In this article, I will explain how you can write your first program to interact with MS Graph API using MS Graph SDK in Visual Studio.
  • Writing Distributable .NET Application With x2netApr 18, 2018. Writing distributed applications, especially deployed across a network, tends to be a challenge, not only due to the trickiness of network programming but more so because your code, business logic messed up with communication details, is probably not flexible, hard to reuse and test in isolation.
  • Dynamic Objects And Alternatives To ReflectionApr 08, 2018. The CodexMicroORM open source project on GitHub includes several features to help you create fast, concise .NET deliverables. One such feature is implemented in the Performance.cs file and enables dynamic (i.e. run-time) access to properties of any object – faster than what you’d get out of System.Reflection.Type. CodexMicroORM leverages this feature in several places, one being the ability to build composite objects: your existing “POCO” (plain-old C# objects), with additional optional extended properties.
  • C# Object To JSON Parser (JSON Serializer)Mar 30, 2018. This article demonstrate how to parse a C# object into JSON string without using any .Net serializer and third party libraries.
  • Android Kotlin - Classes And Objects - Part FourMar 21, 2018. In this article, we are going to learn about classes and objects in Kotlin with null values.
  • Defensive Programming - Let Type Checking Work For YouMar 19, 2018. Since I have been a speaker and a teacher, I have always stressed the importance of practicing proper object-oriented programming (OOP) techniques. If you don’t practice OOP, no matter what language you are using, I guarantee you will end up with a “house of cards” and they all eventually fall.
  • Building Real Time Applications With Firebase Database And AngularMar 16, 2018. Firebase helps us make development faster, so we can skip the development part where we build API and database objects like stored procedure.
  • Creating A Virtual Switch In Hyper-VMar 16, 2018. A communication channel for virtual machines with each other is defined via virtual switch, so virtual switch can be defined as a program that enables virtual machines to communicate. It actually binds the physical machine network's adapter with a virtual host.
  • Mapping Similar Objects In ASP.NET Core 2.0Mar 13, 2018. This article is about mapping similar objects of two different classes with reduced lines of code using ASP.NET Core Automapper.
  • Liquid Templates In Logic AppsMar 05, 2018. Azure Logic Apps support basic JSON transformations through native data operation actions such as Compose or Parse JSON. For advanced JSON transformations, we can use Liquid templates with our logic apps. Microsoft has released the support of Liquid Templates to transform JSON and XML objects.
  • Five Easy Rules For Your Source Control RepositoryMar 04, 2018. I have been using source control programs for a very long time. I believe the first one was Visual Source Safe (don’t laugh, it was a painful experience). Early in my career and throughout I have learned many good practices that I still use to this day. I will share them with you now.
  • No Tracking With Entity Framework CoreMar 02, 2018. DbContext in Entity Framework is responsible for tracking the changes made on the entity or object, so the correct update is done to the database when the SaveChange() method of context is called. When we retrieve entities using an object query, the Entity Framework puts these entities in a cache and tracks whatever changes are made on these entities until the savechanges method is called. Entity Framework tracks the query results that return entity types.
  • New Features Of Entity Framework Core 2.0Feb 28, 2018. Entity Framework Core is a lightweight and extensible version of Entity Framework. It is based on an ORM (Object-Relational Mapper) which enables us to work with databases using .NET objects. This article explains about the new feature of EF Core 2.0.
  • Overview Of Generative Adversarial NetworksFeb 23, 2018. Once trained, Neural Networks are fairly good at recognizing voices, images, and objects in every frame of a video – even when you are playing the video. Let’s say you are not able to buy an expensive painting from a famous painter; can you create/generate an artificial painter who can paint like any famous artist by learning from his/her past collections? The answer is Yes – using Generative adversarial networks (GAN) you can. Generative Adversarial Networks (GANs) are a class of algorithms used in unsupervised learning -- you don’t need labels for your dataset in order to train a GAN.
  • Angular, Bootstrap and ASP.NET MVC - Bootstrap Form Controls - Part EightFeb 23, 2018. In previous articles we have learned AngularJS project setup, styling with Bootstrap, AngularJS structure, data-binding, routing, copying of Angular objects when a form is saved or canceled, inserting/updating forms, Bootstrap modal forms, and more.
  • Application Programming Using C++ And QtFeb 19, 2018. In this article, we will be setting up Visual Studio for Qt and will go through some C++ Qt examples
  • Owned<T> - Controlled Lifetime In Dependency Injection With AutofacFeb 16, 2018. Generally speaking, an owned dependency corresponds to some unit of work performed by the dependent component.
  • Moq - Unit Test In .NET Core App Using Mock ObjectFeb 14, 2018. The Unit test is a block of code that helps us in verifying the expected behavior of the other code in isolation; i.e., there is no dependency between the tests. This is good way to test the application code before it goes for quality assurance (QA). There are three different test frameworks for Unit Testing supported by ASP.NET Core: MSTest, XUnit, and NUnit. All Unit test frameworks, offer a similar end goal and help us to write unit tests that are simpler, easier and faster.
  • Database Naming Standards For The ProgrammerFeb 09, 2018. Let us face it, in most companies that programmers work for, we end up doing database work. I do not agree with this since I think the DBA or BIA should handle database programming and we should stick to what we do best… coding. Would you want a DBA writing code? I think not. With that said, here are database naming standards that I use when in this situation. DBA’s might not agree with how database coders name databases; stored procedures etc. but we need something.
  • Introduction To LINQ With Entity Framework In Visual StudioFeb 08, 2018. LINQ queries are similar to SQL query created for developers to maintain standardized coding approach. It deals with the data objects therefore it is similar to OOPs.
  • Cursors In SQL ServerFeb 06, 2018. A cursor is a database object which is used to retrieve data from result sets one row at a time.The cursor can be used when the data needs to be updated row by row.
  • Properties Of Object.prototype In JavaScriptFeb 05, 2018. Object.prototype is used to inherit properties and methods to the Constructor method, it may be overridden. We can use any constructor to create the object of another type with the help of Object.create() method and assign to the new constructor prototype.
  • Object In JavaScript With Function, Constructor, Function Constructor And Function HoistingFeb 04, 2018. In Javascript everything is Object, except for primitive values. In Javascript we can create an Object Wrapper through Object constructor. Whatever value we give or assign to variable the Object constructor creates an Object wrapper for that.
  • How Can You Integrate A JSON Framework With iOSFeb 01, 2018. JavaScript Object Notation, or JSON in short, is commonly used for representing structural data and data interchange in client-server applications, serving as an alternative to XML. It has grown in popularity as it is simple to use and human-readable. It is technically a part of the JavaScript language and provides a way to serialize JavaScript objects. It is supported in a wide variety of programming languages. A lot of the services used every day have JSON-based APIs.
  • Google Chrome Extension Project With Microsoft Visual StudioFeb 01, 2018. Extensions are small software programs that customize the browsing experience. Where use can customize and manipulate the chrome browser functionality and open web resources. Extension is built on web technologies such as HTML, JavaScript and CSS.
  • Retrieving List Items From A Specific View Using CSOMJan 25, 2018. In this article, you will learn how we can access the SharePoint data using Client Object Model. Here, I have taken an example of getting the data from SharePoint list specific View. Using this, we can create our own custom View with necessary fields and access them.
  • An Overview Of Power BI Route Map VisualJan 24, 2018. Power BI Route Map Visual is used to define the track of travelling objects on a map. We can achieve this visualization by connecting data containing fields like date time, latitude and longitude of route, start and destination location and route sequence.
  • Use Of Delegates In Programming With Simple ExampleJan 23, 2018. We all have studied delegates in programming, especially in high-level languages. But most probably, it’s hard to understand if you are new to programming. So I’ll be writing some stuff on the use of delegates with a simple example and I’ll be more focused on the answer of “Why we need delegate” instead of “How to use delegates”.
  • Introduction To Machine Learning - Part OneJan 22, 2018. Machine learning is a field or a part of computer science that gives the robot or computers the ability to learn without being explicitly programmed.
  • JavaScript Powerful Property DescriptorsJan 21, 2018. We developers assume that an object’s property is only a container that can be assigned a name and a value. In actuality though, JavaScript gives us a series of powerful property descriptors that further shape how the property behaves. To demonstrate this, let&#39;s create a JavaScript object by using object literal.
  • Garbage Collector And Destructor In C#Jan 19, 2018. Garbage collector looks for an instance/object which is not required anymore and treats these objects/instances as ready to destroy. Then, it makes a call to the destructor to release the memory and deallocate the resources.
  • Custom Model Binding In ASP.NET Core 2.0Jan 17, 2018. In an earlier post I discussed how to prevent insecure object references by encrypting the internal references (e.g. table primary keys) using Data Protection API. To avoid duplication of code that encrypts/decrypts on every controller I used filters in that example. In this post I’ll use another complimentary technique: custom model binding.
  • Top 10 Programming Languages Of 2018Jan 15, 2018. Welcome to 2018; one more year geared towards a tremendous growth in the computing industry including software programming.
  • An Introduction To Q#Jan 15, 2018. In this article, I will be explaining about Q# - the new programming language introduced by Microsoft for quantum computing. We will understand the data type, expressions, and statements of Q# with the help of code snippets.
  • Bulletproof Disposable Types In .NET CoreJan 14, 2018. Whenever I do code review on .NET projects, hands down the number one issue is developers not calling .Dispose() on disposable objects. Ever since .NET was released, I have been preaching how important this is. If not done properly, it’s most likely to create virtual memory issues that will eventually cause the application to stop and possibly freeze server or users’ computer.
  • AI Series - Part Two - Programming EmotionsJan 12, 2018. I will be showing how to start AI Development with Cognitive Services. Previously, we kickstarted our new article series “AI HowTo” and talked about how to register for Emotion API Preview(Project Oxford) through Azure Portal.
  • Preventing Insecure Object References In ASP.NET Core 2.0Jan 10, 2018. How to prevent insecure direct object reference in ASP.NET Core.
  • Three Popular C# InterfacesJan 09, 2018. In this article, you will learn about the most common interfaces in the C# Libraries that you can use to create robust classes and objects.
  • An Introduction To Extreme ProgrammingJan 09, 2018. The advent of the Extreme programming dates back to the mid &#39;90s when Chrysler Comprehensive Compensation (C3) program was initiated and Kent Beck was brought on to the project to improve the performance of the system.
  • Understanding Q# Programming LanguageJan 05, 2018. In this article I going to give basic information to understand the Q# Programming Language.
  • Using Collection In KotlinJan 02, 2018. Collections are used to store groups of related Objects in memory. Like java, kotlin also supports collection frameworks.
  • Intelligent Image Object Detection Bot Using Cognitive Computer Vision APIJan 02, 2018. Microsoft Cognitive services is set of cloud based intelligence APIs for building richer and smarter application development. Cognitive API will be used for searching meta data from Photos and video and emotions, sentiment analysis and authenticating speakers via voice verification.
  • Getting Started With React ProgrammingJan 01, 2018. React is a JavaScript library for building user interfaces. It was developed by Facebook to facilitate building with interactive, stateful and reusable UI components.
  • Getting Started With Q# Programming Jan 01, 2018. In this tutorial, you’ll learn how to build your first simple “Hello World” Q# app. Just follow these following steps.
  • How To Display Analog Clock Using BoxView In Xamarin.FormsDec 29, 2017. Although Xamarin.Forms doesn&#39;t have a vector graphics programming interface, it does have a BoxView. Although normally used for displaying rectangular blocks of color, BoxView can be sized, positioned, and rotated. This is enough to render a classic analog clock.
  • What And How Of Requirement Gathering - Part TwoDec 27, 2017. Prototyping allows gathering information by faking the production environment. In this technique, quite a lot of tools can be used to collect information, such as software programs to monitor/record mouse clicks or keystrokes, camera to monitor visual activity.
  • Understanding Data Structures - Linked ListsDec 26, 2017. In this article we will go through the basics of linked list data structure and implementation of it in various programming languages like C, C++, C#, Java, Python, VB.Net
  • Kendo UI TreeList Remote DataBinding With ASP.NET MVC 5 Using ASP.NET WEB APIDec 24, 2017. This article tells you how to construct the kendo TreeView with complex JSON object, which is the response of the REST API developed using ASP.NET Web API.
  • Fluent Validation With MVVM In Xamarin Forms ApplicationDec 22, 2017. Fluent Validation is used to create the validation logic separate from business logic for any type of objects you want to validate.
  • Validating User Input Using Regular Expression With C#Dec 22, 2017. In this article, you will learn how to validate user input using Regex class with C# Programming language
  • Some Useful JavaScript Methods, Variable And Objects In Sharepoint 2013Dec 21, 2017. In my previous blog, I explored _spPageContextInfo variable properties. This time, I am exploring some SharePoint-provided useful methods and objects in JavaScript.
  • Getting Started With Apache SparkDec 18, 2017. In Big Data, Hadoop components such as Hive (SQL construct) , Pig ( Scripting construct), and MapReduce (Java programming) are used to perform all the data transformations and aggregation . Now with Apache Spark the same is being achieved with many more advantages like unified API performance, and support for multiple languages, 10X-100X faster than MapReduce.
  • Swift Programming - Zero To Hero - Part TenDec 15, 2017. In this article, I have shared Enumeration concept in Swift Programming.
  • An Introduction To Quantum ComputingDec 13, 2017. In this article, I am going to cover some of the basics of Quantum computing and also set up an environment on our local machine with Visual Studio 2017 to get started with Quantum programming.
  • Swift Programming - Zero To Hero - Part NineDec 13, 2017. In this article, I have shared some details about Design Patterns in Swift Programming.
  • Swift Programming - Zero To Hero - Part EightDec 12, 2017. This is Part Eight of Swift Programming - Zero To Hero Series. In this article, we will learn about Return Type &amp; Tuples in swift.
  • Using Lazy<T, TMetadata> In Dependency InjectionDec 11, 2017. Lazy&lt;T,TMetadata&gt; is a type provided by MEF to hold indirect references to exports. Here, in addition to the exported object itself, you also get export metadata, or information that describes the exported object.
  • Implement Symmetric And Asymmetric Cryptography Algorithms With C#Dec 09, 2017. How to encrypt and decrypt data using Symmetric and Asymmetric algorithms using C# Programming language
  • Socket.io Programming With Example In Node.jsDec 08, 2017. Hello every one today I will explain about socket.io in Node JS
  • Object-Relational Mapper For SQLite3 In Node.jsDec 07, 2017. Node.js is getting more popular day by day and many frameworks and platforms are supporting Node.js for its high-performance web server development. In this post, you will learn the database development in Node.js with the popular ORM library; Sequelize.
  • Understanding Classes In KotlinDec 07, 2017. In the above example, I have created a nested class ‘Nestedclass’ which has a data member ‘b’ and a member method show(),now the object of nested class can access member of nested class only.
  • Aspect Oriented Programming In C# Using DispatchProxyDec 06, 2017. Example of implementing logging using Aspect Oriented approach with DispatchProxy class.
  • Object Comparison In C# - Part Two [N Level Down List Comparison]Dec 02, 2017. This article will demonstrate the comparison of the objects (or list of objects) with n level down list comparison.
  • Comparing Objects In C#Nov 29, 2017. In this article, we are going to compare two objects of the same class having collection property or multiple collection properties.
  • Angular Components And ModulesNov 23, 2017. In programming terms, Modules can be described as the self-contained chunks of the functionality in your application which can run independently. In Angular, Modules are the collection of the components, services directives, and Pipes which are related such that they can be combined to form a module.
  • Xamarin.Android - Text Recognition By Mobile CameraNov 20, 2017. Mobile Vision is an API which helps us to find objects in photos and video, using real-time on-device vision technology.
  • Introducing Visual Studio Live ShareNov 18, 2017. With Visual Studio Live Share you and your teammates use the same debugging session. You can collaboratively step through code or set breakpoints which are reflected in your teammate’s editor in real time. Each of you can independently inspect objects, use features like tips on hover, locals and watches, or make changes to an object’s value. When you are ready to make a fix, simply edit the code and your teammates will see your edits in their editor.
  • Create App Using Xamarin.Android Using C# - Part FourNov 17, 2017. Xamarin.Android has native user interface controls. These controls can be easily added to Xamarin.Android apps using the Android Designer or programatically via XML layout files. Xamarin.Android exposes all of the user interface object properties and methods in C#.
  • Two Way Data Binding In Angular Without $scope Object Using MVCNov 16, 2017. Data binding is the most useful and powerful feature among any of the existing or upcoming software development technologies. It is actually a process that bridges a connection between the view and business logic of the application.Basically we will see one-way and two-way data binding with respect to AngularJS applications. But before we jump to that section we will try to learn something about the scopes in AngularJS.
  • How To Schedule Timer-Based Callbacks With ExampleNov 16, 2017. In this article, we will look at how the JavaScript timer functions - settimeout, setinterval, and Cleartimeout -- are used to schedule and cancel timer-based Callbacks, with a simple example of stopwatch program.
  • Dependency Injection In AngularNov 14, 2017. Let us assume, if we want to build a Home. To build a Home we need several objects like bricks, wood, concrete, iron etc. To keep this example simple let&#39;s say we just need a bricks object to build a Home.
  • DROP IF EXISTS In SQL Server 2016Nov 13, 2017. With this very small but handy tip, we’ll check the enhancement that has been made to DROP statement in SQL Server 2016. Earlier, we used to write additional checking logic to make sure that the object exists to drop. If we miss writing the check and if the object is not available, then we are being served with an error message. With SQL Server 2016, now we can check the existence of the respective object without any error being generated.
  • Learn Universal Windows Programming Via Modern C++ (ProgressRing)Nov 13, 2017. This article explains how to implement the Progress Ring Control.
  • How To Lock Objects In Power BINov 11, 2017. Sometimes, there is a situation where when we open a report and click on any visuals, it accidentally nudges a chart a little bit to the right or left. Sometimes, by mistake when end user viewing a report, arrangement of visuals scatters little bit. Microsoft rolls out one new amazing feature to resolve this issue and that is Lock Objects in Power BI.
  • Enums In C#Nov 09, 2017. Suppose we are creating a program in which we have to use multiple named constants of similar type and on the basis of a particular constant we have to perform some operation. So what we normally do is initialize each named constant with a value. This may require a lot of effort if the number of constants is large. Also the look and feel of the code is not up to the mark. Have a look at the below program to understand more. The program contains months of the year. We have to put lots of effort to assign each month to a value.
  • Important C# Evolutions You May Not KnowNov 08, 2017. Since the announcement of the number one Microsoft language in 2000, many developers get interested in this language evolutions for many reasons but the main one was that C# is intended to be a simple, modern, general-purpose, object-oriented programming language.
  • Using Objects Comparer To Compare Complex Objects In C#Nov 07, 2017. Objects Comparer framework provides a mechanism to compare complex objects, and allows us to override comparison rules for specific properties and types.
  • Retrieve SharePoint Lookup Field Value Via C#Nov 07, 2017. Get and set a SharePoint Lookup Field via SSOM C#. In this article, I have explained how to get &amp; set SharePoint lookup field (single/multiple) values programmatically via Server Side Object Model in C#.
  • Debugging Tips - Part ThreeNov 06, 2017. While working on a complex code, we often come across situations where you need to debug lots of code to find/fix the issue(s). That also includes going through lots of methods (probably related or unrelated). .NetFramework provides a way to avoid unwanted &quot;Step in&quot; through the methods. Using DebuggerStepThrough (using System.Diagnostics) attribute, you can skip debugging of unwanted methods and reduce the debugging time to some extent.
  • Binding DropDown List Using Tuple In ASP MVCNov 05, 2017. Tuple is a generic static class that was added to C# 4.0 and it can hold any amount of elements, and they can be any type we want. So using tuple, we can return multiple values.One great use of tuple might be returning multiple values from a method. It provides an alternative to &quot;ref&quot; or &quot;out&quot; if you have a method that needs to return multiple new objects as part of its response.
  • Learn Universal Windows Programming Via Modern C++ (DispatcherTimer)Nov 01, 2017. DispatcherTimer is a timer control, that is integrated into the Dispatcher queue, Timer event is called in a specific timer interval, the main advantage DispatcherTimer, it can run the code on the same UI thread.
  • Learn Universal Windows Programming Via Modern C++ (ProgressBar)Nov 01, 2017. ProgressBar indicates that some operation is going on in the background.
  • Learn Universal Windows Programming Via Modern C++ (RelativePanel)Oct 31, 2017. Here, I have explained how to implement RelativePanel control in C++/WinRT.
  • Getting Started With Azure Cosmos DBOct 29, 2017. Azure Cosmos DB is a globally distributed database service designed to enable you to elastically and independently scale throughput and storage across any number of geographical regions with a comprehensive SLA. You can develop document, key/value, or graph databases with Cosmos DB using a series of popular APIs and programming models.
  • Debugging Tips - Part TwoOct 27, 2017. While working on complex classes/objects, it really takes two more clicks to either add that object to the Watch window or expand the object in visualizer and navigate to a specific property.
  • Event Capturing And Bubbling In JavaScriptOct 25, 2017. The DOM has two approaches for object to sense events: first is top down approach and second is bottom up approach. Top down approach is called event capture whereas bottom up is known as event bubbling.
  • Simple Single Side Traffic Controller Using Timer ControlOct 25, 2017. This is a simple article for beginners who are getting introduced to C# programming in which they will learn how to code using Timer control inside Windows form
  • Debugging Tips - Part OneOct 24, 2017. A cool attribute to save some debugging time is DebuggerTypeProxy (Namespace: System.Diagnostics). Using this attribute, you can write your own logic to interpret the object at debug time. Meaning, if you have a list of class objects then you can project on certain properties and force debugger to show the value off of this proxy class. This attribute is applicable to Structures, Classes and Assemblies.
  • Learn Universal Windows Programming Via Modern C++ (Grid Control)Oct 23, 2017. This article explains about Grid control in Modern C++/WinRT. Grid control is used to arrange the controls in multirow and multicolumn layouts (stackpanel is use arrange controls in horizontal or vertical).
  • Learn Universal Windows Programming Via Modern C++ (ContentDialog)Oct 22, 2017. This article explains about Content dialog in C++/WinRT. It forces the user to get the input (whether success or failure) until the user cannot interact with Parent windows.
  • Learn Universal Windows Programming Via Modern C++ (AutoSuggestBox Control)Oct 19, 2017. In this article we&#39;ll learn how to implement AutoSuggestBox and some of the important events and properties.
  • Swift Programming - Zero To Hero - Part SevenOct 19, 2017. This is Part Seven of the &quot;Zero to Hero&quot; Series. In this article we will learn about Functions and Tuples.
  • User-Defined Types In SQL ServerOct 13, 2017. When we are working with any programming language, we create user defined types as per our requirement. It is a better idea to have this feature in the SQL server.
  • Understanding Computer Vision API In AzureOct 11, 2017. The Computer Vision API gives you the tools to understand the contents of any image. Create tags identifying objects, beings, or actions present in the image, and then craft coherent sentences to describe it.
  • Learn Universal Windows Programming Via Modern C++ (CommandBar Control)Oct 11, 2017. In this article, we are going to learn about CommandBar control in Modern C++. The CommandBar control is a new control in Universal windows programming, it’s a like a Toolbar control, it has more features compared to Toolbar control.

About Object-Oriented-Programming

NA
Hire a remote developer
Looking to add more bandwidth to your software team? Web Developers, designers, testers are now available on demand. Flexible hours, very competitive rates, expert team and High Quality work.
X

Build smarter apps with Machine Learning, Bots, Cognitive Services - Start free.

Start Learning Now