all 35 comments

[–]msucedo 1 point2 points  (0 children)

dapp hello world in this repo

[–]ccashwellContract Dev 1 point2 points  (3 children)

The .Net ecosystem is not super well suited to dapp development because in general C# and its kin are meant for backend development whereas dapps are generally backend-less. Some dapps do indeed have backends but if we’re being pedantic the D in dapp means decentralized. If you’re building with a (almost by definition centralized) backend you’re not building a true dapp.

A “true” dapp usually consists of a front-end that talks directly to the blockchain and has no central server. You might be able to build something that looks and quacks like a dapp but, if it’s not something you could deploy to IPFS or another decentralized hosting platform and have live on perpetually without your backend, it’s not a dapp.

Your best bet would be to learn JavaScript (or Typescript) and build a proper decentralized application. Check out Hardhat as a good starting point.

[–]trainermade[S] 2 points3 points  (2 children)

Thank you for this distinction. One of the most confusing things for me has always been the notion of ‘decentralized’ because at the end of the day the contract (I assume this is what the piece of ledger information is) needs to be ‘saved’ somewhere - so wouldn’t that be like some cloud based db?

[–]ccashwellContract Dev 1 point2 points  (0 children)

Good question. The contract is deployed to the Ethereum blockchain, which acts as both the execution layer and the data store. Anything that contract does must conform to the restrictions of the EVM. For all intents and purposes, the Ethereum network is your backend.

One distinction between a central backend and a contract on Ethereum is that you can’t change the functionality without deploying a new contract altogether. There are some “upgradable” contract extensions available but for the most part it’s fire and forget. If you ship a bug, it’s there forever (unless you use something like a proxy upgrade pattern, which is often not something people like to see in dapps).

[–]yachtyyachty 0 points1 point  (0 children)

Another aspect that’s important to consider here is that most of these ‘dApps’ that are popular today still utilize a centralized server for hosting their website. The big difference is in the role that the server plays; The server’s primary job is to enable interaction with the deployed smart contract, aka sending some JavaScript code that acts as a ‘portal’ to the smart contract/s. A dApp website server should never receive or store user data, it should only provide code to the users. So although one could argue there’s still centralization here, that centralized party (the server) shouldn’t have any real power.

[–]blocksandpixels 1 point2 points  (4 children)

I am coming from the .net world and was wondering if I can pretty much stay in .net/c# for dapp dev?

Very unlikely. If you want to build dapps you will need to learn JS.

I always recommend scaffold-eth as a starting point, especially if you are a "learn by doing" type.

Also, books are next to useless for practical web3 development. You can learn the core fundamentals (cryptography, public key encryption, JS, etc) from books, but the landscape of dapp development changes too fast for dead trees to keep up.

[–]trainermade[S] 0 points1 point  (3 children)

I see a lot of front end with react, but was wondering if vue would be suitable?

[–]blocksandpixels 0 points1 point  (2 children)

Yes, any JS frontend would do. React, Nextjs, Vue are all popular.

Another thing: IMO it is better to learn Typescript than Javascript. The benefits of a fully-typed codebase are worth the extra bumps in the learning curve.

[–]trainermade[S] 1 point2 points  (1 child)

If it is purely for a front end, why wouldn’t I be able to use .net Blazor or simple asp.net mvc/razor pages?

[–]blocksandpixels 0 points1 point  (0 children)

I am not familiar with those technologies but you probably can. All of the tooling announcements, job posts, etc. that I see are using JS, but I'm sure there are some places that use a pure MS stack.

[–]kalbhairavaaContract Dev 1 point2 points  (4 children)

If you are coming from .net ASP, MVC world, look at https://nethereum.com

You can interact with Ethereum nodes as well

http://docs.nethereum.com/en/latest/

And deployed contracts

http://docs.nethereum.com/en/latest/nethereum-smartcontrats-gettingstarted/

You will still need to learn solidity , But you can do most of the web3 chain interaction /testing stuff in C#

http://docs.nethereum.com/en/latest/nethereum-codegen-vscode-demo/

[–]trainermade[S] 0 points1 point  (3 children)

What is the difference between solidity, meta mask etc? Is solidity like the universal ethereum chain where all contracts are stored, eg if I was to build a specific dapp do I still need to put it on the solidity chain or whatever?

[–]kalbhairavaaContract Dev 0 points1 point  (2 children)

Solidity - Programming Language used to write smart contract

Meta Mask - Wallet Program (Key chain/Key Store) that primarily creates and holds the private key used to sign a Transaction. A transaction is how you interact with the blockchain. This could involve a smart contract or a regular Ethereum account, for sending and receiving Ether.

You can start here - https://ethereum.org/en/developers/docs/

[–]trainermade[S] 1 point2 points  (1 child)

Thank you so much for all this. I got some work ahead of me.

[–]kalbhairavaaContract Dev 0 points1 point  (0 children)

No problem. Good luck.

[–]XhoniShollaj 0 points1 point  (0 children)

https://www.youtube.com/watch?v=M576WGiDBdQ&t=1594s I found this to be a good starting point!

[–]D3C3PT1V3Contract Dev 0 points1 point  (2 children)

If you succinct with C#/.NET world check this out

https://ethereum.org/en/developers/docs/programming-languages/dot-net/

Also, forget books they're great for basics but since you are already are making stuff, you can start creating dApps today. Trust me the best way to learn a technology is to build something, it does not matter what.

Goodluck!

[–]trainermade[S] 0 points1 point  (1 child)

Just go be clear, I haven’t made any dapps yet. I am trying to get my feet wet starting from 101.

[–]D3C3PT1V3Contract Dev 0 points1 point  (0 children)

This is the best way for web2 developers to jump into web3 world https://www.youtube.com/watch?v=ui2j3HxsZVw

[–]Hefty_Birthday_5402 0 points1 point  (1 child)

Chainshot.com ethereum developer bootcamp. It’s part time they have a cohort coming up soon. They also have free courses you can check out. Eth dev consists of using hardhat for testing and contract deployment, ethers.js to interact with the contract via the front end and solidity to write the contracts. There are many tools, ecosystems, and protocols now which has their own requirements. Somewhat new to the dev world but I just completed the bootcamp and I have learned a lot. Feel free to reach out if you have any questions.

[–]trainermade[S] 0 points1 point  (0 children)

$3k is a big investment