The .Net Core and accompanying technologies like ASP.NET core and EF (Entity Framework) Core have moved rapidly become more relevant and capable compared to their corresponding Windows only technologies. .Net Core technologies work across Windows, Linux and Mac OS. The cross platform nature of the .Net Core technologies means that a pragmatic approach is required while also keeping an eye on how major and breaking changes are introduced in each major release.
This blog post aims to demonstrate how to migrate an existing, simple, hobbyist application from ASP.NET core 1.1 to ASP.NET Core 2.0 (specifically). However, this process will also serve to understand the underlying architecture of the technologies that are used and show how they have changed.
Note: It may cover aspects of the .Net Framework (the Windows only implementation of these technologies).
The .Net Standard
In layman’s terms, this is an attempt to provide a minimum guaranteed API level for any versions given of .Net. The most recent version, as of this writing, is .Net Standard 2.0.
For the impatient: TL;DR
.NET Standard solves the code sharing problem for .NET developers across all platforms by bringing all the APIs that you expect and love across the environments that you need: desktop applications, mobile apps & games, and cloud services:
- .NET Standard is a set of APIs that all .NET platforms have to implement. This unifies the .NET platforms and prevents future fragmentation.
- .NET Standard 2.0 will be implemented by .NET Framework, .NET Core, and Xamarin. For .NET Core, this will add many of the existing APIs that have been requested.
- .NET Standard 2.0 includes a compatibility shim for .NET Framework binaries, significantly increasing the set of libraries that you can reference from your .NET Standard libraries.
- .NET Standard will replace Portable Class Libraries (PCLs) as the tooling story for building multi-platform .NET libraries.
- You can see the .NET Standard API definition in the dotnet/standard repo on GitHub.
From: Read through the introductory material of the .Net standard.
My first foray into learning Java is still on my mind and some of that effort have appeared here. However over the span of almost a decade a number of developments have happened in the Java eco-system and I thought I revisit that effort with more focus on the tool chain.
Java has been an interest platform since it’s inception and much of the interest is not necessary driven by the current owners of the core patents, but innovations spring forth from a wide community. However, the renewed interest in how I used to learn is not limited to IDEs because increasingly being cross platform requires a certain degree of savviness with command prompts.
A Little Context
- Java is at Java 8, with the imminent release of Java 9: these feature fundamental changes to how the platform works and runs.
- Cloud computing has becoming central to how platforms and architectures work;
- Open source Java eco-systems have had interesting contribution to how the official Java releases evolve over the years. A specific example would be the implementation of java.time.*
- Java EE is coming along nicely most of the time and the aforementioned open source community have some interesting innovations on top;
- When I was trying to understand JPA, xml configuration was all over the place and yes, tools like Netbeans seems to look more like evolving into VB 6 like IDEs
- With the popularity of Git and the supporting services, code sharing can be used as a teaching and/or learning tool; gradually and incrementally.
The new Technologies I am thinking of gradually building into this new take would be:
Within the context of the previous tutorials
- Built management tools like Gradle/Maven
- Version code control systems (mainly Git)
- Collaborative online efforts that uses multiple branches (when and if possible connecting to similar issue tracking systems), with Git at it’s heart.
As a summary, much of this can be described in a readme.md file of Git repository! How search engines discover interesting subjects for beginnings to fix a single line of code makes me wonder.
In recent years machine learning has been making inroads into what used to be human domains. However, Microsoft’s recent experience with its chatbot known as Tay revealed something every more interesting about what it means to be human and/or even attempting to mimic human.
While natural language processing has been the biggest challenge for computer scientists and artificial intelligence researchers alike, in recent memory it is increasingly become evident that machine learning can overcome earlier limitations. While this may be largely because of improvements in hardware and software designs and tools, it has nonetheless open up many possibilities. It is from these advances that systems like Watson, Siri, Google Now, Cortana etc have made into the market. Machine learning, combined with machine visionary has given rise to autonomous vehicles with varying capabilities.
However, while these systems are taught to learn a limited set of rules e.g. the structure of sentences in order to extra meaning or traffic rules in combination with detection and identification of obstacles, it has become increasingly obvious that NPL works within the broader context of human society which means that many of what passes for rules are neither hard and fast nor rigidly imposed. Humans are equally adept at processing norms and mores as they are in processing grammar and traffic rules. More importantly humans also possess the ability to create their own meaning and context because of what the possible fall out of not adhering to social norms would be.
Tay was able to learn but could not project it’s own objective in the conversation in which in participated; that simple fact made it easy for people to have it say things that are not polite. That is not the end of the story though: this entire episode only serves to highlight the fact that understanding a sentence does not mean appreciating the impact of the sentence on an audience. While many, including the designers and developers of Tay, will definitely be looking at what went wrong, the more interesting part is that perhaps we need other disciplines to enter into the effort of adding more nuanced abilities to AIs that will have to operate along side human beings.
At the moment, the main point of departure for most of the expanded effort to integrate AI into human society is laws and ethics. However the proper point of departure should be building in more abilities for AIs to appreciated the nuances of human society. The truth of the matter is that we as a species are not great at being governed by laws and/or being ethical. It is a matter of appreciating human nature as it relates to laws and ethics generally. As many have noted the greatest risks that AI (in their current form) pose is from human beings themselves.
The more worrying aspects of not getting the law and ethics angle of AI right in the first place is that it will tap into the disturbing human capacity to feel less responsibility for actions and decisions made on your behalf. Very few people have the conscience to question, at the very least, laws that are clearly unethical.
Microsoft Tay was an experiment first and foremost though unleashing on the greater internet may have been premature in the process. That misstep is a testament to the fact that there is gradually more confidence in the abilities of machine learning algorithms. The embarrassment created by Tay seems to suggest that people increasingly related to AIs as if they are people, in a general sense, though it is more likely a question of wondering what Microsoft was trying to do.
I have neglected this blog for some time and it is only now that am realizing that it is an interesting way to explore subjects about the changing nature of social media and/or the content they carry. Of course, returning back to blogging also mean that evolution of technologies may have more impact on social norms. I suppose that is obvious but I have always wondered about the thinking behind previous choices and decisions.
There are some pieces of code on this blog that once expressed an interest in coding; I still write code and try to educate myself about better ways of approaching old challenges. Some of the experiments lead to an interesting set of challenges that simply need to be translated into code; even more interesting is upgrading old code and/or the thinking that informed that thought is fascinating in it’s own right.
I take an interest in subjects like God and any form of deity simply because they are not that easy to discern and will necessarily take a long time to figure out.
One of the more telling aspect of the nature of God is the afterlife. Accept the notion that there is a creator of existence but then also consider the prospects of said creator condemning its creations to either live in perpetual joy or agony is childish. However, that promise remains central to what believers do or do not as it were.
Central to the understanding of the afterlife is the idea of eternity. Eternity for a creator is not a problem since there are many ways to achieve the same end in some fashion. The more impressive bit of it is that as a creator, it is entirely possible to hide your eternity in your creations.
Every single person who believes that there is a creator, keeps the creator alive and well for as long as the species continue to exist. That said, don’t discount the idea that evolution does not serve the same function of creating ever more rationally capable beings in the process. That is eternity simple and logical.
The next more interesting question is why individuals so created attach so much importance into something that is fundamentally against their very nature of existing. It boils down to this, do you want to fight God and if your answer is yes then it would be interesting to hear more about how you are progressing in your effort. However, also giving yourself completely over to God is somewhat unworthy of you as you have been created.
To put it more simply, the kinds of things that you will do to offend God may ultimately be something that you are doing to please yourself and as such God has very little to do with it. Yes, if you are displeasing too many people – there is all chance that your objective intention can and will be defeated; it is not an act of the devil. However, it does mean that there people who are opposing your intentions. I do allow myself to see what other people think of me for just that kind of an outcome.
I was reading an article about the so called “leftover women” in China. The article was interesting because it mentions a figure of 34 million surplus men in China. Basically, there are 34 million more men in China and there are “leftover women”. Interesting paradox you would assume so the article should have more about what it is about these “leftover women”.
The ladies interviewed for the article (and the following documentary) are highly educated are financially secure. It would be wrong not to take into account what the article refers to as a “chauvinistic society” in China while trying to understand the paradoxical problem of “leftover women” while there are an excess of men in the society.
My main interest in this comes from a couple of points:
- Nature of Society
I have asked a couple of married people why they are married and did the same with those aspiring to be married. The answers I have gotten so far are adequate for those who are married and those who are about to get married. The answers can range from human beings are not suppose to be alone to what society expects. However, none of those answers reveal the fundamental personal motivation for it.
For sometime, I have considered the human beings are not suppose to be alone. The ultimate goal of not being alone should much up to the kind of effort and dedication that a marriage requires – regardless of the ups and downs that are sure to come along the way. You just can’t revert back to being alone – that is not the purpose of marriage.
Don’t get it wrong, the presence of a father and mother is hugely important to raising children but that does not constitute enough reason for marriage. Consider marriages that have resulted in divorce; divorces have happened whether there are children or not. The fundamental notion is that marriage is not about the children but the two people who enter into it. Children do add value to the marriage and make it meaningful as life objective but the motivation of the two people in the marriage matters more.
Not being alone seems to be a legitimate desire to have and as such basically provide each other with companionship and company. In cases where marriages fail, would it be because the objective of not being alone has not been fulfilled? The other side of that question would be that the idea of being together in the marriage becomes far too damaging as compared to being apart. That is the point of view of marriage that interests me: there are people who have no business being married.
For those who are single and would like to get married, a good consideration to look at is: are capable of being alone? If you can stand yourself, then there is a high chance that someone would stand you and/or you would understand the demands and needs of being with you. Well, I suppose that level of personal growth would also work for those already in a marriage.
One of the much vaunted consideration for a spouse is the so called compatibility. This can range from education, wallet size and many others. Here is something to take into account in addition to all the usual considerations: your level of education and wallet size does not mean that you are a bad or nice person. The commonly understood notion of compatibility requires that people of similar education and financial wealth would be more successful. All the attributes belong to an individual who can either be profoundly secure with himself or herself such that they can appreciate a different point of view of their own. Being highly educated is not a guarantee of intelligence – given the fact that higher educated you are, the narrower your field of knowledge. If you are expert in nano fabrication processes, it does not mean that you are a particularly decent human being and/or makes a good spouse. There are of course those who are fundamentally good people so can adjust and make it possible to live a productive and successful life with someone else.
It is usually interesting that sometimes the level of education of a person is used to suggest and indicate their total human value and worth. Education in this context would range from having certificates, diploma, degrees (masters and PhD). Education can just as well include experiences out of the lecture hall or classroom. If not made clear, here is a repetition: high education achievement and significant wealth does not make a person fit to be in a marriage. Yes, by all means that is a great achievement but that does not directly translate into a good spouse.
Nature of Society
There are a number of ways to describe a society: patriarchal, matriarchal, tribal, chauvinistic etc. However, if any of those descriptions are related to gender then it is required to admit that one of the two genders will be dominate or be dominated. Gender equality or equity is a pipe dream which simply can not exist because you have no practical way to manage it. That said, an egalitarian society is essentially possible and preferred but that requires that both genders get to a point where none of them feel dominated.
The description of the problem is not the problem neither is it a good indicator for the best possible solution. Attempt to describe the running and day to day activities of an egalitarian society. Nobody is deliberately marginalized because there is enough to go around and provide for everyone. More importantly it becomes a question of how to go about achieving an objective.
A society that aspires to become egalitarian strives to provide opportunities to everyone within its jurisdiction. However a society that strives for gender equality or equity generally runs the risk of ever having to create that balance.
While at school, way before the global economic crisis, we touched on globalization. As a class that had to be passed it was a matter of understanding the material and thinking “wow” this idea may actually only end up making the world a better place as more capital will flow to areas where it is needed and the developed economies get some breathing room by providing products and services that are already available in their advanced markets. This, of course, only works through the multinationals mostly and as such mega corporations are spreading to developing countries looking for mostly extractive natural resources. There are some multinationals that were (and perhaps still) are adapting their products to the less well off customers in some specific developing countries.
Fast forward to the recent past and I came across some research papers and opinion pieces that were anti-globalization. The aforementioned past is close to when “words” like “credit crunch” and collapse of large banks like Lehman Brothers was in the news cycle everyday. Speaking of news, financial journalists like to state that “if the US sneezes the rest of the world catches a cold”. The world largest economy went into a recession (rumours are that it is growing at the moment so let us hope this growth is sustainable) and started borrowing heavily from the world’s second economy (China); that debt should stand in the trillions by now. The problem spread to Europe and it is still being dealt with at the moment through various economic trickery and theories (can you say “quantitative easing”?).
Globalization has been catching on for quite sometime that most economist and those appointed to run economies that span and affect the global economy forgot the basis of sound structural design. More specifically, if you are going to have an economy that will span the rest of the world you need to have some built in resilience. It is not that recessions will not happen but if and when a recession does occur it can be limited; more importantly the other less affected economic zones of the world can adequately come to rescue those in trouble (without saddling future generations with enormous debt to pay).
Recessions have consequences on the social and political fabric of society. Case in point: there should be no pretence about any robust democracy in Greece at the moment. They will have laws enacted and elections held but most of the more relevant decisions that government takes are directed by the so called Troika (IMF, EU and Germany). For all intends and purposes of the problems that led Greece into her current predicament look like something you would have expected of a developing country: tax evasion with people generally not getting caught or at least taken to court? In the European Union, Greece may be the extreme case but other Southern European countries are also more or less in some economic stresses: Spain, Portugal, Italy and to a less extend France. Am not entirely sure if this has some connection with the nature in which the European Union is designed and operated; the EU is a supranational entity that allows its individual members to operate their own government and politics specific to them. Competition among the individual members is high and usually decisions are committee and consensus based which means that acting decisively during a crisis is something that can only be hoped for.
According to the academics, the current recession in the US was brought about law makers who thought it fit to repeal laws that were meant to ensure the robustness and resilience of the financial industry – at least by ensuring the savings of American’s remain safe from any kind of financial engineering. To be fair and balanced, it would seem like the law makers may have been lobbied into removing these safe guards. A casual observer of the current state of the America economy will realize that the financial industry has largely come unscathed from it all though Americans still continue to endure economic hardships; don’t forget that no senior official in industry has been persecuted for what is increasingly looking like negligence on part of the industry’s main players. Corporations with global power and reach decide to change the manner in which the landscape of the law – mind you laws of a superpower, not some backward third world country.
Still on the subject of the fragility of a global economy: in the year 2012, Africa had 6 out of the 10 fastest growing economies. It was noted that the fact that Africa is not fully plugged into the global economy may have lessen the effects of the global economic crisis on these countries. Most of the involvement that the continent – more so the sub-Sahara bit of it is through extractive natural resources mainly. Much of the revenue that come from the continent would of less interest to global players in the financial industry and so not much shenanigans was brought in. However, also more importantly I think – during the recession in much of the developed economies of the west, much of sub-Sahara Africa may have experienced a drop in aid funding which means that the only way to get out of that particular problem is to develop a viable economy that is less dependent on aid. Hopefully with any lack, this is a permanent shift in the fortunes of the continent. Of course with that, there comes the temptation that Africa will also become deeply embedded in the global economy.