OpenSource library- Breaking changes
Part 1 |
|
Part 2 |
|
Part 3 |
|
Part 4 |
|
Part 5 |
|
Part 6 |
|
Part 7 |
Following guidance from https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/breaking-changes
Nr |
Recomandation |
AOP Roslyn |
1 |
DO think about how your library will be used. What effect will breaking changes have on applications and libraries that use it? |
|
2 |
DO minimize breaking changes when developing a low-level .NET library. |
|
3 |
CONSIDER publishing a major rewrite of a library as a new NuGet package. |
|
4 |
CONSIDER leaving new features off by default, if they affect existing users, and let developers opt in to the feature with a setting. |
|
5 |
DO NOT change an assembly name. |
|
6 |
DO NOT add, remove, or change the strong naming key. |
|
7 |
CONSIDER using abstract base classes instead of interfaces. |
|
8 |
CONSIDER placing the ObsoleteAttribute on types and members that you intend to remove. The attribute should have instructions for updating code to no longer use the obsolete API. |
|
9 |
CONSIDER keeping types and methods with the ObsoleteAttribute indefinitely in low and middle-level libraries. |
Unfortunately, AOP Roslyn is not in the stage of breaking changes. But I have had another library, Exporter, and I have had made 3: CONSIDER publishing a major rewrite of a library as a new NuGet package
Friday Links 302
[ADCES] Post Event AzureDevOps
I have had a presentation at ADCES ( https://www.meetup.com/Bucharest-A-D-C-E-S-Meetup/events/257585167/ ). It was about AzureDevOps, Angular and .NET Core – real world scenario to create a build from GitHub application . The Example will be Stankins pipeline , https://github.com/ignatandrei/stankins/blob/master/azure-pipelines.ymlYou can find the presentation at https://github.com/ignatandrei/Presentations/tree/master/2018/shorts/AzureDevOps
See you next time!
OpenSource library-versioning
Part 1 |
|
Part 2 |
|
Part 3 |
|
Part 4 |
|
Part 5 |
|
Part 6 |
|
Part 7 |
Following recommendations from https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/versioning
Nr |
Recomandation |
AOP Roslyn |
1 |
CONSIDER using SemVer 2.0.0 to version your NuGet package. |
NO |
2 |
DO use the NuGet package version in public documentation as it’s the version number that users will commonly see. |
Yes |
3 |
DO include a pre-release suffix when releasing a non-stable package. |
No |
4 |
CONSIDER only including a major version in the AssemblyVersion |
Yes |
5 |
CONSIDER keeping the major version number of the AssemblyVersion and the NuGet package version in sync. |
Yes |
6 |
DO NOT have a fixed AssemblyVersion |
Yes |
7 |
CONSIDER including a continuous integration build number as the AssemblyFileVersion revision |
Not needed |
8 |
AVOID setting the assembly informational version yourself. |
Yes |
For 1: I do not like SemVer. It is putting some pressure on the developer of the OpenSource. So I decide to follow Calendar versioning https://calver.org/
For 2: Yes, it is normal.
For 3: No, I do not like pore-release.
For 4: Yes – the year is major
For 5: Yes, done by CI process
For 6: Yes, done by CI in Calendar Versioning
For 7: NO. And , because of Calendar versioning, it is already done, if I do not publish 2 versions in the same day
For 8: Do nothing – and it is done.
Friday Links 301
OpenSource library- publishing
Following the rules at https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/publish-nuget-package
Nr |
Recomandation |
AOP Roslyn |
1 |
DO publish stable packages and pre-release packages you want community feedback on to NuGet.org. |
Done |
2 |
CONSIDER publishing pre-release packages to a MyGet feed from a continuous integration build. |
No |
3 |
CONSIDER testing packages in your development environment using a local feed or MyGet. Check the package works then publish it to NuGet.org. |
Yes |
4 |
DO use a Microsoft account to sign in to NuGet. |
Yes |
5 |
DO enable two-factor authentication for accessing NuGet. |
Yes |
6 |
DO enable email notification when a package is published. |
Yes |
For 1: Done already. However, I do not like pre-release packages
For 2: Too much hassle for a single developer. Using instead NuGet
For 3: Yes , I have already a build.bat to do this
For 4: Yes.(NuGet allows only that now)
For 5 : Yes
For 6: Yes.
Friday Links 300
My Tools in 2018
Next time I will make the tools better, for having the URL next to them. For the moment, you can google/bing/duck them .
However, those are the most used tools by me in 2018:
-
Utilities
- Browsers
- Firefox
- Edge
- IE
- Chrome
- RemoteViewers
- TeamViewer
- RemoteDesktop
- angular-cli-ghpages – npm
- glogg
- Abiro PhoneGap Image Generator
- Browsers
-
IDE / Editors
- Visual Studio Code
- Visual Studio 2017
- SSMS for SqlServer
- Notepad++
-
Misc
- Organizer
- rescue time
- Cronofy for trello -sync with google calendar
- Trello – major projects
- Todoist – shopping list
- Sites
- http://www.picturetopeople.org/text_generator/others/transparent/transparent-text-generator.html
- wikipedia
- http://www.webgraphviz.com/ – display dot languge
- Linkedin – CV
- Communications
- meetup.com
- Outlook
- Slack
- Gmail – email
- Yahoo – email
- Skype
- Decompiler – IlSpy – https://github.com/icsharpcode/ILSpy/releases
- Presentations
- https://remarkjs.com
- Organizer
-
Hardware
- Surface PC
- Android Phone
-
Development
- Office Addins
- Outlook vba alerts
- https://docs.microsoft.com/en-us/office/dev/add-ins/quickstarts/excel-quickstart-angular
- https://github.com/OfficeDev/generator-office
- https://github.com/OfficeDev/Word-Add-in-Angular2-StyleChecker/blob/master/app/main.ts
- ChromeAddons
- Export for Trello
- OneTab
- Todoist
- Angular components
- office-addin-validator
- @angular/material
- Javascript components
- https://mermaidjs.github.io
- https://github.com/adrai/flowchart.js
- https://appsforoffice.microsoft.com/lib/1/hosted/office.js
- .NET Packages
- simpleinjector
- ScriptCs.Octokit
https://github.com/alfhenrik/ScriptCs.OctoKit - Octokit
https://github.com/octokit/octokit.net - dotnet tool install -g DotnetThx
- Razor interpreter : https://github.com/toddams/RazorLight
https://www.nuget.org/packages/RazorLight/ - dotnet gcr
- dotnet aop
- Roslyn
- https://github.com/crozone/FormatWith
- xunit
- Newtonsoft.json
- RestSharp
- MediatR
- https://fluentassertions.com/examples/
- https://github.com/shouldly/shouldly
- swagger
- Microsoft.Exchange.WebServices
- continous integration
- Jenkins
- https://github.com
- https://www.bitrise.io/
- https://ignatandrei.visualstudio.com/
- https://codecov.io
- https://ci.appveyor.com
- Frameworks
- Angular
- Cordova
- .NET Core
- typescript paste extension visual studio
- Docker
- Portainer
- Office Addins
-
Newsletters
- Code project
- Asp.net weekly
- R Weekly
- Code project
- DNK Daily
- JSCRipt daily
- JavaScript Weekly
For 2019, the list is public at https://trello.com/b/3O1fFpcl/tools2019
Detailed list about my activities in programming in 2018
This is what I have done in 2018:
Base learning
- Angular
- R
- CI /CD with Azure DevOps Syntax base
- Roslyn
- .NET Core
Presentations:
- Continuing the presentations about Design Patterns ( course )
- Various Presentations ( ROSLYN AOP, Introduction to R, Messaging with MediatR)
- Presenting at OWASP : Top 10 OWASP and counter attacks in .NET Core
- Presenting at Code Camp Bucuresti .NET Core and Angular – deploy on Windows, Android, Linux ( Mac + iOS) : https://github.com/ignatandrei/AngNetCoreDemo
Free Projects :
- Literary Awards – full javascript, database in the browser
Site Web: https://ignatandrei.github.io/LiteraryAwards/
Android :https://play.google.com/store/apps/details?id=com.msprogrammer.com
- ONG Declaration for Romania
GitHub : https://ignatandrei.github.io/Decl230/
Android: https://play.google.com/store/apps/details?id=decl203.msprogrammer.ro
Starting Stankins v2 : https://github.com/ignatandrei/stankins , Live Demo at https://azurestankins.azurewebsites.net
Components:
- AOP_With_Roslyn – .NET Global Tool for AOP with ROSLYN
GitHub :https://github.com/ignatandrei/AOP_With_Roslyn
NuGet: https://www.nuget.org/packages/dotnet-aop
- AspNetCoreImageTagHelper – .NET Core for base 64 images
GitHub: https://github.com/ignatandrei/AspNetCoreImageTagHelper
NuGet: https://www.nuget.org/packages/AspNetCore.Mvc.ImageBase64/
Mentioned on https://github.com/aspnet/Mvc
- Versions For .NET Core written in Angular:
NPM : https://www.npmjs.com/package/versions-netcore-angular
Live Demo: https://azurestankins.azurewebsites.net/about
Books:
- Copy Paste from StackOverflow https://www.amazon.com/Smart-Paste-Stack-Overflow-other-ebook/dp/B01EHI5RQM/ref=as_sl_pc_as_ss_li_til?tag=httpwwwservic-20&linkCode=w00&linkId=0e7a847fae56ecb099930f4094a8fd53&creativeASIN=B01EHI5RQM
- Making an Open Source Component: from idea to final users With examples from .NET Core : https://www.amazon.com/Making-Open-Source-Component-examples-ebook/dp/B07H96W9RK/ref=as_sl_pc_as_ss_li_til?tag=httpwwwservic-20&linkCode=w00&linkId=58ac8922ce5e709e0f149076178343a4&creativeASIN=B07H96W9RK
( free download at http://msprogrammer.serviciipeweb.ro/2018/09/03/making-open-source-component-from-idea-to-deploy-with-examples-from-net-core/ )
Various:
- Organizing ADCES meetups in Bucuresti , https://www.meetup.com/Bucharest-A-D-C-E-S-Meetup/
- Making my own .NET Core Course
- Making a course about Design Patterns
- Blog Posts: http://msprogrammer.serviciipeweb.ro/2018/
- Organizer .NET Conference in collaboration with https://www.dotnetconf.net/local-events
- NET Forum moderator: https://forums.asp.net/